mirror of https://github.com/hrfee/jfa-go
accessible by running with -swagger. Accessible at /swagger/index.html. Currently doesn't have authentication setup, so no requests will work.pull/20/head
parent
544f5674e8
commit
b6537cef65
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,3 @@
|
|||||||
|
module github.com/hrfee/jfa-go/docs
|
||||||
|
|
||||||
|
go 1.15
|
@ -0,0 +1,999 @@
|
|||||||
|
{
|
||||||
|
"swagger": "2.0",
|
||||||
|
"info": {
|
||||||
|
"description": "API for the jfa-go frontend",
|
||||||
|
"title": "jfa-go internal API",
|
||||||
|
"contact": {
|
||||||
|
"name": "Harvey Tindall",
|
||||||
|
"email": "hrfee@protonmail.ch"
|
||||||
|
},
|
||||||
|
"license": {
|
||||||
|
"name": "MIT",
|
||||||
|
"url": "https://raw.githubusercontent.com/hrfee/jfa-go/main/LICENSE"
|
||||||
|
},
|
||||||
|
"version": "0.2.0"
|
||||||
|
},
|
||||||
|
"basePath": "/",
|
||||||
|
"paths": {
|
||||||
|
"/config": {
|
||||||
|
"get": {
|
||||||
|
"produces": [
|
||||||
|
"application/json"
|
||||||
|
],
|
||||||
|
"summary": "Get jfa-go configuration.",
|
||||||
|
"responses": {
|
||||||
|
"200": {
|
||||||
|
"description": "Uses the same format as config-base.json",
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/main.configDTO"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"/invites": {
|
||||||
|
"get": {
|
||||||
|
"produces": [
|
||||||
|
"application/json"
|
||||||
|
],
|
||||||
|
"summary": "Get invites.",
|
||||||
|
"responses": {
|
||||||
|
"200": {
|
||||||
|
"description": "OK",
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/main.getInvitesDTO"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"post": {
|
||||||
|
"produces": [
|
||||||
|
"application/json"
|
||||||
|
],
|
||||||
|
"summary": "Create a new invite.",
|
||||||
|
"parameters": [
|
||||||
|
{
|
||||||
|
"description": "New invite request object",
|
||||||
|
"name": "generateInviteDTO",
|
||||||
|
"in": "body",
|
||||||
|
"required": true,
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/main.generateInviteDTO"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"responses": {
|
||||||
|
"200": {
|
||||||
|
"description": "OK",
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/main.boolResponse"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"delete": {
|
||||||
|
"produces": [
|
||||||
|
"application/json"
|
||||||
|
],
|
||||||
|
"summary": "Delete an invite.",
|
||||||
|
"parameters": [
|
||||||
|
{
|
||||||
|
"description": "Delete invite object",
|
||||||
|
"name": "deleteInviteDTO",
|
||||||
|
"in": "body",
|
||||||
|
"required": true,
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/main.deleteInviteDTO"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"responses": {
|
||||||
|
"200": {
|
||||||
|
"description": "OK",
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/main.boolResponse"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"400": {
|
||||||
|
"description": "Bad Request",
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/main.stringResponse"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"/invites/notify": {
|
||||||
|
"post": {
|
||||||
|
"produces": [
|
||||||
|
"application/json"
|
||||||
|
],
|
||||||
|
"summary": "Set notification preferences for an invite.",
|
||||||
|
"parameters": [
|
||||||
|
{
|
||||||
|
"description": "Map of invite codes to notification settings objects",
|
||||||
|
"name": "setNotifyDTO",
|
||||||
|
"in": "body",
|
||||||
|
"required": true,
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/main.setNotifyDTO"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"responses": {
|
||||||
|
"200": {},
|
||||||
|
"400": {
|
||||||
|
"description": "Bad Request",
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/main.stringResponse"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"500": {
|
||||||
|
"description": "Internal Server Error",
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/main.stringResponse"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"/invites/profile": {
|
||||||
|
"post": {
|
||||||
|
"produces": [
|
||||||
|
"application/json"
|
||||||
|
],
|
||||||
|
"summary": "Set profile for an invite",
|
||||||
|
"parameters": [
|
||||||
|
{
|
||||||
|
"description": "Invite profile object",
|
||||||
|
"name": "inviteProfileDTO",
|
||||||
|
"in": "body",
|
||||||
|
"required": true,
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/main.inviteProfileDTO"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"responses": {
|
||||||
|
"200": {
|
||||||
|
"description": "OK",
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/main.boolResponse"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"500": {
|
||||||
|
"description": "Internal Server Error",
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/main.stringResponse"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"/logout": {
|
||||||
|
"post": {
|
||||||
|
"produces": [
|
||||||
|
"application/json"
|
||||||
|
],
|
||||||
|
"summary": "Logout by deleting refresh token from cookies.",
|
||||||
|
"responses": {
|
||||||
|
"200": {
|
||||||
|
"description": "OK",
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/main.boolResponse"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"500": {
|
||||||
|
"description": "Internal Server Error",
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/main.stringResponse"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"/newUser": {
|
||||||
|
"post": {
|
||||||
|
"produces": [
|
||||||
|
"application/json"
|
||||||
|
],
|
||||||
|
"summary": "Creates a new Jellyfin user via invite code",
|
||||||
|
"parameters": [
|
||||||
|
{
|
||||||
|
"description": "New user request object",
|
||||||
|
"name": "newUserDTO",
|
||||||
|
"in": "body",
|
||||||
|
"required": true,
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/main.newUserDTO"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"responses": {
|
||||||
|
"200": {
|
||||||
|
"description": "OK",
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/main.PasswordValidation"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"400": {
|
||||||
|
"description": "Bad Request",
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/main.PasswordValidation"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"/ombi/defaults": {
|
||||||
|
"post": {
|
||||||
|
"produces": [
|
||||||
|
"application/json"
|
||||||
|
],
|
||||||
|
"summary": "Set new user defaults for Ombi accounts.",
|
||||||
|
"parameters": [
|
||||||
|
{
|
||||||
|
"description": "User to source settings from",
|
||||||
|
"name": "ombiUser",
|
||||||
|
"in": "body",
|
||||||
|
"required": true,
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/main.ombiUser"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"responses": {
|
||||||
|
"200": {
|
||||||
|
"description": "OK",
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/main.boolResponse"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"500": {
|
||||||
|
"description": "Internal Server Error",
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/main.stringResponse"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"/ombi/users": {
|
||||||
|
"get": {
|
||||||
|
"produces": [
|
||||||
|
"application/json"
|
||||||
|
],
|
||||||
|
"summary": "Get a list of Ombi users.",
|
||||||
|
"responses": {
|
||||||
|
"200": {
|
||||||
|
"description": "OK",
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/main.ombiUsersDTO"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"500": {
|
||||||
|
"description": "Internal Server Error",
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/main.stringResponse"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"/profiles": {
|
||||||
|
"get": {
|
||||||
|
"produces": [
|
||||||
|
"application/json"
|
||||||
|
],
|
||||||
|
"summary": "Get a list of profiles",
|
||||||
|
"responses": {
|
||||||
|
"200": {
|
||||||
|
"description": "OK",
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/main.getProfilesDTO"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"post": {
|
||||||
|
"produces": [
|
||||||
|
"application/json"
|
||||||
|
],
|
||||||
|
"summary": "Create a profile based on a Jellyfin user's settings.",
|
||||||
|
"parameters": [
|
||||||
|
{
|
||||||
|
"description": "New profile object",
|
||||||
|
"name": "newProfileDTO",
|
||||||
|
"in": "body",
|
||||||
|
"required": true,
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/main.newProfileDTO"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"responses": {
|
||||||
|
"200": {
|
||||||
|
"description": "OK",
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/main.boolResponse"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"500": {
|
||||||
|
"description": "Internal Server Error",
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/main.stringResponse"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"delete": {
|
||||||
|
"produces": [
|
||||||
|
"application/json"
|
||||||
|
],
|
||||||
|
"summary": "Delete an existing profile",
|
||||||
|
"parameters": [
|
||||||
|
{
|
||||||
|
"description": "Delete profile object",
|
||||||
|
"name": "profileChangeDTO",
|
||||||
|
"in": "body",
|
||||||
|
"required": true,
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/main.profileChangeDTO"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"responses": {
|
||||||
|
"200": {
|
||||||
|
"description": "OK",
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/main.boolResponse"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"/profiles/default": {
|
||||||
|
"post": {
|
||||||
|
"produces": [
|
||||||
|
"application/json"
|
||||||
|
],
|
||||||
|
"summary": "Set the default profile to use.",
|
||||||
|
"parameters": [
|
||||||
|
{
|
||||||
|
"description": "Default profile object",
|
||||||
|
"name": "profileChangeDTO",
|
||||||
|
"in": "body",
|
||||||
|
"required": true,
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/main.profileChangeDTO"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"responses": {
|
||||||
|
"200": {
|
||||||
|
"description": "OK",
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/main.boolResponse"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"500": {
|
||||||
|
"description": "Internal Server Error",
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/main.stringResponse"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"/users": {
|
||||||
|
"get": {
|
||||||
|
"produces": [
|
||||||
|
"application/json"
|
||||||
|
],
|
||||||
|
"summary": "Get a list of Jellyfin users.",
|
||||||
|
"responses": {
|
||||||
|
"200": {
|
||||||
|
"description": "OK",
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/main.getUsersDTO"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"500": {
|
||||||
|
"description": "Internal Server Error",
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/main.stringResponse"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"post": {
|
||||||
|
"produces": [
|
||||||
|
"application/json"
|
||||||
|
],
|
||||||
|
"summary": "Creates a new Jellyfin user without an invite.",
|
||||||
|
"parameters": [
|
||||||
|
{
|
||||||
|
"description": "New user request object",
|
||||||
|
"name": "newUserDTO",
|
||||||
|
"in": "body",
|
||||||
|
"required": true,
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/main.newUserDTO"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"responses": {
|
||||||
|
"200": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"delete": {
|
||||||
|
"produces": [
|
||||||
|
"application/json"
|
||||||
|
],
|
||||||
|
"summary": "Delete a list of users, optionally notifying them why.",
|
||||||
|
"parameters": [
|
||||||
|
{
|
||||||
|
"description": "User deletion request object",
|
||||||
|
"name": "deleteUserDTO",
|
||||||
|
"in": "body",
|
||||||
|
"required": true,
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/main.deleteUserDTO"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"responses": {
|
||||||
|
"200": {
|
||||||
|
"description": "OK",
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/main.boolResponse"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"400": {
|
||||||
|
"description": "Bad Request",
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/main.stringResponse"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"500": {
|
||||||
|
"description": "List of errors",
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/main.errorListDTO"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"/users/emails": {
|
||||||
|
"post": {
|
||||||
|
"produces": [
|
||||||
|
"application/json"
|
||||||
|
],
|
||||||
|
"summary": "Modify user's email addresses.",
|
||||||
|
"parameters": [
|
||||||
|
{
|
||||||
|
"description": "Map of userIDs to email addresses",
|
||||||
|
"name": "modifyEmailsDTO",
|
||||||
|
"in": "body",
|
||||||
|
"required": true,
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/main.modifyEmailsDTO"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"responses": {
|
||||||
|
"200": {
|
||||||
|
"description": "OK",
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/main.boolResponse"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"500": {
|
||||||
|
"description": "Internal Server Error",
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/main.stringResponse"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"/users/settings": {
|
||||||
|
"post": {
|
||||||
|
"produces": [
|
||||||
|
"application/json"
|
||||||
|
],
|
||||||
|
"summary": "Apply settings to a list of users, either from a profile or from another user.",
|
||||||
|
"parameters": [
|
||||||
|
{
|
||||||
|
"description": "Parameters for applying settings",
|
||||||
|
"name": "userSettingsDTO",
|
||||||
|
"in": "body",
|
||||||
|
"required": true,
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/main.userSettingsDTO"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"responses": {
|
||||||
|
"200": {
|
||||||
|
"description": "OK",
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/main.errorListDTO"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"500": {
|
||||||
|
"description": "Lists of errors that occured while applying settings",
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/main.errorListDTO"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"definitions": {
|
||||||
|
"main.PasswordValidation": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"characters": {
|
||||||
|
"description": "Number of characters",
|
||||||
|
"type": "boolean"
|
||||||
|
},
|
||||||
|
"lowercase characters": {
|
||||||
|
"description": "Number of lowercase characters",
|
||||||
|
"type": "boolean"
|
||||||
|
},
|
||||||
|
"numbers": {
|
||||||
|
"description": "Number of numbers",
|
||||||
|
"type": "boolean"
|
||||||
|
},
|
||||||
|
"special characters": {
|
||||||
|
"description": "Number of special characters",
|
||||||
|
"type": "boolean"
|
||||||
|
},
|
||||||
|
"uppercase characters": {
|
||||||
|
"description": "Number of uppercase characters",
|
||||||
|
"type": "boolean"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"main.boolResponse": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"error": {
|
||||||
|
"type": "boolean",
|
||||||
|
"example": true
|
||||||
|
},
|
||||||
|
"success": {
|
||||||
|
"type": "boolean",
|
||||||
|
"example": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"main.configDTO": {
|
||||||
|
"type": "object",
|
||||||
|
"additionalProperties": true
|
||||||
|
},
|
||||||
|
"main.deleteInviteDTO": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"code": {
|
||||||
|
"description": "Code of invite to delete",
|
||||||
|
"type": "string",
|
||||||
|
"example": "skjadajd43234s"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"main.deleteUserDTO": {
|
||||||
|
"type": "object",
|
||||||
|
"required": [
|
||||||
|
"users"
|
||||||
|
],
|
||||||
|
"properties": {
|
||||||
|
"notify": {
|
||||||
|
"description": "Whether to notify users of deletion",
|
||||||
|
"type": "boolean"
|
||||||
|
},
|
||||||
|
"reason": {
|
||||||
|
"description": "Account deletion reason (for notification)",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"users": {
|
||||||
|
"description": "List of usernames to delete",
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"main.errorListDTO": {
|
||||||
|
"type": "object",
|
||||||
|
"additionalProperties": {
|
||||||
|
"type": "object",
|
||||||
|
"additionalProperties": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"main.generateInviteDTO": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"days": {
|
||||||
|
"description": "Number of days",
|
||||||
|
"type": "integer",
|
||||||
|
"example": 1
|
||||||
|
},
|
||||||
|
"email": {
|
||||||
|
"description": "Send invite to this address",
|
||||||
|
"type": "string",
|
||||||
|
"example": "jeff@jellyf.in"
|
||||||
|
},
|
||||||
|
"hours": {
|
||||||
|
"description": "Number of hours",
|
||||||
|
"type": "integer",
|
||||||
|
"example": 2
|
||||||
|
},
|
||||||
|
"minutes": {
|
||||||
|
"description": "Number of minutes",
|
||||||
|
"type": "integer",
|
||||||
|
"example": 3
|
||||||
|
},
|
||||||
|
"multiple-uses": {
|
||||||
|
"description": "Allow multiple uses",
|
||||||
|
"type": "boolean",
|
||||||
|
"example": true
|
||||||
|
},
|
||||||
|
"no-limit": {
|
||||||
|
"description": "No invite use limit",
|
||||||
|
"type": "boolean",
|
||||||
|
"example": false
|
||||||
|
},
|
||||||
|
"profile": {
|
||||||
|
"description": "Name of profile to apply on this invite",
|
||||||
|
"type": "string",
|
||||||
|
"example": "DefaultProfile"
|
||||||
|
},
|
||||||
|
"remaining-uses": {
|
||||||
|
"description": "Remaining invite uses",
|
||||||
|
"type": "integer",
|
||||||
|
"example": 5
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"main.getInvitesDTO": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"invites": {
|
||||||
|
"description": "List of invites",
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"$ref": "#/definitions/main.inviteDTO"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"profiles": {
|
||||||
|
"description": "List of profiles (name only)",
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"main.getProfilesDTO": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"default_profile": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"profiles": {
|
||||||
|
"type": "object",
|
||||||
|
"additionalProperties": {
|
||||||
|
"$ref": "#/definitions/main.profileDTO"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"main.getUsersDTO": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"users": {
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"$ref": "#/definitions/main.respUser"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"main.inviteDTO": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"code": {
|
||||||
|
"description": "Invite code",
|
||||||
|
"type": "string",
|
||||||
|
"example": "sajdlj23423j23"
|
||||||
|
},
|
||||||
|
"created": {
|
||||||
|
"description": "Date of creation",
|
||||||
|
"type": "string",
|
||||||
|
"example": "01/01/20 12:00"
|
||||||
|
},
|
||||||
|
"days": {
|
||||||
|
"description": "Number of days till expiry",
|
||||||
|
"type": "integer",
|
||||||
|
"example": 1
|
||||||
|
},
|
||||||
|
"email": {
|
||||||
|
"description": "Email the invite was sent to (if applicable)",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"hours": {
|
||||||
|
"description": "Number of hours till expiry",
|
||||||
|
"type": "integer",
|
||||||
|
"example": 2
|
||||||
|
},
|
||||||
|
"minutes": {
|
||||||
|
"description": "Number of minutes till expiry",
|
||||||
|
"type": "integer",
|
||||||
|
"example": 3
|
||||||
|
},
|
||||||
|
"no-limit": {
|
||||||
|
"description": "If true, invite can be used any number of times",
|
||||||
|
"type": "boolean"
|
||||||
|
},
|
||||||
|
"notify-creation": {
|
||||||
|
"description": "Whether to notify the requesting user of account creation or not",
|
||||||
|
"type": "boolean"
|
||||||
|
},
|
||||||
|
"notify-expiry": {
|
||||||
|
"description": "Whether to notify the requesting user of expiry or not",
|
||||||
|
"type": "boolean"
|
||||||
|
},
|
||||||
|
"profile": {
|
||||||
|
"description": "Profile used on this invite",
|
||||||
|
"type": "string",
|
||||||
|
"example": "DefaultProfile"
|
||||||
|
},
|
||||||
|
"remaining-uses": {
|
||||||
|
"description": "Remaining number of uses (if applicable)",
|
||||||
|
"type": "integer"
|
||||||
|
},
|
||||||
|
"used-by": {
|
||||||
|
"description": "Users who have used this invite",
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"main.inviteProfileDTO": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"invite": {
|
||||||
|
"description": "Invite to apply to",
|
||||||
|
"type": "string",
|
||||||
|
"example": "slakdaslkdl2342"
|
||||||
|
},
|
||||||
|
"profile": {
|
||||||
|
"description": "Profile to use",
|
||||||
|
"type": "string",
|
||||||
|
"example": "DefaultProfile"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"main.modifyEmailsDTO": {
|
||||||
|
"type": "object",
|
||||||
|
"additionalProperties": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"main.newProfileDTO": {
|
||||||
|
"type": "object",
|
||||||
|
"required": [
|
||||||
|
"id",
|
||||||
|
"name"
|
||||||
|
],
|
||||||
|
"properties": {
|
||||||
|
"homescreen": {
|
||||||
|
"description": "Whether to store homescreen layout or not",
|
||||||
|
"type": "boolean",
|
||||||
|
"example": true
|
||||||
|
},
|
||||||
|
"id": {
|
||||||
|
"description": "ID of user to source settings from",
|
||||||
|
"type": "string",
|
||||||
|
"example": "kasdjlaskjd342342"
|
||||||
|
},
|
||||||
|
"name": {
|
||||||
|
"description": "Name of the profile",
|
||||||
|
"type": "string",
|
||||||
|
"example": "DefaultProfile"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"main.newUserDTO": {
|
||||||
|
"type": "object",
|
||||||
|
"required": [
|
||||||
|
"password",
|
||||||
|
"username"
|
||||||
|
],
|
||||||
|
"properties": {
|
||||||
|
"code": {
|
||||||
|
"description": "Invite code (required on /newUser)",
|
||||||
|
"type": "string",
|
||||||
|
"example": "abc0933jncjkcjj"
|
||||||
|
},
|
||||||
|
"email": {
|
||||||
|
"description": "User's email address",
|
||||||
|
"type": "string",
|
||||||
|
"example": "jeff@jellyf.in"
|
||||||
|
},
|
||||||
|
"password": {
|
||||||
|
"description": "User's password",
|
||||||
|
"type": "string",
|
||||||
|
"example": "guest"
|
||||||
|
},
|
||||||
|
"username": {
|
||||||
|
"description": "User's username",
|
||||||
|
"type": "string",
|
||||||
|
"example": "jeff"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"main.ombiUser": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"id": {
|
||||||
|
"description": "userID of Ombi user",
|
||||||
|
"type": "string",
|
||||||
|
"example": "djgkjdg7dkjfsj8"
|
||||||
|
},
|
||||||
|
"name": {
|
||||||
|
"description": "Name of Ombi user",
|
||||||
|
"type": "string",
|
||||||
|
"example": "jeff"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"main.ombiUsersDTO": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"users": {
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"$ref": "#/definitions/main.ombiUser"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"main.profileChangeDTO": {
|
||||||
|
"type": "object",
|
||||||
|
"required": [
|
||||||
|
"name"
|
||||||
|
],
|
||||||
|
"properties": {
|
||||||
|
"name": {
|
||||||
|
"description": "Name of the profile",
|
||||||
|
"type": "string",
|
||||||
|
"example": "DefaultProfile"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"main.profileDTO": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"admin": {
|
||||||
|
"description": "Whether profile has admin rights or not",
|
||||||
|
"type": "boolean",
|
||||||
|
"example": false
|
||||||
|
},
|
||||||
|
"fromUser": {
|
||||||
|
"description": "The user the profile is based on",
|
||||||
|
"type": "string",
|
||||||
|
"example": "jeff"
|
||||||
|
},
|
||||||
|
"libraries": {
|
||||||
|
"description": "Number of libraries profile has access to",
|
||||||
|
"type": "string",
|
||||||
|
"example": "all"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"main.respUser": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"admin": {
|
||||||
|
"description": "Whether or not the user is Administrator",
|
||||||
|
"type": "boolean",
|
||||||
|
"example": false
|
||||||
|
},
|
||||||
|
"email": {
|
||||||
|
"description": "Email address of user (if available)",
|
||||||
|
"type": "string",
|
||||||
|
"example": "jeff@jellyf.in"
|
||||||
|
},
|
||||||
|
"id": {
|
||||||
|
"description": "userID of user",
|
||||||
|
"type": "string",
|
||||||
|
"example": "fdgsdfg45534fa"
|
||||||
|
},
|
||||||
|
"last_active": {
|
||||||
|
"description": "Time of last activity on Jellyfin",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"name": {
|
||||||
|
"description": "Username of user",
|
||||||
|
"type": "string",
|
||||||
|
"example": "jeff"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"main.setNotifyDTO": {
|
||||||
|
"type": "object",
|
||||||
|
"additionalProperties": {
|
||||||
|
"$ref": "#/definitions/main.setNotifyValues"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"main.setNotifyValues": {
|
||||||
|
"type": "object",
|
||||||
|
"additionalProperties": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"notify-creation": {
|
||||||
|
"description": "Whether to notify the requesting user of account creation or not",
|
||||||
|
"type": "boolean"
|
||||||
|
},
|
||||||
|
"notify-expiry": {
|
||||||
|
"description": "Whether to notify the requesting user of expiry or not",
|
||||||
|
"type": "boolean"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"main.stringResponse": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"error": {
|
||||||
|
"type": "string",
|
||||||
|
"example": "errorDescription"
|
||||||
|
},
|
||||||
|
"response": {
|
||||||
|
"type": "string",
|
||||||
|
"example": "message"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"main.userSettingsDTO": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"apply_to": {
|
||||||
|
"description": "Users to apply settings to",
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"from": {
|
||||||
|
"description": "Whether to apply from \"user\" or \"profile\"",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"homescreen": {
|
||||||
|
"description": "Whether to apply homescreen layout or not",
|
||||||
|
"type": "boolean"
|
||||||
|
},
|
||||||
|
"id": {
|
||||||
|
"description": "ID of user (if from = \"user\")",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"profile": {
|
||||||
|
"description": "Name of profile (if from = \"profile\")",
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,678 @@
|
|||||||
|
basePath: /
|
||||||
|
definitions:
|
||||||
|
main.PasswordValidation:
|
||||||
|
properties:
|
||||||
|
characters:
|
||||||
|
description: Number of characters
|
||||||
|
type: boolean
|
||||||
|
lowercase characters:
|
||||||
|
description: Number of lowercase characters
|
||||||
|
type: boolean
|
||||||
|
numbers:
|
||||||
|
description: Number of numbers
|
||||||
|
type: boolean
|
||||||
|
special characters:
|
||||||
|
description: Number of special characters
|
||||||
|
type: boolean
|
||||||
|
uppercase characters:
|
||||||
|
description: Number of uppercase characters
|
||||||
|
type: boolean
|
||||||
|
type: object
|
||||||
|
main.boolResponse:
|
||||||
|
properties:
|
||||||
|
error:
|
||||||
|
example: true
|
||||||
|
type: boolean
|
||||||
|
success:
|
||||||
|
example: false
|
||||||
|
type: boolean
|
||||||
|
type: object
|
||||||
|
main.configDTO:
|
||||||
|
additionalProperties: true
|
||||||
|
type: object
|
||||||
|
main.deleteInviteDTO:
|
||||||
|
properties:
|
||||||
|
code:
|
||||||
|
description: Code of invite to delete
|
||||||
|
example: skjadajd43234s
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
main.deleteUserDTO:
|
||||||
|
properties:
|
||||||
|
notify:
|
||||||
|
description: Whether to notify users of deletion
|
||||||
|
type: boolean
|
||||||
|
reason:
|
||||||
|
description: Account deletion reason (for notification)
|
||||||
|
type: string
|
||||||
|
users:
|
||||||
|
description: List of usernames to delete
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
type: array
|
||||||
|
required:
|
||||||
|
- users
|
||||||
|
type: object
|
||||||
|
main.errorListDTO:
|
||||||
|
additionalProperties:
|
||||||
|
additionalProperties:
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
type: object
|
||||||
|
main.generateInviteDTO:
|
||||||
|
properties:
|
||||||
|
days:
|
||||||
|
description: Number of days
|
||||||
|
example: 1
|
||||||
|
type: integer
|
||||||
|
email:
|
||||||
|
description: Send invite to this address
|
||||||
|
example: jeff@jellyf.in
|
||||||
|
type: string
|
||||||
|
hours:
|
||||||
|
description: Number of hours
|
||||||
|
example: 2
|
||||||
|
type: integer
|
||||||
|
minutes:
|
||||||
|
description: Number of minutes
|
||||||
|
example: 3
|
||||||
|
type: integer
|
||||||
|
multiple-uses:
|
||||||
|
description: Allow multiple uses
|
||||||
|
example: true
|
||||||
|
type: boolean
|
||||||
|
no-limit:
|
||||||
|
description: No invite use limit
|
||||||
|
example: false
|
||||||
|
type: boolean
|
||||||
|
profile:
|
||||||
|
description: Name of profile to apply on this invite
|
||||||
|
example: DefaultProfile
|
||||||
|
type: string
|
||||||
|
remaining-uses:
|
||||||
|
description: Remaining invite uses
|
||||||
|
example: 5
|
||||||
|
type: integer
|
||||||
|
type: object
|
||||||
|
main.getInvitesDTO:
|
||||||
|
properties:
|
||||||
|
invites:
|
||||||
|
description: List of invites
|
||||||
|
items:
|
||||||
|
$ref: '#/definitions/main.inviteDTO'
|
||||||
|
type: array
|
||||||
|
profiles:
|
||||||
|
description: List of profiles (name only)
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
type: array
|
||||||
|
type: object
|
||||||
|
main.getProfilesDTO:
|
||||||
|
properties:
|
||||||
|
default_profile:
|
||||||
|
type: string
|
||||||
|
profiles:
|
||||||
|
additionalProperties:
|
||||||
|
$ref: '#/definitions/main.profileDTO'
|
||||||
|
type: object
|
||||||
|
type: object
|
||||||
|
main.getUsersDTO:
|
||||||
|
properties:
|
||||||
|
users:
|
||||||
|
items:
|
||||||
|
$ref: '#/definitions/main.respUser'
|
||||||
|
type: array
|
||||||
|
type: object
|
||||||
|
main.inviteDTO:
|
||||||
|
properties:
|
||||||
|
code:
|
||||||
|
description: Invite code
|
||||||
|
example: sajdlj23423j23
|
||||||
|
type: string
|
||||||
|
created:
|
||||||
|
description: Date of creation
|
||||||
|
example: 01/01/20 12:00
|
||||||
|
type: string
|
||||||
|
days:
|
||||||
|
description: Number of days till expiry
|
||||||
|
example: 1
|
||||||
|
type: integer
|
||||||
|
email:
|
||||||
|
description: Email the invite was sent to (if applicable)
|
||||||
|
type: string
|
||||||
|
hours:
|
||||||
|
description: Number of hours till expiry
|
||||||
|
example: 2
|
||||||
|
type: integer
|
||||||
|
minutes:
|
||||||
|
description: Number of minutes till expiry
|
||||||
|
example: 3
|
||||||
|
type: integer
|
||||||
|
no-limit:
|
||||||
|
description: If true, invite can be used any number of times
|
||||||
|
type: boolean
|
||||||
|
notify-creation:
|
||||||
|
description: Whether to notify the requesting user of account creation or not
|
||||||
|
type: boolean
|
||||||
|
notify-expiry:
|
||||||
|
description: Whether to notify the requesting user of expiry or not
|
||||||
|
type: boolean
|
||||||
|
profile:
|
||||||
|
description: Profile used on this invite
|
||||||
|
example: DefaultProfile
|
||||||
|
type: string
|
||||||
|
remaining-uses:
|
||||||
|
description: Remaining number of uses (if applicable)
|
||||||
|
type: integer
|
||||||
|
used-by:
|
||||||
|
description: Users who have used this invite
|
||||||
|
items:
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
type: array
|
||||||
|
type: array
|
||||||
|
type: object
|
||||||
|
main.inviteProfileDTO:
|
||||||
|
properties:
|
||||||
|
invite:
|
||||||
|
description: Invite to apply to
|
||||||
|
example: slakdaslkdl2342
|
||||||
|
type: string
|
||||||
|
profile:
|
||||||
|
description: Profile to use
|
||||||
|
example: DefaultProfile
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
main.modifyEmailsDTO:
|
||||||
|
additionalProperties:
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
main.newProfileDTO:
|
||||||
|
properties:
|
||||||
|
homescreen:
|
||||||
|
description: Whether to store homescreen layout or not
|
||||||
|
example: true
|
||||||
|
type: boolean
|
||||||
|
id:
|
||||||
|
description: ID of user to source settings from
|
||||||
|
example: kasdjlaskjd342342
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
description: Name of the profile
|
||||||
|
example: DefaultProfile
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- id
|
||||||
|
- name
|
||||||
|
type: object
|
||||||
|
main.newUserDTO:
|
||||||
|
properties:
|
||||||
|
code:
|
||||||
|
description: Invite code (required on /newUser)
|
||||||
|
example: abc0933jncjkcjj
|
||||||
|
type: string
|
||||||
|
email:
|
||||||
|
description: User's email address
|
||||||
|
example: jeff@jellyf.in
|
||||||
|
type: string
|
||||||
|
password:
|
||||||
|
description: User's password
|
||||||
|
example: guest
|
||||||
|
type: string
|
||||||
|
username:
|
||||||
|
description: User's username
|
||||||
|
example: jeff
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- password
|
||||||
|
- username
|
||||||
|
type: object
|
||||||
|
main.ombiUser:
|
||||||
|
properties:
|
||||||
|
id:
|
||||||
|
description: userID of Ombi user
|
||||||
|
example: djgkjdg7dkjfsj8
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
description: Name of Ombi user
|
||||||
|
example: jeff
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
main.ombiUsersDTO:
|
||||||
|
properties:
|
||||||
|
users:
|
||||||
|
items:
|
||||||
|
$ref: '#/definitions/main.ombiUser'
|
||||||
|
type: array
|
||||||
|
type: object
|
||||||
|
main.profileChangeDTO:
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
description: Name of the profile
|
||||||
|
example: DefaultProfile
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- name
|
||||||
|
type: object
|
||||||
|
main.profileDTO:
|
||||||
|
properties:
|
||||||
|
admin:
|
||||||
|
description: Whether profile has admin rights or not
|
||||||
|
example: false
|
||||||
|
type: boolean
|
||||||
|
fromUser:
|
||||||
|
description: The user the profile is based on
|
||||||
|
example: jeff
|
||||||
|
type: string
|
||||||
|
libraries:
|
||||||
|
description: Number of libraries profile has access to
|
||||||
|
example: all
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
main.respUser:
|
||||||
|
properties:
|
||||||
|
admin:
|
||||||
|
description: Whether or not the user is Administrator
|
||||||
|
example: false
|
||||||
|
type: boolean
|
||||||
|
email:
|
||||||
|
description: Email address of user (if available)
|
||||||
|
example: jeff@jellyf.in
|
||||||
|
type: string
|
||||||
|
id:
|
||||||
|
description: userID of user
|
||||||
|
example: fdgsdfg45534fa
|
||||||
|
type: string
|
||||||
|
last_active:
|
||||||
|
description: Time of last activity on Jellyfin
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
description: Username of user
|
||||||
|
example: jeff
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
main.setNotifyDTO:
|
||||||
|
additionalProperties:
|
||||||
|
$ref: '#/definitions/main.setNotifyValues'
|
||||||
|
type: object
|
||||||
|
main.setNotifyValues:
|
||||||
|
additionalProperties:
|
||||||
|
properties:
|
||||||
|
notify-creation:
|
||||||
|
description: Whether to notify the requesting user of account creation or not
|
||||||
|
type: boolean
|
||||||
|
notify-expiry:
|
||||||
|
description: Whether to notify the requesting user of expiry or not
|
||||||
|
type: boolean
|
||||||
|
type: object
|
||||||
|
type: object
|
||||||
|
main.stringResponse:
|
||||||
|
properties:
|
||||||
|
error:
|
||||||
|
example: errorDescription
|
||||||
|
type: string
|
||||||
|
response:
|
||||||
|
example: message
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
main.userSettingsDTO:
|
||||||
|
properties:
|
||||||
|
apply_to:
|
||||||
|
description: Users to apply settings to
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
type: array
|
||||||
|
from:
|
||||||
|
description: Whether to apply from "user" or "profile"
|
||||||
|
type: string
|
||||||
|
homescreen:
|
||||||
|
description: Whether to apply homescreen layout or not
|
||||||
|
type: boolean
|
||||||
|
id:
|
||||||
|
description: ID of user (if from = "user")
|
||||||
|
type: string
|
||||||
|
profile:
|
||||||
|
description: Name of profile (if from = "profile")
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
info:
|
||||||
|
contact:
|
||||||
|
email: hrfee@protonmail.ch
|
||||||
|
name: Harvey Tindall
|
||||||
|
description: API for the jfa-go frontend
|
||||||
|
license:
|
||||||
|
name: MIT
|
||||||
|
url: https://raw.githubusercontent.com/hrfee/jfa-go/main/LICENSE
|
||||||
|
title: jfa-go internal API
|
||||||
|
version: 0.2.0
|
||||||
|
paths:
|
||||||
|
/config:
|
||||||
|
get:
|
||||||
|
produces:
|
||||||
|
- application/json
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: Uses the same format as config-base.json
|
||||||
|
schema:
|
||||||
|
$ref: '#/definitions/main.configDTO'
|
||||||
|
summary: Get jfa-go configuration.
|
||||||
|
/invites:
|
||||||
|
delete:
|
||||||
|
parameters:
|
||||||
|
- description: Delete invite object
|
||||||
|
in: body
|
||||||
|
name: deleteInviteDTO
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
$ref: '#/definitions/main.deleteInviteDTO'
|
||||||
|
produces:
|
||||||
|
- application/json
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: OK
|
||||||
|
schema:
|
||||||
|
$ref: '#/definitions/main.boolResponse'
|
||||||
|
"400":
|
||||||
|
description: Bad Request
|
||||||
|
schema:
|
||||||
|
$ref: '#/definitions/main.stringResponse'
|
||||||
|
summary: Delete an invite.
|
||||||
|
get:
|
||||||
|
produces:
|
||||||
|
- application/json
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: OK
|
||||||
|
schema:
|
||||||
|
$ref: '#/definitions/main.getInvitesDTO'
|
||||||
|
summary: Get invites.
|
||||||
|
post:
|
||||||
|
parameters:
|
||||||
|
- description: New invite request object
|
||||||
|
in: body
|
||||||
|
name: generateInviteDTO
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
$ref: '#/definitions/main.generateInviteDTO'
|
||||||
|
produces:
|
||||||
|
- application/json
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: OK
|
||||||
|
schema:
|
||||||
|
$ref: '#/definitions/main.boolResponse'
|
||||||
|
summary: Create a new invite.
|
||||||
|
/invites/notify:
|
||||||
|
post:
|
||||||
|
parameters:
|
||||||
|
- description: Map of invite codes to notification settings objects
|
||||||
|
in: body
|
||||||
|
name: setNotifyDTO
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
$ref: '#/definitions/main.setNotifyDTO'
|
||||||
|
produces:
|
||||||
|
- application/json
|
||||||
|
responses:
|
||||||
|
"200": {}
|
||||||
|
"400":
|
||||||
|
description: Bad Request
|
||||||
|
schema:
|
||||||
|
$ref: '#/definitions/main.stringResponse'
|
||||||
|
"500":
|
||||||
|
description: Internal Server Error
|
||||||
|
schema:
|
||||||
|
$ref: '#/definitions/main.stringResponse'
|
||||||
|
summary: Set notification preferences for an invite.
|
||||||
|
/invites/profile:
|
||||||
|
post:
|
||||||
|
parameters:
|
||||||
|
- description: Invite profile object
|
||||||
|
in: body
|
||||||
|
name: inviteProfileDTO
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
$ref: '#/definitions/main.inviteProfileDTO'
|
||||||
|
produces:
|
||||||
|
- application/json
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: OK
|
||||||
|
schema:
|
||||||
|
$ref: '#/definitions/main.boolResponse'
|
||||||
|
"500":
|
||||||
|
description: Internal Server Error
|
||||||
|
schema:
|
||||||
|
$ref: '#/definitions/main.stringResponse'
|
||||||
|
summary: Set profile for an invite
|
||||||
|
/logout:
|
||||||
|
post:
|
||||||
|
produces:
|
||||||
|
- application/json
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: OK
|
||||||
|
schema:
|
||||||
|
$ref: '#/definitions/main.boolResponse'
|
||||||
|
"500":
|
||||||
|
description: Internal Server Error
|
||||||
|
schema:
|
||||||
|
$ref: '#/definitions/main.stringResponse'
|
||||||
|
summary: Logout by deleting refresh token from cookies.
|
||||||
|
/newUser:
|
||||||
|
post:
|
||||||
|
parameters:
|
||||||
|
- description: New user request object
|
||||||
|
in: body
|
||||||
|
name: newUserDTO
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
$ref: '#/definitions/main.newUserDTO'
|
||||||
|
produces:
|
||||||
|
- application/json
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: OK
|
||||||
|
schema:
|
||||||
|
$ref: '#/definitions/main.PasswordValidation'
|
||||||
|
"400":
|
||||||
|
description: Bad Request
|
||||||
|
schema:
|
||||||
|
$ref: '#/definitions/main.PasswordValidation'
|
||||||
|
summary: Creates a new Jellyfin user via invite code
|
||||||
|
/ombi/defaults:
|
||||||
|
post:
|
||||||
|
parameters:
|
||||||
|
- description: User to source settings from
|
||||||
|
in: body
|
||||||
|
name: ombiUser
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
$ref: '#/definitions/main.ombiUser'
|
||||||
|
produces:
|
||||||
|
- application/json
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: OK
|
||||||
|
schema:
|
||||||
|
$ref: '#/definitions/main.boolResponse'
|
||||||
|
"500":
|
||||||
|
description: Internal Server Error
|
||||||
|
schema:
|
||||||
|
$ref: '#/definitions/main.stringResponse'
|
||||||
|
summary: Set new user defaults for Ombi accounts.
|
||||||
|
/ombi/users:
|
||||||
|
get:
|
||||||
|
produces:
|
||||||
|
- application/json
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: OK
|
||||||
|
schema:
|
||||||
|
$ref: '#/definitions/main.ombiUsersDTO'
|
||||||
|
"500":
|
||||||
|
description: Internal Server Error
|
||||||
|
schema:
|
||||||
|
$ref: '#/definitions/main.stringResponse'
|
||||||
|
summary: Get a list of Ombi users.
|
||||||
|
/profiles:
|
||||||
|
delete:
|
||||||
|
parameters:
|
||||||
|
- description: Delete profile object
|
||||||
|
in: body
|
||||||
|
name: profileChangeDTO
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
$ref: '#/definitions/main.profileChangeDTO'
|
||||||
|
produces:
|
||||||
|
- application/json
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: OK
|
||||||
|
schema:
|
||||||
|
$ref: '#/definitions/main.boolResponse'
|
||||||
|
summary: Delete an existing profile
|
||||||
|
get:
|
||||||
|
produces:
|
||||||
|
- application/json
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: OK
|
||||||
|
schema:
|
||||||
|
$ref: '#/definitions/main.getProfilesDTO'
|
||||||
|
summary: Get a list of profiles
|
||||||
|
post:
|
||||||
|
parameters:
|
||||||
|
- description: New profile object
|
||||||
|
in: body
|
||||||
|
name: newProfileDTO
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
$ref: '#/definitions/main.newProfileDTO'
|
||||||
|
produces:
|
||||||
|
- application/json
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: OK
|
||||||
|
schema:
|
||||||
|
$ref: '#/definitions/main.boolResponse'
|
||||||
|
"500":
|
||||||
|
description: Internal Server Error
|
||||||
|
schema:
|
||||||
|
$ref: '#/definitions/main.stringResponse'
|
||||||
|
summary: Create a profile based on a Jellyfin user's settings.
|
||||||
|
/profiles/default:
|
||||||
|
post:
|
||||||
|
parameters:
|
||||||
|
- description: Default profile object
|
||||||
|
in: body
|
||||||
|
name: profileChangeDTO
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
$ref: '#/definitions/main.profileChangeDTO'
|
||||||
|
produces:
|
||||||
|
- application/json
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: OK
|
||||||
|
schema:
|
||||||
|
$ref: '#/definitions/main.boolResponse'
|
||||||
|
"500":
|
||||||
|
description: Internal Server Error
|
||||||
|
schema:
|
||||||
|
$ref: '#/definitions/main.stringResponse'
|
||||||
|
summary: Set the default profile to use.
|
||||||
|
/users:
|
||||||
|
delete:
|
||||||
|
parameters:
|
||||||
|
- description: User deletion request object
|
||||||
|
in: body
|
||||||
|
name: deleteUserDTO
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
$ref: '#/definitions/main.deleteUserDTO'
|
||||||
|
produces:
|
||||||
|
- application/json
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: OK
|
||||||
|
schema:
|
||||||
|
$ref: '#/definitions/main.boolResponse'
|
||||||
|
"400":
|
||||||
|
description: Bad Request
|
||||||
|
schema:
|
||||||
|
$ref: '#/definitions/main.stringResponse'
|
||||||
|
"500":
|
||||||
|
description: List of errors
|
||||||
|
schema:
|
||||||
|
$ref: '#/definitions/main.errorListDTO'
|
||||||
|
summary: Delete a list of users, optionally notifying them why.
|
||||||
|
get:
|
||||||
|
produces:
|
||||||
|
- application/json
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: OK
|
||||||
|
schema:
|
||||||
|
$ref: '#/definitions/main.getUsersDTO'
|
||||||
|
"500":
|
||||||
|
description: Internal Server Error
|
||||||
|
schema:
|
||||||
|
$ref: '#/definitions/main.stringResponse'
|
||||||
|
summary: Get a list of Jellyfin users.
|
||||||
|
post:
|
||||||
|
parameters:
|
||||||
|
- description: New user request object
|
||||||
|
in: body
|
||||||
|
name: newUserDTO
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
$ref: '#/definitions/main.newUserDTO'
|
||||||
|
produces:
|
||||||
|
- application/json
|
||||||
|
responses:
|
||||||
|
"200": {}
|
||||||
|
summary: Creates a new Jellyfin user without an invite.
|
||||||
|
/users/emails:
|
||||||
|
post:
|
||||||
|
parameters:
|
||||||
|
- description: Map of userIDs to email addresses
|
||||||
|
in: body
|
||||||
|
name: modifyEmailsDTO
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
$ref: '#/definitions/main.modifyEmailsDTO'
|
||||||
|
produces:
|
||||||
|
- application/json
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: OK
|
||||||
|
schema:
|
||||||
|
$ref: '#/definitions/main.boolResponse'
|
||||||
|
"500":
|
||||||
|
description: Internal Server Error
|
||||||
|
schema:
|
||||||
|
$ref: '#/definitions/main.stringResponse'
|
||||||
|
summary: Modify user's email addresses.
|
||||||
|
/users/settings:
|
||||||
|
post:
|
||||||
|
parameters:
|
||||||
|
- description: Parameters for applying settings
|
||||||
|
in: body
|
||||||
|
name: userSettingsDTO
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
$ref: '#/definitions/main.userSettingsDTO'
|
||||||
|
produces:
|
||||||
|
- application/json
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: OK
|
||||||
|
schema:
|
||||||
|
$ref: '#/definitions/main.errorListDTO'
|
||||||
|
"500":
|
||||||
|
description: Lists of errors that occured while applying settings
|
||||||
|
schema:
|
||||||
|
$ref: '#/definitions/main.errorListDTO'
|
||||||
|
summary: Apply settings to a list of users, either from a profile or from another user.
|
||||||
|
swagger: "2.0"
|
Loading…
Reference in new issue