memos/server/route/api/v1/docs.go

3394 lines
113 KiB
Go
Raw Normal View History

// Code generated by swaggo/swag. DO NOT EDIT.
package v1
import "github.com/swaggo/swag"
const docTemplate = `{
"schemes": {{ marshal .Schemes }},
"swagger": "2.0",
"info": {
"description": "{{escape .Description}}",
"title": "{{.Title}}",
"contact": {
"name": "API Support",
"url": "https://github.com/orgs/usememos/discussions"
},
"license": {
"name": "MIT License",
"url": "https://github.com/usememos/memos/blob/main/LICENSE"
},
"version": "{{.Version}}"
},
"host": "{{.Host}}",
"basePath": "{{.BasePath}}",
"paths": {
"/api/v1/auth/signin": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"auth"
],
"summary": "Sign-in to memos.",
"parameters": [
{
"description": "Sign-in object",
"name": "body",
"in": "body",
"required": true,
"schema": {
2023-12-19 22:37:07 +08:00
"$ref": "#/definitions/github_com_usememos_memos_api_v1.SignIn"
}
}
],
"responses": {
"200": {
"description": "User information",
"schema": {
"$ref": "#/definitions/store.User"
}
},
"400": {
"description": "Malformatted signin request"
},
"401": {
"description": "Password login is deactivated | Incorrect login credentials, please try again"
},
"403": {
"description": "User has been archived with username %s"
},
"500": {
"description": "Failed to find system setting | Failed to unmarshal system setting | Incorrect login credentials, please try again | Failed to generate tokens | Failed to create activity"
}
}
}
},
"/api/v1/auth/signin/sso": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"auth"
],
"summary": "Sign-in to memos using SSO.",
"parameters": [
{
"description": "SSO sign-in object",
"name": "body",
"in": "body",
"required": true,
"schema": {
2023-12-19 22:37:07 +08:00
"$ref": "#/definitions/github_com_usememos_memos_api_v1.SSOSignIn"
}
}
],
"responses": {
"200": {
"description": "User information",
"schema": {
"$ref": "#/definitions/store.User"
}
},
"400": {
"description": "Malformatted signin request"
},
"401": {
"description": "Access denied, identifier does not match the filter."
},
"403": {
"description": "User has been archived with username {username}"
},
"404": {
"description": "Identity provider not found"
},
"500": {
"description": "Failed to find identity provider | Failed to create identity provider instance | Failed to exchange token | Failed to get user info | Failed to compile identifier filter | Incorrect login credentials, please try again | Failed to generate random password | Failed to generate password hash | Failed to create user | Failed to generate tokens | Failed to create activity"
}
}
}
},
"/api/v1/auth/signout": {
"post": {
"produces": [
"application/json"
],
"tags": [
"auth"
],
"summary": "Sign-out from memos.",
"responses": {
"200": {
"description": "Sign-out success",
"schema": {
"type": "boolean"
}
}
}
}
},
"/api/v1/auth/signup": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"auth"
],
"summary": "Sign-up to memos.",
"parameters": [
{
"description": "Sign-up object",
"name": "body",
"in": "body",
"required": true,
"schema": {
2023-12-19 22:37:07 +08:00
"$ref": "#/definitions/github_com_usememos_memos_api_v1.SignUp"
}
}
],
"responses": {
"200": {
"description": "User information",
"schema": {
"$ref": "#/definitions/store.User"
}
},
"400": {
"description": "Malformatted signup request | Failed to find users"
},
"401": {
"description": "signup is disabled"
},
"403": {
"description": "Forbidden"
},
"404": {
"description": "Not found"
},
"500": {
"description": "Failed to find system setting | Failed to unmarshal system setting allow signup | Failed to generate password hash | Failed to create user | Failed to generate tokens | Failed to create activity"
}
}
}
},
"/api/v1/idp": {
"get": {
"description": "*clientSecret is only available for host user",
"produces": [
"application/json"
],
"tags": [
"idp"
],
"summary": "Get a list of identity providers",
"responses": {
"200": {
"description": "List of available identity providers",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/api_v1.IdentityProvider"
}
}
},
"500": {
"description": "Failed to find identity provider list | Failed to find user"
}
}
},
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"idp"
],
"summary": "Create Identity Provider",
"parameters": [
{
"description": "Identity provider information",
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/api_v1.CreateIdentityProviderRequest"
}
}
],
"responses": {
"200": {
"description": "Identity provider information",
"schema": {
"$ref": "#/definitions/store.IdentityProvider"
}
},
"400": {
"description": "Malformatted post identity provider request"
},
"401": {
"description": "Missing user in session | Unauthorized"
},
"500": {
"description": "Failed to find user | Failed to create identity provider"
}
}
}
},
"/api/v1/idp/{idpId}": {
"get": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"idp"
],
"summary": "Get an identity provider by ID",
"parameters": [
{
"type": "integer",
"description": "Identity provider ID",
"name": "idpId",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "Requested identity provider",
"schema": {
"$ref": "#/definitions/store.IdentityProvider"
}
},
"400": {
"description": "ID is not a number: %s"
},
"401": {
"description": "Missing user in session | Unauthorized"
},
"404": {
"description": "Identity provider not found"
},
"500": {
"description": "Failed to find identity provider list | Failed to find user"
}
}
},
"delete": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"idp"
],
"summary": "Delete an identity provider by ID",
"parameters": [
{
"type": "integer",
"description": "Identity Provider ID",
"name": "idpId",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "Identity Provider deleted",
"schema": {
"type": "boolean"
}
},
"400": {
"description": "ID is not a number: %s | Malformatted patch identity provider request"
},
"401": {
"description": "Missing user in session | Unauthorized"
},
"500": {
"description": "Failed to find user | Failed to patch identity provider"
}
}
},
"patch": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"idp"
],
"summary": "Update an identity provider by ID",
"parameters": [
{
"type": "integer",
"description": "Identity Provider ID",
"name": "idpId",
"in": "path",
"required": true
},
{
"description": "Patched identity provider information",
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/api_v1.UpdateIdentityProviderRequest"
}
}
],
"responses": {
"200": {
"description": "Patched identity provider",
"schema": {
"$ref": "#/definitions/store.IdentityProvider"
}
},
"400": {
"description": "ID is not a number: %s | Malformatted patch identity provider request"
},
"401": {
"description": "Missing user in session | Unauthorized"
},
"500": {
"description": "Failed to find user | Failed to patch identity provider"
}
}
}
},
"/api/v1/memo": {
"get": {
"produces": [
"application/json"
],
"tags": [
"memo"
],
"summary": "Get a list of memos matching optional filters",
"parameters": [
{
"type": "integer",
"description": "Creator ID",
"name": "creatorId",
"in": "query"
},
{
"type": "string",
"description": "Creator username",
"name": "creatorUsername",
"in": "query"
},
{
"enum": [
"NORMAL",
"ARCHIVED"
],
"type": "string",
"description": "Row status",
"name": "rowStatus",
"in": "query"
},
{
"type": "boolean",
"description": "Pinned",
"name": "pinned",
"in": "query"
},
{
"type": "string",
"description": "Search for tag. Do not append #",
"name": "tag",
"in": "query"
},
{
"type": "string",
"description": "Search for content",
"name": "content",
"in": "query"
},
{
"type": "integer",
"description": "Limit",
"name": "limit",
"in": "query"
},
{
"type": "integer",
"description": "Offset",
"name": "offset",
"in": "query"
}
],
"responses": {
"200": {
"description": "Memo list",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/store.Memo"
}
}
},
"400": {
"description": "Missing user to find memo"
},
"500": {
"description": "Failed to get memo display with updated ts setting value | Failed to fetch memo list | Failed to compose memo response"
}
}
},
"post": {
"description": "Visibility can be PUBLIC, PROTECTED or PRIVATE\n*You should omit fields to use their default values",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"memo"
],
"summary": "Create a memo",
"parameters": [
{
"description": "Request object.",
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/github_com_usememos_memos_api_v1.CreateMemoRequest"
}
}
],
"responses": {
"200": {
"description": "Stored memo",
"schema": {
"$ref": "#/definitions/store.Memo"
}
},
"400": {
"description": "Malformatted post memo request | Content size overflow, up to 1MB"
},
"401": {
"description": "Missing user in session"
},
"404": {
"description": "User not found | Memo not found: %d"
},
"500": {
"description": "Failed to find user setting | Failed to unmarshal user setting value | Failed to find system setting | Failed to unmarshal system setting | Failed to find user | Failed to create memo | Failed to create activity | Failed to upsert memo resource | Failed to upsert memo relation | Failed to compose memo | Failed to compose memo response"
}
}
}
},
"/api/v1/memo/all": {
"get": {
"description": "This should also list protected memos if the user is logged in\nAuthentication is optional",
"produces": [
"application/json"
],
"tags": [
"memo"
],
"summary": "Get a list of public memos matching optional filters",
"parameters": [
{
"type": "integer",
"description": "Limit",
"name": "limit",
"in": "query"
},
{
"type": "integer",
"description": "Offset",
"name": "offset",
"in": "query"
}
],
"responses": {
"200": {
"description": "Memo list",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/store.Memo"
}
}
},
"500": {
"description": "Failed to get memo display with updated ts setting value | Failed to fetch all memo list | Failed to compose memo response"
}
}
}
},
"/api/v1/memo/stats": {
"get": {
"description": "Used to generate the heatmap",
"produces": [
"application/json"
],
"tags": [
"memo"
],
"summary": "Get memo stats by creator ID or username",
"parameters": [
{
"type": "integer",
"description": "Creator ID",
"name": "creatorId",
"in": "query"
},
{
"type": "string",
"description": "Creator username",
"name": "creatorUsername",
"in": "query"
}
],
"responses": {
"200": {
"description": "Memo createdTs list",
"schema": {
"type": "array",
"items": {
"type": "integer"
}
}
},
"400": {
"description": "Missing user id to find memo"
},
"500": {
"description": "Failed to get memo display with updated ts setting value | Failed to find memo list | Failed to compose memo response"
}
}
}
},
"/api/v1/memo/{memoId}": {
"get": {
"produces": [
"application/json"
],
"tags": [
"memo"
],
"summary": "Get memo by ID",
"parameters": [
{
"type": "integer",
"description": "Memo ID",
"name": "memoId",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "Memo list",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/store.Memo"
}
}
},
"400": {
"description": "ID is not a number: %s"
},
"401": {
"description": "Missing user in session"
},
"403": {
"description": "this memo is private only | this memo is protected, missing user in session"
},
"404": {
"description": "Memo not found: %d"
},
"500": {
"description": "Failed to find memo by ID: %v | Failed to compose memo response"
}
}
},
"delete": {
"produces": [
"application/json"
],
"tags": [
"memo"
],
"summary": "Delete memo by ID",
"parameters": [
{
"type": "integer",
"description": "Memo ID to delete",
"name": "memoId",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "Memo deleted",
"schema": {
"type": "boolean"
}
},
"400": {
"description": "ID is not a number: %s"
},
"401": {
"description": "Missing user in session | Unauthorized"
},
"404": {
"description": "Memo not found: %d"
},
"500": {
"description": "Failed to find memo | Failed to delete memo ID: %v"
}
}
},
"patch": {
"description": "Visibility can be PUBLIC, PROTECTED or PRIVATE\n*You should omit fields to use their default values",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"memo"
],
"summary": "Update a memo",
"parameters": [
{
"type": "integer",
"description": "ID of memo to update",
"name": "memoId",
"in": "path",
"required": true
},
{
"description": "Patched object.",
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/github_com_usememos_memos_api_v1.PatchMemoRequest"
}
}
],
"responses": {
"200": {
"description": "Stored memo",
"schema": {
"$ref": "#/definitions/store.Memo"
}
},
"400": {
"description": "ID is not a number: %s | Malformatted patch memo request | Content size overflow, up to 1MB"
},
"401": {
"description": "Missing user in session | Unauthorized"
},
"404": {
"description": "Memo not found: %d"
},
"500": {
"description": "Failed to find memo | Failed to patch memo | Failed to upsert memo resource | Failed to delete memo resource | Failed to compose memo response"
}
}
}
},
"/api/v1/memo/{memoId}/organizer": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"memo-organizer"
],
"summary": "Organize memo (pin/unpin)",
"parameters": [
{
"type": "integer",
"description": "ID of memo to organize",
"name": "memoId",
"in": "path",
"required": true
},
{
"description": "Memo organizer object",
"name": "body",
"in": "body",
"required": true,
"schema": {
2023-12-19 22:37:07 +08:00
"$ref": "#/definitions/github_com_usememos_memos_api_v1.UpsertMemoOrganizerRequest"
}
}
],
"responses": {
"200": {
"description": "Memo information",
"schema": {
"$ref": "#/definitions/store.Memo"
}
},
"400": {
"description": "ID is not a number: %s | Malformatted post memo organizer request"
},
"401": {
"description": "Missing user in session | Unauthorized"
},
"404": {
"description": "Memo not found: %v"
},
"500": {
"description": "Failed to find memo | Failed to upsert memo organizer | Failed to find memo by ID: %v | Failed to compose memo response"
}
}
}
},
"/api/v1/memo/{memoId}/relation": {
"get": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"memo-relation"
],
"summary": "Get a list of Memo Relations",
"parameters": [
{
"type": "integer",
"description": "ID of memo to find relations",
"name": "memoId",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "Memo relation information list",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/store.MemoRelation"
}
}
},
"400": {
"description": "ID is not a number: %s"
},
"500": {
"description": "Failed to list memo relations"
}
}
},
"post": {
"description": "Create a relation between two memos",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"memo-relation"
],
"summary": "Create Memo Relation",
"parameters": [
{
"type": "integer",
"description": "ID of memo to relate",
"name": "memoId",
"in": "path",
"required": true
},
{
"description": "Memo relation object",
"name": "body",
"in": "body",
"required": true,
"schema": {
2024-01-29 22:05:33 +08:00
"$ref": "#/definitions/github_com_usememos_memos_api_v1.UpsertMemoRelationRequest"
}
}
],
"responses": {
"200": {
"description": "Memo relation information",
"schema": {
"$ref": "#/definitions/store.MemoRelation"
}
},
"400": {
"description": "ID is not a number: %s | Malformatted post memo relation request"
},
"500": {
"description": "Failed to upsert memo relation"
}
}
}
},
"/api/v1/memo/{memoId}/relation/{relatedMemoId}/type/{relationType}": {
"delete": {
"description": "Removes a relation between two memos",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"memo-relation"
],
"summary": "Delete a Memo Relation",
"parameters": [
{
"type": "integer",
"description": "ID of memo to find relations",
"name": "memoId",
"in": "path",
"required": true
},
{
"type": "integer",
"description": "ID of memo to remove relation to",
"name": "relatedMemoId",
"in": "path",
"required": true
},
{
"enum": [
"REFERENCE",
2023-12-19 22:37:07 +08:00
"COMMENT"
],
"type": "string",
"description": "Type of relation to remove",
"name": "relationType",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "Memo relation deleted",
"schema": {
"type": "boolean"
}
},
"400": {
"description": "Memo ID is not a number: %s | Related memo ID is not a number: %s"
},
"500": {
"description": "Failed to delete memo relation"
}
}
}
},
2023-08-10 09:01:38 +08:00
"/api/v1/ping": {
"get": {
"produces": [
"application/json"
],
"tags": [
"system"
],
"summary": "Ping the system",
"responses": {
"200": {
"description": "If succeed to ping the system",
"schema": {
"type": "boolean"
}
}
}
}
},
"/api/v1/resource": {
"get": {
"produces": [
"application/json"
],
"tags": [
"resource"
],
"summary": "Get a list of resources",
"parameters": [
{
"type": "integer",
"description": "Limit",
"name": "limit",
"in": "query"
},
{
"type": "integer",
"description": "Offset",
"name": "offset",
"in": "query"
}
],
"responses": {
"200": {
"description": "Resource list",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/store.Resource"
}
}
},
"401": {
"description": "Missing user in session"
},
"500": {
"description": "Failed to fetch resource list"
}
}
},
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"resource"
],
"summary": "Create resource",
"parameters": [
{
"description": "Request object.",
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/api_v1.CreateResourceRequest"
}
}
],
"responses": {
"200": {
"description": "Created resource",
"schema": {
"$ref": "#/definitions/store.Resource"
}
},
"400": {
"description": "Malformatted post resource request | Invalid external link | Invalid external link scheme | Failed to request %s | Failed to read %s | Failed to read mime from %s"
},
"401": {
"description": "Missing user in session"
},
"500": {
"description": "Failed to save resource | Failed to create resource | Failed to create activity"
}
}
}
},
"/api/v1/resource/blob": {
"post": {
"consumes": [
"multipart/form-data"
],
"produces": [
"application/json"
],
"tags": [
"resource"
],
"summary": "Upload resource",
"parameters": [
{
"type": "file",
"description": "File to upload",
"name": "file",
"in": "formData",
"required": true
}
],
"responses": {
"200": {
"description": "Created resource",
"schema": {
"$ref": "#/definitions/store.Resource"
}
},
"400": {
"description": "Upload file not found | File size exceeds allowed limit of %d MiB | Failed to parse upload data"
},
"401": {
"description": "Missing user in session"
},
"500": {
"description": "Failed to get uploading file | Failed to open file | Failed to save resource | Failed to create resource | Failed to create activity"
}
}
}
},
"/api/v1/resource/{resourceId}": {
"delete": {
"produces": [
"application/json"
],
"tags": [
"resource"
],
"summary": "Delete a resource",
"parameters": [
{
"type": "integer",
"description": "Resource ID",
"name": "resourceId",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "Resource deleted",
"schema": {
"type": "boolean"
}
},
"400": {
"description": "ID is not a number: %s"
},
"401": {
"description": "Missing user in session"
},
"404": {
"description": "Resource not found: %d"
},
"500": {
"description": "Failed to find resource | Failed to delete resource"
}
}
},
"patch": {
"produces": [
"application/json"
],
"tags": [
"resource"
],
"summary": "Update a resource",
"parameters": [
{
"type": "integer",
"description": "Resource ID",
"name": "resourceId",
"in": "path",
"required": true
},
{
"description": "Patch resource request",
"name": "patch",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/api_v1.UpdateResourceRequest"
}
}
],
"responses": {
"200": {
"description": "Updated resource",
"schema": {
"$ref": "#/definitions/store.Resource"
}
},
"400": {
"description": "ID is not a number: %s | Malformatted patch resource request"
},
"401": {
"description": "Missing user in session | Unauthorized"
},
"404": {
"description": "Resource not found: %d"
},
"500": {
"description": "Failed to find resource | Failed to patch resource"
}
}
}
},
2023-08-10 09:01:38 +08:00
"/api/v1/status": {
"get": {
"produces": [
"application/json"
],
"tags": [
"system"
],
"summary": "Get system GetSystemStatus",
"responses": {
"200": {
"description": "System GetSystemStatus",
"schema": {
"$ref": "#/definitions/api_v1.SystemStatus"
2023-08-10 09:01:38 +08:00
}
},
"401": {
"description": "Missing user in session | Unauthorized"
},
"500": {
"description": "Failed to find host user | Failed to find system setting list | Failed to unmarshal system setting customized profile value"
}
}
}
},
"/api/v1/storage": {
"get": {
"produces": [
"application/json"
],
"tags": [
"storage"
],
"summary": "Get a list of storages",
"responses": {
"200": {
"description": "List of storages",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/store.Storage"
}
}
},
"401": {
"description": "Missing user in session | Unauthorized"
},
"500": {
"description": "Failed to find user | Failed to convert storage"
}
}
},
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"storage"
],
"summary": "Create storage",
"parameters": [
{
"description": "Request object.",
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/github_com_usememos_memos_api_v1.CreateStorageRequest"
}
}
],
"responses": {
"200": {
"description": "Created storage",
"schema": {
"$ref": "#/definitions/store.Storage"
}
},
"400": {
"description": "Malformatted post storage request"
},
"401": {
"description": "Missing user in session"
},
"500": {
"description": "Failed to find user | Failed to create storage | Failed to convert storage"
}
}
}
},
"/api/v1/storage/{storageId}": {
"delete": {
"produces": [
"application/json"
],
"tags": [
"storage"
],
"summary": "Delete a storage",
"parameters": [
{
"type": "integer",
"description": "Storage ID",
"name": "storageId",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "Storage deleted",
"schema": {
"type": "boolean"
}
},
"400": {
"description": "ID is not a number: %s | Storage service %d is using"
},
"401": {
"description": "Missing user in session | Unauthorized"
},
"500": {
"description": "Failed to find user | Failed to find storage | Failed to unmarshal storage service id | Failed to delete storage"
}
}
},
"patch": {
"produces": [
"application/json"
],
"tags": [
"storage"
],
"summary": "Update a storage",
"parameters": [
{
"type": "integer",
"description": "Storage ID",
"name": "storageId",
"in": "path",
"required": true
},
{
"description": "Patch request",
"name": "patch",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/github_com_usememos_memos_api_v1.UpdateStorageRequest"
}
}
],
"responses": {
"200": {
"description": "Updated resource",
"schema": {
"$ref": "#/definitions/store.Storage"
}
},
"400": {
"description": "ID is not a number: %s | Malformatted patch storage request | Malformatted post storage request"
},
"401": {
"description": "Missing user in session | Unauthorized"
},
"500": {
"description": "Failed to find user | Failed to patch storage | Failed to convert storage"
}
}
}
},
"/api/v1/system/setting": {
"get": {
"produces": [
"application/json"
],
"tags": [
"system-setting"
],
"summary": "Get a list of system settings",
"responses": {
"200": {
"description": "System setting list",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/api_v1.SystemSetting"
}
}
},
"401": {
"description": "Missing user in session | Unauthorized"
},
"500": {
"description": "Failed to find user | Failed to find system setting list"
}
}
},
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"system-setting"
],
"summary": "Create system setting",
"parameters": [
{
"description": "Request object.",
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/api_v1.UpsertSystemSettingRequest"
}
}
],
"responses": {
"400": {
"description": "Malformatted post system setting request | invalid system setting"
},
"401": {
"description": "Missing user in session | Unauthorized"
},
"403": {
"description": "Cannot disable passwords if no SSO identity provider is configured."
},
"500": {
"description": "Failed to find user | Failed to upsert system setting"
}
}
}
},
2023-08-10 09:01:38 +08:00
"/api/v1/system/vacuum": {
"post": {
"produces": [
"application/json"
],
"tags": [
"system"
],
"summary": "Vacuum the database",
"responses": {
"200": {
"description": "Database vacuumed",
"schema": {
"type": "boolean"
}
},
"401": {
"description": "Missing user in session | Unauthorized"
},
"500": {
"description": "Failed to find user | Failed to ExecVacuum database"
}
}
}
},
"/api/v1/tag": {
"get": {
"produces": [
"application/json"
],
"tags": [
"tag"
],
"summary": "Get a list of tags",
"responses": {
"200": {
"description": "Tag list",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
"400": {
"description": "Missing user id to find tag"
},
"500": {
"description": "Failed to find tag list"
}
}
},
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"tag"
],
"summary": "Create a tag",
"parameters": [
{
"description": "Request object.",
"name": "body",
"in": "body",
"required": true,
"schema": {
2023-12-19 22:37:07 +08:00
"$ref": "#/definitions/github_com_usememos_memos_api_v1.UpsertTagRequest"
}
}
],
"responses": {
"200": {
"description": "Created tag name",
"schema": {
"type": "string"
}
},
"400": {
"description": "Malformatted post tag request | Tag name shouldn't be empty"
},
"401": {
"description": "Missing user in session"
},
"500": {
"description": "Failed to upsert tag | Failed to create activity"
}
}
}
},
"/api/v1/tag/delete": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"tag"
],
"summary": "Delete a tag",
"parameters": [
{
"description": "Request object.",
"name": "body",
"in": "body",
"required": true,
"schema": {
2023-12-19 22:37:07 +08:00
"$ref": "#/definitions/github_com_usememos_memos_api_v1.DeleteTagRequest"
}
}
],
"responses": {
"200": {
"description": "Tag deleted",
"schema": {
"type": "boolean"
}
},
"400": {
"description": "Malformatted post tag request | Tag name shouldn't be empty"
},
"401": {
"description": "Missing user in session"
},
"500": {
"description": "Failed to delete tag name: %v"
}
}
}
},
"/api/v1/tag/suggestion": {
"get": {
"produces": [
"application/json"
],
"tags": [
"tag"
],
"summary": "Get a list of tags suggested from other memos contents",
"responses": {
"200": {
"description": "Tag list",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
"400": {
"description": "Missing user session"
},
"500": {
"description": "Failed to find memo list | Failed to find tag list"
}
}
}
},
"/api/v1/user": {
"get": {
"produces": [
"application/json"
],
"tags": [
"user"
],
"summary": "Get a list of users",
"responses": {
"200": {
"description": "User list",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/store.User"
}
}
},
"500": {
"description": "Failed to fetch user list"
}
}
},
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"user"
],
"summary": "Create a user",
"parameters": [
{
"description": "Request object",
"name": "body",
"in": "body",
"required": true,
"schema": {
2024-02-21 21:15:28 +08:00
"$ref": "#/definitions/api_v1.CreateUserRequest"
}
}
],
"responses": {
"200": {
"description": "Created user",
"schema": {
"$ref": "#/definitions/store.User"
}
},
"400": {
"description": "Malformatted post user request | Invalid user create format"
},
"401": {
"description": "Missing auth session | Unauthorized to create user"
},
"403": {
"description": "Could not create host user"
},
"500": {
"description": "Failed to find user by id | Failed to generate password hash | Failed to create user | Failed to create activity"
}
}
}
},
"/api/v1/user/me": {
"get": {
"produces": [
"application/json"
],
"tags": [
"user"
],
"summary": "Get current user",
"responses": {
"200": {
"description": "Current user",
"schema": {
"$ref": "#/definitions/store.User"
}
},
"401": {
"description": "Missing auth session"
},
"500": {
"description": "Failed to find user | Failed to find userSettingList"
}
}
}
},
"/api/v1/user/name/{username}": {
"get": {
"produces": [
"application/json"
],
"tags": [
"user"
],
"summary": "Get user by username",
"parameters": [
{
"type": "string",
"description": "Username",
"name": "username",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "Requested user",
"schema": {
"$ref": "#/definitions/store.User"
}
},
"404": {
"description": "User not found"
},
"500": {
"description": "Failed to find user"
}
}
}
},
"/api/v1/user/{id}": {
"get": {
"produces": [
"application/json"
],
"tags": [
"user"
],
"summary": "Get user by id",
"parameters": [
{
"type": "integer",
"description": "User ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "Requested user",
"schema": {
"$ref": "#/definitions/store.User"
}
},
"400": {
"description": "Malformatted user id"
},
"404": {
"description": "User not found"
},
"500": {
"description": "Failed to find user"
}
}
},
"delete": {
"produces": [
"application/json"
],
"tags": [
"user"
],
"summary": "Delete a user",
"parameters": [
{
"type": "string",
"description": "User ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "User deleted",
"schema": {
"type": "boolean"
}
},
"400": {
"description": "ID is not a number: %s | Current session user not found with ID: %d"
},
"401": {
"description": "Missing user in session"
},
"403": {
"description": "Unauthorized to delete user"
},
"500": {
"description": "Failed to find user | Failed to delete user"
}
}
},
"patch": {
"produces": [
"application/json"
],
"tags": [
"user"
],
"summary": "Update a user",
"parameters": [
{
"type": "string",
"description": "User ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "Patch request",
"name": "patch",
"in": "body",
"required": true,
"schema": {
2024-02-21 21:15:28 +08:00
"$ref": "#/definitions/api_v1.UpdateUserRequest"
}
}
],
"responses": {
"200": {
"description": "Updated user",
"schema": {
"$ref": "#/definitions/store.User"
}
},
"400": {
"description": "ID is not a number: %s | Current session user not found with ID: %d | Malformatted patch user request | Invalid update user request"
},
"401": {
"description": "Missing user in session"
},
"403": {
"description": "Unauthorized to update user"
},
"500": {
"description": "Failed to find user | Failed to generate password hash | Failed to patch user | Failed to find userSettingList"
}
}
}
},
"/o/get/GetImage": {
"get": {
"produces": [
"GetImage/*"
],
"tags": [
2023-12-19 22:37:07 +08:00
"image-url"
],
"summary": "Get GetImage from URL",
"parameters": [
{
"type": "string",
"description": "Image url",
"name": "url",
"in": "query",
"required": true
}
],
"responses": {
"200": {
"description": "Image"
},
"400": {
"description": "Missing GetImage url | Wrong url | Failed to get GetImage url: %s"
},
"500": {
"description": "Failed to write GetImage blob"
}
}
}
}
},
"definitions": {
2023-12-19 22:37:07 +08:00
"api_v1.CreateIdentityProviderRequest": {
"type": "object",
"properties": {
"config": {
"$ref": "#/definitions/api_v1.IdentityProviderConfig"
},
"identifierFilter": {
"type": "string"
},
"name": {
"type": "string"
},
"type": {
"$ref": "#/definitions/api_v1.IdentityProviderType"
}
}
},
"api_v1.CreateMemoRequest": {
2023-09-14 22:57:27 +08:00
"type": "object",
"properties": {
2023-12-19 22:37:07 +08:00
"content": {
2023-09-14 22:57:27 +08:00
"type": "string"
},
2023-12-19 22:37:07 +08:00
"createdTs": {
2023-09-14 22:57:27 +08:00
"type": "integer"
},
2023-12-19 22:37:07 +08:00
"relationList": {
"type": "array",
"items": {
"$ref": "#/definitions/api_v1.UpsertMemoRelationRequest"
}
},
"resourceIdList": {
"description": "Related fields",
"type": "array",
"items": {
"type": "integer"
}
},
"visibility": {
"description": "Domain specific fields",
"allOf": [
{
"$ref": "#/definitions/api_v1.Visibility"
}
]
}
}
},
"api_v1.CreateResourceRequest": {
"type": "object",
"properties": {
"externalLink": {
"type": "string"
},
"filename": {
"type": "string"
},
"type": {
2023-09-14 22:57:27 +08:00
"type": "string"
}
}
},
2023-12-19 22:37:07 +08:00
"api_v1.CreateStorageRequest": {
"type": "object",
"properties": {
2023-12-19 22:37:07 +08:00
"config": {
"$ref": "#/definitions/api_v1.StorageConfig"
},
"name": {
"type": "string"
},
2023-12-19 22:37:07 +08:00
"type": {
"$ref": "#/definitions/api_v1.StorageType"
}
}
},
"api_v1.CreateUserRequest": {
"type": "object",
"properties": {
"email": {
"type": "string"
},
2023-12-19 22:37:07 +08:00
"nickname": {
"type": "string"
},
2023-12-19 22:37:07 +08:00
"password": {
"type": "string"
},
"role": {
"$ref": "#/definitions/api_v1.Role"
},
"username": {
"type": "string"
}
}
},
2023-12-19 22:37:07 +08:00
"api_v1.CustomizedProfile": {
"type": "object",
"properties": {
"appearance": {
"description": "Appearance is the server default appearance.",
"type": "string"
},
"description": {
"description": "Description is the server description.",
"type": "string"
},
"locale": {
"description": "Locale is the server default locale.",
"type": "string"
},
"logoUrl": {
"description": "LogoURL is the url of logo image.",
"type": "string"
},
"name": {
"description": "Name is the server name, default is ` + "`" + `memos` + "`" + `",
"type": "string"
}
}
},
"api_v1.DeleteTagRequest": {
"type": "object",
"properties": {
"name": {
"type": "string"
}
}
},
"api_v1.FieldMapping": {
"type": "object",
"properties": {
"displayName": {
"type": "string"
},
"email": {
"type": "string"
},
"identifier": {
"type": "string"
}
}
},
2023-12-19 22:37:07 +08:00
"api_v1.IdentityProvider": {
"type": "object",
"properties": {
"config": {
2023-12-19 22:37:07 +08:00
"$ref": "#/definitions/api_v1.IdentityProviderConfig"
},
"id": {
"type": "integer"
},
"identifierFilter": {
"type": "string"
},
"name": {
"type": "string"
},
"type": {
2023-12-19 22:37:07 +08:00
"$ref": "#/definitions/api_v1.IdentityProviderType"
}
}
},
2023-12-19 22:37:07 +08:00
"api_v1.IdentityProviderConfig": {
"type": "object",
"properties": {
"oauth2Config": {
2023-12-19 22:37:07 +08:00
"$ref": "#/definitions/api_v1.IdentityProviderOAuth2Config"
}
}
},
2023-12-19 22:37:07 +08:00
"api_v1.IdentityProviderOAuth2Config": {
"type": "object",
"properties": {
"authUrl": {
"type": "string"
},
"clientId": {
"type": "string"
},
"clientSecret": {
"type": "string"
},
"fieldMapping": {
2023-12-19 22:37:07 +08:00
"$ref": "#/definitions/api_v1.FieldMapping"
},
"scopes": {
"type": "array",
"items": {
"type": "string"
}
},
"tokenUrl": {
"type": "string"
},
"userInfoUrl": {
"type": "string"
}
}
},
2023-12-19 22:37:07 +08:00
"api_v1.IdentityProviderType": {
"type": "string",
"enum": [
"OAUTH2"
],
"x-enum-varnames": [
"IdentityProviderOAuth2Type"
]
},
2023-12-19 22:37:07 +08:00
"api_v1.MemoRelationType": {
"type": "string",
"enum": [
"REFERENCE",
"COMMENT"
],
"x-enum-varnames": [
"MemoRelationReference",
"MemoRelationComment"
]
},
"api_v1.PatchMemoRequest": {
"type": "object",
"properties": {
"content": {
"description": "Domain specific fields",
"type": "string"
},
"createdTs": {
2023-12-19 22:37:07 +08:00
"description": "Standard fields",
"type": "integer"
},
"relationList": {
"type": "array",
"items": {
2023-12-19 22:37:07 +08:00
"$ref": "#/definitions/api_v1.UpsertMemoRelationRequest"
}
},
2023-12-19 22:37:07 +08:00
"resourceIdList": {
"description": "Related fields",
"type": "array",
"items": {
"type": "integer"
}
},
"rowStatus": {
2023-12-19 22:37:07 +08:00
"$ref": "#/definitions/api_v1.RowStatus"
},
"updatedTs": {
"type": "integer"
},
"visibility": {
2023-12-19 22:37:07 +08:00
"$ref": "#/definitions/api_v1.Visibility"
}
}
},
2023-12-19 22:37:07 +08:00
"api_v1.Role": {
"type": "string",
"enum": [
"HOST",
"ADMIN",
"USER"
],
"x-enum-varnames": [
"RoleHost",
"RoleAdmin",
"RoleUser"
]
},
2023-12-19 22:37:07 +08:00
"api_v1.RowStatus": {
"type": "string",
"enum": [
2023-12-19 22:37:07 +08:00
"NORMAL",
"ARCHIVED"
],
"x-enum-varnames": [
2023-12-19 22:37:07 +08:00
"Normal",
"Archived"
]
},
2023-12-19 22:37:07 +08:00
"api_v1.SSOSignIn": {
"type": "object",
"properties": {
2023-12-19 22:37:07 +08:00
"code": {
"type": "string"
},
2023-12-19 22:37:07 +08:00
"identityProviderId": {
"type": "integer"
},
2023-12-19 22:37:07 +08:00
"redirectUri": {
"type": "string"
}
}
},
"api_v1.SignIn": {
"type": "object",
"properties": {
"password": {
"type": "string"
},
2023-12-19 22:37:07 +08:00
"remember": {
"type": "boolean"
},
"username": {
"type": "string"
}
}
},
"api_v1.SignUp": {
"type": "object",
"properties": {
"password": {
"type": "string"
},
2023-12-19 22:37:07 +08:00
"username": {
"type": "string"
}
}
},
"api_v1.StorageConfig": {
"type": "object",
"properties": {
"s3Config": {
"$ref": "#/definitions/api_v1.StorageS3Config"
}
}
},
"api_v1.StorageS3Config": {
"type": "object",
"properties": {
"accessKey": {
"type": "string"
},
2023-12-19 22:37:07 +08:00
"bucket": {
"type": "string"
},
2023-12-19 22:37:07 +08:00
"endPoint": {
"type": "string"
},
2023-12-19 22:37:07 +08:00
"path": {
"type": "string"
},
2024-01-29 22:05:33 +08:00
"presign": {
"type": "boolean"
},
2023-12-19 22:37:07 +08:00
"region": {
"type": "string"
},
2023-12-19 22:37:07 +08:00
"secretKey": {
"type": "string"
},
2023-12-19 22:37:07 +08:00
"urlPrefix": {
"type": "string"
},
"urlSuffix": {
"type": "string"
}
}
},
2023-12-19 22:37:07 +08:00
"api_v1.StorageType": {
"type": "string",
"enum": [
2023-12-19 22:37:07 +08:00
"S3"
],
"x-enum-varnames": [
2023-12-19 22:37:07 +08:00
"StorageS3"
]
},
2023-12-19 22:37:07 +08:00
"api_v1.SystemSetting": {
"type": "object",
"properties": {
"description": {
"type": "string"
},
"name": {
"$ref": "#/definitions/api_v1.SystemSettingName"
},
"value": {
"description": "Value is a JSON string with basic value.",
"type": "string"
}
}
},
"api_v1.SystemSettingName": {
"type": "string",
"enum": [
2023-12-19 22:37:07 +08:00
"server-id",
"secret-session",
"disable-public-memos",
"max-upload-size-mib",
"customized-profile",
"storage-service-id",
"local-storage-path",
"telegram-bot-token",
"memo-display-with-updated-ts"
],
"x-enum-varnames": [
2023-12-19 22:37:07 +08:00
"SystemSettingServerIDName",
"SystemSettingSecretSessionName",
"SystemSettingDisablePublicMemosName",
"SystemSettingMaxUploadSizeMiBName",
"SystemSettingCustomizedProfileName",
"SystemSettingStorageServiceIDName",
"SystemSettingLocalStoragePathName",
"SystemSettingTelegramBotTokenName",
"SystemSettingMemoDisplayWithUpdatedTsName"
]
},
2023-12-19 22:37:07 +08:00
"api_v1.SystemStatus": {
"type": "object",
"properties": {
2023-12-19 22:37:07 +08:00
"additionalScript": {
"description": "Additional script.",
"type": "string"
},
2023-12-19 22:37:07 +08:00
"additionalStyle": {
"description": "Additional style.",
"type": "string"
},
"allowSignUp": {
"description": "System settings\nAllow sign up.",
"type": "boolean"
},
"customizedProfile": {
"description": "Customized server profile, including server name and external url.",
"allOf": [
{
"$ref": "#/definitions/api_v1.CustomizedProfile"
}
]
},
"dbSize": {
"type": "integer"
},
"disablePasswordLogin": {
"description": "Disable password login.",
"type": "boolean"
},
"disablePublicMemos": {
"description": "Disable public memos.",
"type": "boolean"
},
"host": {
"$ref": "#/definitions/api_v1.User"
},
"localStoragePath": {
"description": "Local storage path.",
"type": "string"
},
"maxUploadSizeMiB": {
"description": "Max upload size.",
"type": "integer"
},
"memoDisplayWithUpdatedTs": {
"description": "Memo display with updated timestamp.",
"type": "boolean"
},
"profile": {
"$ref": "#/definitions/profile.Profile"
},
"storageServiceId": {
"description": "Storage service ID.",
"type": "integer"
2023-12-19 22:37:07 +08:00
}
}
},
"api_v1.UpdateIdentityProviderRequest": {
"type": "object",
"properties": {
"config": {
"$ref": "#/definitions/api_v1.IdentityProviderConfig"
},
"identifierFilter": {
"type": "string"
},
"name": {
"type": "string"
},
"type": {
2023-12-19 22:37:07 +08:00
"$ref": "#/definitions/api_v1.IdentityProviderType"
}
}
},
"api_v1.UpdateResourceRequest": {
"type": "object",
"properties": {
"filename": {
"type": "string"
}
}
},
2023-12-19 22:37:07 +08:00
"api_v1.UpdateStorageRequest": {
"type": "object",
"properties": {
"config": {
"$ref": "#/definitions/api_v1.StorageConfig"
},
"name": {
"type": "string"
},
"type": {
"$ref": "#/definitions/api_v1.StorageType"
}
}
},
"api_v1.UpdateUserRequest": {
"type": "object",
"properties": {
"avatarUrl": {
"type": "string"
},
"email": {
"type": "string"
},
"nickname": {
"type": "string"
},
"password": {
"type": "string"
},
"rowStatus": {
"$ref": "#/definitions/api_v1.RowStatus"
},
"username": {
"type": "string"
}
}
},
"api_v1.UpsertMemoOrganizerRequest": {
"type": "object",
"properties": {
"pinned": {
"type": "boolean"
}
}
},
"api_v1.UpsertMemoRelationRequest": {
"type": "object",
"properties": {
"relatedMemoId": {
"type": "integer"
},
"type": {
"$ref": "#/definitions/api_v1.MemoRelationType"
}
}
},
"api_v1.UpsertSystemSettingRequest": {
"type": "object",
"properties": {
"description": {
"type": "string"
},
"name": {
2023-12-19 22:37:07 +08:00
"$ref": "#/definitions/api_v1.SystemSettingName"
},
"value": {
"type": "string"
}
}
},
2023-12-19 22:37:07 +08:00
"api_v1.UpsertTagRequest": {
"type": "object",
"properties": {
2023-12-19 22:37:07 +08:00
"name": {
"type": "string"
}
}
},
"api_v1.User": {
"type": "object",
"properties": {
"avatarUrl": {
"type": "string"
},
"createdTs": {
"type": "integer"
},
"email": {
"type": "string"
},
"id": {
"type": "integer"
},
"nickname": {
"type": "string"
},
"role": {
2023-12-19 22:37:07 +08:00
"$ref": "#/definitions/api_v1.Role"
},
"rowStatus": {
"description": "Standard fields",
"allOf": [
{
2023-12-19 22:37:07 +08:00
"$ref": "#/definitions/api_v1.RowStatus"
}
]
},
"updatedTs": {
"type": "integer"
},
"username": {
"description": "Domain specific fields",
"type": "string"
}
}
},
2023-12-19 22:37:07 +08:00
"api_v1.Visibility": {
"type": "string",
"enum": [
"PUBLIC",
"PROTECTED",
"PRIVATE"
],
"x-enum-varnames": [
"Public",
"Protected",
"Private"
]
},
2023-12-19 22:37:07 +08:00
"github_com_usememos_memos_api_v1.CreateIdentityProviderRequest": {
"type": "object",
"properties": {
"config": {
2023-12-19 22:37:07 +08:00
"$ref": "#/definitions/github_com_usememos_memos_api_v1.IdentityProviderConfig"
},
"identifierFilter": {
"type": "string"
},
"name": {
"type": "string"
},
"type": {
2023-12-19 22:37:07 +08:00
"$ref": "#/definitions/github_com_usememos_memos_api_v1.IdentityProviderType"
}
}
},
2023-12-19 22:37:07 +08:00
"github_com_usememos_memos_api_v1.CreateMemoRequest": {
"type": "object",
"properties": {
"content": {
"type": "string"
},
"createdTs": {
"type": "integer"
},
"relationList": {
"type": "array",
"items": {
2023-12-19 22:37:07 +08:00
"$ref": "#/definitions/github_com_usememos_memos_api_v1.UpsertMemoRelationRequest"
}
},
"resourceIdList": {
"description": "Related fields",
"type": "array",
"items": {
"type": "integer"
}
},
"visibility": {
"description": "Domain specific fields",
"allOf": [
{
2023-12-19 22:37:07 +08:00
"$ref": "#/definitions/github_com_usememos_memos_api_v1.Visibility"
}
]
}
}
},
2023-12-19 22:37:07 +08:00
"github_com_usememos_memos_api_v1.CreateResourceRequest": {
"type": "object",
"properties": {
"externalLink": {
"type": "string"
},
"filename": {
"type": "string"
},
"type": {
"type": "string"
}
}
},
2023-12-19 22:37:07 +08:00
"github_com_usememos_memos_api_v1.CreateStorageRequest": {
"type": "object",
"properties": {
"config": {
2023-12-19 22:37:07 +08:00
"$ref": "#/definitions/github_com_usememos_memos_api_v1.StorageConfig"
},
"name": {
"type": "string"
},
"type": {
2023-12-19 22:37:07 +08:00
"$ref": "#/definitions/github_com_usememos_memos_api_v1.StorageType"
}
}
},
2023-12-19 22:37:07 +08:00
"github_com_usememos_memos_api_v1.CreateUserRequest": {
"type": "object",
"properties": {
"email": {
"type": "string"
},
"nickname": {
"type": "string"
},
"password": {
"type": "string"
},
"role": {
2023-12-19 22:37:07 +08:00
"$ref": "#/definitions/github_com_usememos_memos_api_v1.Role"
},
"username": {
"type": "string"
}
}
},
2023-12-19 22:37:07 +08:00
"github_com_usememos_memos_api_v1.CustomizedProfile": {
"type": "object",
"properties": {
"appearance": {
"description": "Appearance is the server default appearance.",
"type": "string"
},
"description": {
"description": "Description is the server description.",
"type": "string"
},
"locale": {
"description": "Locale is the server default locale.",
"type": "string"
},
"logoUrl": {
"description": "LogoURL is the url of logo image.",
"type": "string"
},
"name": {
"description": "Name is the server name, default is ` + "`" + `memos` + "`" + `",
"type": "string"
}
}
},
2023-12-19 22:37:07 +08:00
"github_com_usememos_memos_api_v1.DeleteTagRequest": {
"type": "object",
"properties": {
"name": {
"type": "string"
}
}
},
2023-12-19 22:37:07 +08:00
"github_com_usememos_memos_api_v1.FieldMapping": {
"type": "object",
"properties": {
"displayName": {
"type": "string"
},
"email": {
"type": "string"
},
"identifier": {
"type": "string"
}
}
},
2023-12-19 22:37:07 +08:00
"github_com_usememos_memos_api_v1.IdentityProvider": {
"type": "object",
"properties": {
"config": {
2023-12-19 22:37:07 +08:00
"$ref": "#/definitions/github_com_usememos_memos_api_v1.IdentityProviderConfig"
},
"id": {
"type": "integer"
},
"identifierFilter": {
"type": "string"
},
"name": {
"type": "string"
},
"type": {
2023-12-19 22:37:07 +08:00
"$ref": "#/definitions/github_com_usememos_memos_api_v1.IdentityProviderType"
}
}
},
2023-12-19 22:37:07 +08:00
"github_com_usememos_memos_api_v1.IdentityProviderConfig": {
"type": "object",
"properties": {
"oauth2Config": {
2023-12-19 22:37:07 +08:00
"$ref": "#/definitions/github_com_usememos_memos_api_v1.IdentityProviderOAuth2Config"
}
}
},
2023-12-19 22:37:07 +08:00
"github_com_usememos_memos_api_v1.IdentityProviderOAuth2Config": {
"type": "object",
"properties": {
"authUrl": {
"type": "string"
},
"clientId": {
"type": "string"
},
"clientSecret": {
"type": "string"
},
"fieldMapping": {
2023-12-19 22:37:07 +08:00
"$ref": "#/definitions/github_com_usememos_memos_api_v1.FieldMapping"
},
"scopes": {
"type": "array",
"items": {
"type": "string"
}
},
"tokenUrl": {
"type": "string"
},
"userInfoUrl": {
"type": "string"
}
}
},
2023-12-19 22:37:07 +08:00
"github_com_usememos_memos_api_v1.IdentityProviderType": {
"type": "string",
"enum": [
"OAUTH2"
],
"x-enum-varnames": [
"IdentityProviderOAuth2Type"
]
},
2023-12-19 22:37:07 +08:00
"github_com_usememos_memos_api_v1.MemoRelationType": {
"type": "string",
"enum": [
"REFERENCE",
2023-12-19 22:37:07 +08:00
"COMMENT"
],
"x-enum-varnames": [
"MemoRelationReference",
2023-12-19 22:37:07 +08:00
"MemoRelationComment"
]
},
2023-12-19 22:37:07 +08:00
"github_com_usememos_memos_api_v1.PatchMemoRequest": {
"type": "object",
"properties": {
"content": {
"description": "Domain specific fields",
"type": "string"
},
"createdTs": {
"description": "Standard fields",
"type": "integer"
},
"relationList": {
"type": "array",
"items": {
2023-12-19 22:37:07 +08:00
"$ref": "#/definitions/github_com_usememos_memos_api_v1.UpsertMemoRelationRequest"
}
},
"resourceIdList": {
"description": "Related fields",
"type": "array",
"items": {
"type": "integer"
}
},
"rowStatus": {
2023-12-19 22:37:07 +08:00
"$ref": "#/definitions/github_com_usememos_memos_api_v1.RowStatus"
},
"updatedTs": {
"type": "integer"
},
"visibility": {
2023-12-19 22:37:07 +08:00
"$ref": "#/definitions/github_com_usememos_memos_api_v1.Visibility"
}
}
},
2023-12-19 22:37:07 +08:00
"github_com_usememos_memos_api_v1.Role": {
"type": "string",
"enum": [
"HOST",
"ADMIN",
"USER"
],
"x-enum-varnames": [
"RoleHost",
"RoleAdmin",
"RoleUser"
]
},
2023-12-19 22:37:07 +08:00
"github_com_usememos_memos_api_v1.RowStatus": {
"type": "string",
"enum": [
"NORMAL",
"ARCHIVED"
],
"x-enum-varnames": [
"Normal",
"Archived"
]
},
2023-12-19 22:37:07 +08:00
"github_com_usememos_memos_api_v1.SSOSignIn": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"identityProviderId": {
"type": "integer"
},
"redirectUri": {
"type": "string"
}
}
},
2023-12-19 22:37:07 +08:00
"github_com_usememos_memos_api_v1.SignIn": {
"type": "object",
"properties": {
"password": {
"type": "string"
},
2023-12-19 22:37:07 +08:00
"remember": {
"type": "boolean"
},
"username": {
"type": "string"
}
}
},
2023-12-19 22:37:07 +08:00
"github_com_usememos_memos_api_v1.SignUp": {
"type": "object",
"properties": {
"password": {
"type": "string"
},
"username": {
"type": "string"
}
}
},
2023-12-19 22:37:07 +08:00
"github_com_usememos_memos_api_v1.StorageConfig": {
"type": "object",
"properties": {
"s3Config": {
2023-12-19 22:37:07 +08:00
"$ref": "#/definitions/github_com_usememos_memos_api_v1.StorageS3Config"
}
}
},
2023-12-19 22:37:07 +08:00
"github_com_usememos_memos_api_v1.StorageS3Config": {
"type": "object",
"properties": {
"accessKey": {
"type": "string"
},
"bucket": {
"type": "string"
},
"endPoint": {
"type": "string"
},
"path": {
"type": "string"
},
2024-01-29 22:05:33 +08:00
"presign": {
"type": "boolean"
},
"region": {
"type": "string"
},
"secretKey": {
"type": "string"
},
"urlPrefix": {
"type": "string"
},
"urlSuffix": {
"type": "string"
}
}
},
2023-12-19 22:37:07 +08:00
"github_com_usememos_memos_api_v1.StorageType": {
"type": "string",
"enum": [
"S3"
],
"x-enum-varnames": [
"StorageS3"
]
},
2023-12-19 22:37:07 +08:00
"github_com_usememos_memos_api_v1.SystemSetting": {
"type": "object",
"properties": {
"description": {
"type": "string"
},
"name": {
2023-12-19 22:37:07 +08:00
"$ref": "#/definitions/github_com_usememos_memos_api_v1.SystemSettingName"
},
"value": {
"description": "Value is a JSON string with basic value.",
"type": "string"
}
}
},
2023-12-19 22:37:07 +08:00
"github_com_usememos_memos_api_v1.SystemSettingName": {
"type": "string",
"enum": [
"server-id",
"secret-session",
"disable-public-memos",
"max-upload-size-mib",
"customized-profile",
"storage-service-id",
"local-storage-path",
"telegram-bot-token",
"memo-display-with-updated-ts"
],
"x-enum-varnames": [
"SystemSettingServerIDName",
"SystemSettingSecretSessionName",
"SystemSettingDisablePublicMemosName",
"SystemSettingMaxUploadSizeMiBName",
"SystemSettingCustomizedProfileName",
"SystemSettingStorageServiceIDName",
"SystemSettingLocalStoragePathName",
"SystemSettingTelegramBotTokenName",
"SystemSettingMemoDisplayWithUpdatedTsName"
]
},
2023-12-19 22:37:07 +08:00
"github_com_usememos_memos_api_v1.SystemStatus": {
"type": "object",
"properties": {
"additionalScript": {
"description": "Additional script.",
"type": "string"
},
"additionalStyle": {
"description": "Additional style.",
"type": "string"
},
"allowSignUp": {
"description": "System settings\nAllow sign up.",
"type": "boolean"
},
"customizedProfile": {
"description": "Customized server profile, including server name and external url.",
"allOf": [
{
2023-12-19 22:37:07 +08:00
"$ref": "#/definitions/github_com_usememos_memos_api_v1.CustomizedProfile"
}
]
},
"dbSize": {
"type": "integer"
},
"disablePasswordLogin": {
"description": "Disable password login.",
"type": "boolean"
},
"disablePublicMemos": {
"description": "Disable public memos.",
"type": "boolean"
},
"host": {
2023-12-19 22:37:07 +08:00
"$ref": "#/definitions/github_com_usememos_memos_api_v1.User"
},
"localStoragePath": {
"description": "Local storage path.",
"type": "string"
},
"maxUploadSizeMiB": {
"description": "Max upload size.",
"type": "integer"
},
"memoDisplayWithUpdatedTs": {
"description": "Memo display with updated timestamp.",
"type": "boolean"
},
"profile": {
"$ref": "#/definitions/profile.Profile"
},
"storageServiceId": {
"description": "Storage service ID.",
"type": "integer"
}
}
},
2023-12-19 22:37:07 +08:00
"github_com_usememos_memos_api_v1.UpdateIdentityProviderRequest": {
"type": "object",
"properties": {
"config": {
2023-12-19 22:37:07 +08:00
"$ref": "#/definitions/github_com_usememos_memos_api_v1.IdentityProviderConfig"
},
"identifierFilter": {
"type": "string"
},
"name": {
"type": "string"
},
"type": {
2023-12-19 22:37:07 +08:00
"$ref": "#/definitions/github_com_usememos_memos_api_v1.IdentityProviderType"
}
}
},
2023-12-19 22:37:07 +08:00
"github_com_usememos_memos_api_v1.UpdateResourceRequest": {
"type": "object",
"properties": {
"filename": {
"type": "string"
}
}
},
2023-12-19 22:37:07 +08:00
"github_com_usememos_memos_api_v1.UpdateStorageRequest": {
"type": "object",
"properties": {
"config": {
2023-12-19 22:37:07 +08:00
"$ref": "#/definitions/github_com_usememos_memos_api_v1.StorageConfig"
},
"name": {
"type": "string"
},
"type": {
2023-12-19 22:37:07 +08:00
"$ref": "#/definitions/github_com_usememos_memos_api_v1.StorageType"
}
}
},
2023-12-19 22:37:07 +08:00
"github_com_usememos_memos_api_v1.UpdateUserRequest": {
"type": "object",
"properties": {
"avatarUrl": {
"type": "string"
},
"email": {
"type": "string"
},
"nickname": {
"type": "string"
},
"password": {
"type": "string"
},
"rowStatus": {
2023-12-19 22:37:07 +08:00
"$ref": "#/definitions/github_com_usememos_memos_api_v1.RowStatus"
},
"username": {
"type": "string"
}
}
},
2023-12-19 22:37:07 +08:00
"github_com_usememos_memos_api_v1.UpsertMemoOrganizerRequest": {
"type": "object",
"properties": {
"pinned": {
"type": "boolean"
}
}
},
2023-12-19 22:37:07 +08:00
"github_com_usememos_memos_api_v1.UpsertMemoRelationRequest": {
"type": "object",
"properties": {
"relatedMemoId": {
"type": "integer"
},
"type": {
2023-12-19 22:37:07 +08:00
"$ref": "#/definitions/github_com_usememos_memos_api_v1.MemoRelationType"
}
}
},
2023-12-19 22:37:07 +08:00
"github_com_usememos_memos_api_v1.UpsertSystemSettingRequest": {
"type": "object",
"properties": {
"description": {
"type": "string"
},
"name": {
2023-12-19 22:37:07 +08:00
"$ref": "#/definitions/github_com_usememos_memos_api_v1.SystemSettingName"
},
"value": {
"type": "string"
}
}
},
2023-12-19 22:37:07 +08:00
"github_com_usememos_memos_api_v1.UpsertTagRequest": {
"type": "object",
"properties": {
"name": {
"type": "string"
}
}
},
2023-12-19 22:37:07 +08:00
"github_com_usememos_memos_api_v1.User": {
"type": "object",
"properties": {
2023-12-19 22:37:07 +08:00
"avatarUrl": {
"type": "string"
},
"createdTs": {
"type": "integer"
},
"email": {
"type": "string"
},
"id": {
"type": "integer"
},
"nickname": {
"type": "string"
},
"role": {
2023-12-19 22:37:07 +08:00
"$ref": "#/definitions/github_com_usememos_memos_api_v1.Role"
},
"rowStatus": {
"description": "Standard fields",
"allOf": [
{
2023-12-19 22:37:07 +08:00
"$ref": "#/definitions/github_com_usememos_memos_api_v1.RowStatus"
}
]
},
"updatedTs": {
"type": "integer"
},
2023-12-19 22:37:07 +08:00
"username": {
"description": "Domain specific fields",
"type": "string"
}
}
},
"github_com_usememos_memos_api_v1.Visibility": {
"type": "string",
"enum": [
"PUBLIC",
"PROTECTED",
"PRIVATE"
],
"x-enum-varnames": [
"Public",
"Protected",
"Private"
]
},
"profile.Profile": {
"type": "object",
"properties": {
"mode": {
"description": "Mode can be \"prod\" or \"dev\" or \"demo\"",
"type": "string"
},
"version": {
"description": "Version is the current version of server",
"type": "string"
}
}
},
"store.FieldMapping": {
"type": "object",
"properties": {
"displayName": {
"type": "string"
},
"email": {
"type": "string"
},
"identifier": {
"type": "string"
}
}
},
"store.IdentityProvider": {
"type": "object",
"properties": {
"config": {
"$ref": "#/definitions/store.IdentityProviderConfig"
},
"id": {
"type": "integer"
},
"identifierFilter": {
"type": "string"
},
"name": {
"type": "string"
},
"type": {
"$ref": "#/definitions/store.IdentityProviderType"
}
}
},
"store.IdentityProviderConfig": {
"type": "object",
"properties": {
"oauth2Config": {
"$ref": "#/definitions/store.IdentityProviderOAuth2Config"
}
}
},
"store.IdentityProviderOAuth2Config": {
"type": "object",
"properties": {
"authUrl": {
"type": "string"
},
"clientId": {
"type": "string"
},
"clientSecret": {
"type": "string"
},
"fieldMapping": {
"$ref": "#/definitions/store.FieldMapping"
},
"scopes": {
"type": "array",
"items": {
2023-12-19 22:37:07 +08:00
"type": "string"
}
},
2023-12-19 22:37:07 +08:00
"tokenUrl": {
"type": "string"
},
"userInfoUrl": {
"type": "string"
}
}
},
"store.IdentityProviderType": {
"type": "string",
"enum": [
"OAUTH2"
],
"x-enum-varnames": [
"IdentityProviderOAuth2Type"
]
},
"store.Memo": {
"type": "object",
"properties": {
"content": {
"description": "Domain specific fields",
"type": "string"
2023-12-19 22:37:07 +08:00
},
"createdTs": {
"type": "integer"
},
"creatorID": {
"type": "integer"
},
"id": {
"type": "integer"
},
2024-01-29 22:05:33 +08:00
"parentID": {
"type": "integer"
},
2023-12-19 22:37:07 +08:00
"pinned": {
"description": "Composed fields",
"type": "boolean"
},
2024-01-29 22:05:33 +08:00
"resourceName": {
"type": "string"
},
2023-12-19 22:37:07 +08:00
"rowStatus": {
"description": "Standard fields",
"allOf": [
{
"$ref": "#/definitions/store.RowStatus"
}
]
},
"updatedTs": {
"type": "integer"
},
"visibility": {
"$ref": "#/definitions/store.Visibility"
}
}
},
2023-12-19 22:37:07 +08:00
"store.MemoRelation": {
"type": "object",
"properties": {
2023-12-19 22:37:07 +08:00
"memoID": {
"type": "integer"
},
2023-12-19 22:37:07 +08:00
"relatedMemoID": {
"type": "integer"
},
2023-12-19 22:37:07 +08:00
"type": {
"$ref": "#/definitions/store.MemoRelationType"
}
}
},
"store.MemoRelationType": {
"type": "string",
"enum": [
"REFERENCE",
"COMMENT"
],
"x-enum-varnames": [
"MemoRelationReference",
"MemoRelationComment"
]
},
"store.Resource": {
"type": "object",
"properties": {
"blob": {
"type": "array",
"items": {
"type": "integer"
}
},
"createdTs": {
"type": "integer"
},
"creatorID": {
"description": "Standard fields",
"type": "integer"
},
"externalLink": {
"type": "string"
},
"filename": {
"description": "Domain specific fields",
"type": "string"
},
"id": {
"type": "integer"
},
"internalPath": {
"type": "string"
2023-12-19 22:37:07 +08:00
},
"memoID": {
"type": "integer"
},
2024-01-29 22:05:33 +08:00
"resourceName": {
"type": "string"
},
2023-12-19 22:37:07 +08:00
"size": {
"type": "integer"
},
"type": {
"type": "string"
},
"updatedTs": {
"type": "integer"
}
}
},
2023-12-19 22:37:07 +08:00
"store.Role": {
"type": "string",
"enum": [
"HOST",
"ADMIN",
"USER"
],
"x-enum-varnames": [
"RoleHost",
"RoleAdmin",
"RoleUser"
]
},
"store.RowStatus": {
"type": "string",
"enum": [
2023-12-19 22:37:07 +08:00
"NORMAL",
"ARCHIVED"
],
"x-enum-varnames": [
2023-12-19 22:37:07 +08:00
"Normal",
"Archived"
]
},
2023-12-19 22:37:07 +08:00
"store.Storage": {
"type": "object",
"properties": {
"config": {
"type": "string"
},
"id": {
"type": "integer"
},
"name": {
"type": "string"
},
"type": {
"type": "string"
}
}
},
"store.User": {
"type": "object",
"properties": {
"avatarURL": {
"type": "string"
},
"createdTs": {
"type": "integer"
},
"email": {
"type": "string"
},
"id": {
"type": "integer"
},
"nickname": {
"type": "string"
},
"passwordHash": {
"type": "string"
},
"role": {
"$ref": "#/definitions/store.Role"
},
"rowStatus": {
"description": "Standard fields",
"allOf": [
{
"$ref": "#/definitions/store.RowStatus"
}
]
},
"updatedTs": {
"type": "integer"
},
"username": {
"description": "Domain specific fields",
"type": "string"
}
}
},
"store.Visibility": {
"type": "string",
"enum": [
"PUBLIC",
"PROTECTED",
"PRIVATE"
],
"x-enum-varnames": [
"Public",
"Protected",
"Private"
]
}
},
"externalDocs": {
2023-09-14 22:57:27 +08:00
"description": "Find out more about Memos.",
"url": "https://usememos.com/"
}
}`
// SwaggerInfo holds exported Swagger Info so clients can modify it
var SwaggerInfo = &swag.Spec{
Version: "1.0",
Host: "",
BasePath: "/",
Schemes: []string{},
Title: "memos API",
Description: "A privacy-first, lightweight note-taking service.",
InfoInstanceName: "swagger",
SwaggerTemplate: docTemplate,
LeftDelim: "{{",
RightDelim: "}}",
}
func init() {
swag.Register(SwaggerInfo.InstanceName(), SwaggerInfo)
}