2023-08-09 16:53:06 +03:00
// Code generated by swaggo/swag. DO NOT EDIT.
2023-08-09 17:30:27 +03:00
package v1
2023-08-09 16:53:06 +03:00
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" : {
"$ref" : "#/definitions/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" : {
"$ref" : "#/definitions/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" : {
"$ref" : "#/definitions/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/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/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/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/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/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" : {
"$ref" : "#/definitions/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" : {
"$ref" : "#/definitions/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" ,
"ADDITIONAL"
] ,
"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 04:01:38 +03: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"
}
}
}
}
} ,
2023-08-09 16:53:06 +03:00
"/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/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/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 04:01:38 +03:00
"/api/v1/status" : {
"get" : {
"produces" : [
"application/json"
] ,
"tags" : [
"system"
] ,
"summary" : "Get system GetSystemStatus" ,
"responses" : {
"200" : {
"description" : "System GetSystemStatus" ,
"schema" : {
"$ref" : "#/definitions/v1.SystemStatus"
}
} ,
"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"
}
}
}
} ,
2023-08-09 16:53:06 +03:00
"/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/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/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/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/v1.UpsertSystemSettingRequest"
}
}
] ,
"responses" : {
"200" : {
"description" : "Created system setting" ,
"schema" : {
"$ref" : "#/definitions/store.SystemSetting"
}
} ,
"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 04:01:38 +03: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"
}
}
}
} ,
2023-08-09 16:53:06 +03:00
"/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" : {
"$ref" : "#/definitions/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" : {
"$ref" : "#/definitions/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" : {
"$ref" : "#/definitions/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/setting" : {
"post" : {
"consumes" : [
"application/json"
] ,
"produces" : [
"application/json"
] ,
"tags" : [
"user-setting"
] ,
2023-08-09 17:30:27 +03:00
"summary" : "Upsert user setting" ,
2023-08-09 16:53:06 +03:00
"parameters" : [
{
"description" : "Request object." ,
"name" : "body" ,
"in" : "body" ,
"required" : true ,
"schema" : {
"$ref" : "#/definitions/v1.UpsertUserSettingRequest"
}
}
] ,
"responses" : {
"200" : {
"description" : "Created user setting" ,
"schema" : {
2023-09-14 17:57:27 +03:00
"$ref" : "#/definitions/github_com_usememos_memos_store.UserSetting"
2023-08-09 16:53:06 +03:00
}
} ,
"400" : {
"description" : "Malformatted post user setting upsert request | Invalid user setting format"
} ,
"401" : {
"description" : "Missing auth session"
} ,
"500" : {
"description" : "Failed to upsert user setting"
}
}
}
} ,
"/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" : {
"$ref" : "#/definitions/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"
}
}
}
} ,
"/explore/rss.xml" : {
"get" : {
"produces" : [
"text/xml"
] ,
"tags" : [
"rss"
] ,
"summary" : "Get RSS" ,
"responses" : {
"200" : {
"description" : "RSS"
} ,
"500" : {
"description" : "Failed to get system customized profile | Failed to find memo list | Failed to generate rss"
}
}
}
} ,
2023-08-09 17:30:27 +03:00
"/o/get/GetImage" : {
2023-08-09 16:53:06 +03:00
"get" : {
"produces" : [
2023-08-09 17:30:27 +03:00
"GetImage/*"
2023-08-09 16:53:06 +03:00
] ,
"tags" : [
"get"
] ,
2023-08-09 17:30:27 +03:00
"summary" : "Get GetImage from URL" ,
2023-08-09 16:53:06 +03:00
"parameters" : [
{
"type" : "string" ,
2023-08-09 17:30:27 +03:00
"description" : "Image url" ,
2023-08-09 16:53:06 +03:00
"name" : "url" ,
"in" : "query" ,
"required" : true
}
] ,
"responses" : {
"200" : {
2023-08-09 17:30:27 +03:00
"description" : "Image"
2023-08-09 16:53:06 +03:00
} ,
"400" : {
2023-08-09 17:30:27 +03:00
"description" : "Missing GetImage url | Wrong url | Failed to get GetImage url: %s"
2023-08-09 16:53:06 +03:00
} ,
2023-08-09 17:30:27 +03:00
"500" : {
"description" : "Failed to write GetImage blob"
2023-08-09 16:53:06 +03:00
}
}
}
} ,
"/o/r/{resourceId}" : {
"get" : {
"description" : "*Swagger UI may have problems displaying other file types than images" ,
"produces" : [
"application/octet-stream"
] ,
"tags" : [
"resource"
] ,
"summary" : "Stream a resource" ,
"parameters" : [
{
"type" : "integer" ,
"description" : "Resource ID" ,
"name" : "resourceId" ,
"in" : "path" ,
"required" : true
} ,
{
"type" : "integer" ,
"description" : "Thumbnail" ,
"name" : "thumbnail" ,
"in" : "query"
}
] ,
"responses" : {
"200" : {
"description" : "Requested resource"
} ,
"400" : {
"description" : "ID is not a number: %s | Failed to get resource visibility"
} ,
"401" : {
"description" : "Resource visibility not match"
} ,
"404" : {
"description" : "Resource not found: %d"
} ,
"500" : {
"description" : "Failed to find resource by ID: %v | Failed to open the local resource: %s | Failed to read the local resource: %s"
}
}
}
} ,
"/u/{id}/rss.xml" : {
"get" : {
"produces" : [
"text/xml"
] ,
"tags" : [
"rss"
] ,
"summary" : "Get RSS for a user" ,
"parameters" : [
{
"type" : "integer" ,
"description" : "User ID" ,
"name" : "id" ,
"in" : "path" ,
"required" : true
}
] ,
"responses" : {
"200" : {
"description" : "RSS"
} ,
"400" : {
"description" : "User id is not a number"
} ,
"500" : {
"description" : "Failed to get system customized profile | Failed to find memo list | Failed to generate rss"
}
}
}
}
} ,
"definitions" : {
2023-09-14 17:57:27 +03:00
"github_com_usememos_memos_store.UserSetting" : {
"type" : "object" ,
"properties" : {
"key" : {
"type" : "string"
} ,
"userID" : {
"type" : "integer"
} ,
"value" : {
"type" : "string"
}
}
} ,
2023-08-09 16:53:06 +03:00
"profile.Profile" : {
"type" : "object" ,
"properties" : {
2023-10-06 18:03:36 +03:00
"driver" : {
"description" : "Driver is the database driver\nsqlite, mysql" ,
"type" : "string"
} ,
"dsn" : {
"description" : "DSN points to where Memos stores its own data" ,
"type" : "string"
} ,
2023-08-09 16:53:06 +03:00
"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" : {
"type" : "string"
}
} ,
"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"
} ,
"createdTs" : {
"type" : "integer"
} ,
"creatorID" : {
"type" : "integer"
} ,
"id" : {
"type" : "integer"
} ,
2023-10-06 18:03:36 +03:00
"parentID" : {
"description" : "Composed fields\nFor those comment memos, the parent ID is the memo ID of the memo being commented.\nIf the parent ID is nil, then this memo is not a comment." ,
"type" : "integer"
} ,
2023-08-09 16:53:06 +03:00
"pinned" : {
"type" : "boolean"
} ,
"relationList" : {
"type" : "array" ,
"items" : {
"$ref" : "#/definitions/store.MemoRelation"
}
} ,
"resourceIDList" : {
"type" : "array" ,
"items" : {
"type" : "integer"
}
} ,
"rowStatus" : {
"description" : "Standard fields" ,
"allOf" : [
{
"$ref" : "#/definitions/store.RowStatus"
}
]
} ,
"updatedTs" : {
"type" : "integer"
} ,
"visibility" : {
"$ref" : "#/definitions/store.Visibility"
}
}
} ,
"store.MemoRelation" : {
"type" : "object" ,
"properties" : {
"memoID" : {
"type" : "integer"
} ,
"relatedMemoID" : {
"type" : "integer"
} ,
"type" : {
"$ref" : "#/definitions/store.MemoRelationType"
}
}
} ,
"store.MemoRelationType" : {
"type" : "string" ,
"enum" : [
"REFERENCE" ,
2023-10-06 18:03:36 +03:00
"COMMENT"
2023-08-09 16:53:06 +03:00
] ,
"x-enum-varnames" : [
"MemoRelationReference" ,
2023-10-06 18:03:36 +03:00
"MemoRelationComment"
2023-08-09 16:53:06 +03:00
]
} ,
"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-09-26 19:52:42 +03:00
"memoID" : {
2023-08-09 16:53:06 +03:00
"type" : "integer"
} ,
"size" : {
"type" : "integer"
} ,
"type" : {
"type" : "string"
} ,
"updatedTs" : {
"type" : "integer"
}
}
} ,
"store.Role" : {
"type" : "string" ,
"enum" : [
"HOST" ,
"ADMIN" ,
"USER"
] ,
"x-enum-varnames" : [
"RoleHost" ,
"RoleAdmin" ,
"RoleUser"
]
} ,
"store.RowStatus" : {
"type" : "string" ,
"enum" : [
"NORMAL" ,
"ARCHIVED"
] ,
"x-enum-varnames" : [
"Normal" ,
"Archived"
]
} ,
"store.Storage" : {
"type" : "object" ,
"properties" : {
"config" : {
"type" : "string"
} ,
"id" : {
"type" : "integer"
} ,
"name" : {
"type" : "string"
} ,
"type" : {
"type" : "string"
}
}
} ,
"store.SystemSetting" : {
"type" : "object" ,
"properties" : {
"description" : {
"type" : "string"
} ,
"name" : {
"type" : "string"
} ,
"value" : {
"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"
]
} ,
"v1.CreateIdentityProviderRequest" : {
"type" : "object" ,
"properties" : {
"config" : {
"$ref" : "#/definitions/v1.IdentityProviderConfig"
} ,
"identifierFilter" : {
"type" : "string"
} ,
"name" : {
"type" : "string"
} ,
"type" : {
"$ref" : "#/definitions/v1.IdentityProviderType"
}
}
} ,
"v1.CreateMemoRequest" : {
"type" : "object" ,
"properties" : {
"content" : {
"type" : "string"
} ,
"createdTs" : {
"type" : "integer"
} ,
"relationList" : {
"type" : "array" ,
"items" : {
"$ref" : "#/definitions/v1.UpsertMemoRelationRequest"
}
} ,
"resourceIdList" : {
"description" : "Related fields" ,
"type" : "array" ,
"items" : {
"type" : "integer"
}
} ,
"visibility" : {
"description" : "Domain specific fields" ,
"allOf" : [
{
"$ref" : "#/definitions/v1.Visibility"
}
]
}
}
} ,
"v1.CreateResourceRequest" : {
"type" : "object" ,
"properties" : {
"externalLink" : {
"type" : "string"
} ,
"filename" : {
"type" : "string"
} ,
"type" : {
"type" : "string"
}
}
} ,
"v1.CreateStorageRequest" : {
"type" : "object" ,
"properties" : {
"config" : {
"$ref" : "#/definitions/v1.StorageConfig"
} ,
"name" : {
"type" : "string"
} ,
"type" : {
"$ref" : "#/definitions/v1.StorageType"
}
}
} ,
"v1.CreateUserRequest" : {
"type" : "object" ,
"properties" : {
"email" : {
"type" : "string"
} ,
"nickname" : {
"type" : "string"
} ,
"password" : {
"type" : "string"
} ,
"role" : {
"$ref" : "#/definitions/v1.Role"
} ,
"username" : {
"type" : "string"
}
}
} ,
"v1.CustomizedProfile" : {
"type" : "object" ,
"properties" : {
"appearance" : {
"description" : "Appearance is the server default appearance." ,
"type" : "string"
} ,
"description" : {
"description" : "Description is the server description." ,
"type" : "string"
} ,
"externalUrl" : {
"description" : "ExternalURL is the external url of server. e.g. https://usermemos.com" ,
"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"
}
}
} ,
"v1.DeleteTagRequest" : {
"type" : "object" ,
"properties" : {
"name" : {
"type" : "string"
}
}
} ,
"v1.FieldMapping" : {
"type" : "object" ,
"properties" : {
"displayName" : {
"type" : "string"
} ,
"email" : {
"type" : "string"
} ,
"identifier" : {
"type" : "string"
}
}
} ,
"v1.IdentityProvider" : {
"type" : "object" ,
"properties" : {
"config" : {
"$ref" : "#/definitions/v1.IdentityProviderConfig"
} ,
"id" : {
"type" : "integer"
} ,
"identifierFilter" : {
"type" : "string"
} ,
"name" : {
"type" : "string"
} ,
"type" : {
"$ref" : "#/definitions/v1.IdentityProviderType"
}
}
} ,
"v1.IdentityProviderConfig" : {
"type" : "object" ,
"properties" : {
"oauth2Config" : {
"$ref" : "#/definitions/v1.IdentityProviderOAuth2Config"
}
}
} ,
"v1.IdentityProviderOAuth2Config" : {
"type" : "object" ,
"properties" : {
"authUrl" : {
"type" : "string"
} ,
"clientId" : {
"type" : "string"
} ,
"clientSecret" : {
"type" : "string"
} ,
"fieldMapping" : {
"$ref" : "#/definitions/v1.FieldMapping"
} ,
"scopes" : {
"type" : "array" ,
"items" : {
"type" : "string"
}
} ,
"tokenUrl" : {
"type" : "string"
} ,
"userInfoUrl" : {
"type" : "string"
}
}
} ,
"v1.IdentityProviderType" : {
"type" : "string" ,
"enum" : [
"OAUTH2"
] ,
"x-enum-varnames" : [
"IdentityProviderOAuth2Type"
]
} ,
"v1.MemoRelationType" : {
"type" : "string" ,
"enum" : [
"REFERENCE" ,
"ADDITIONAL"
] ,
"x-enum-varnames" : [
"MemoRelationReference" ,
"MemoRelationAdditional"
]
} ,
"v1.PatchMemoRequest" : {
"type" : "object" ,
"properties" : {
"content" : {
"description" : "Domain specific fields" ,
"type" : "string"
} ,
"createdTs" : {
"description" : "Standard fields" ,
"type" : "integer"
} ,
"relationList" : {
"type" : "array" ,
"items" : {
"$ref" : "#/definitions/v1.UpsertMemoRelationRequest"
}
} ,
"resourceIdList" : {
"description" : "Related fields" ,
"type" : "array" ,
"items" : {
"type" : "integer"
}
} ,
"rowStatus" : {
"$ref" : "#/definitions/v1.RowStatus"
} ,
"updatedTs" : {
"type" : "integer"
} ,
"visibility" : {
"$ref" : "#/definitions/v1.Visibility"
}
}
} ,
"v1.Role" : {
"type" : "string" ,
"enum" : [
"HOST" ,
"ADMIN" ,
"USER"
] ,
"x-enum-varnames" : [
"RoleHost" ,
"RoleAdmin" ,
"RoleUser"
]
} ,
"v1.RowStatus" : {
"type" : "string" ,
"enum" : [
"NORMAL" ,
"ARCHIVED"
] ,
"x-enum-varnames" : [
"Normal" ,
"Archived"
]
} ,
"v1.SSOSignIn" : {
"type" : "object" ,
"properties" : {
"code" : {
"type" : "string"
} ,
"identityProviderId" : {
"type" : "integer"
} ,
"redirectUri" : {
"type" : "string"
}
}
} ,
"v1.SignIn" : {
"type" : "object" ,
"properties" : {
"password" : {
"type" : "string"
} ,
"username" : {
"type" : "string"
}
}
} ,
"v1.SignUp" : {
"type" : "object" ,
"properties" : {
"password" : {
"type" : "string"
} ,
"username" : {
"type" : "string"
}
}
} ,
"v1.StorageConfig" : {
"type" : "object" ,
"properties" : {
"s3Config" : {
"$ref" : "#/definitions/v1.StorageS3Config"
}
}
} ,
"v1.StorageS3Config" : {
"type" : "object" ,
"properties" : {
"accessKey" : {
"type" : "string"
} ,
"bucket" : {
"type" : "string"
} ,
"endPoint" : {
"type" : "string"
} ,
"path" : {
"type" : "string"
} ,
"region" : {
"type" : "string"
} ,
"secretKey" : {
"type" : "string"
} ,
"urlPrefix" : {
"type" : "string"
} ,
"urlSuffix" : {
"type" : "string"
}
}
} ,
"v1.StorageType" : {
"type" : "string" ,
"enum" : [
"S3"
] ,
"x-enum-varnames" : [
"StorageS3"
]
} ,
"v1.SystemSetting" : {
"type" : "object" ,
"properties" : {
"description" : {
"type" : "string"
} ,
"name" : {
"$ref" : "#/definitions/v1.SystemSettingName"
} ,
"value" : {
"description" : "Value is a JSON string with basic value." ,
"type" : "string"
}
}
} ,
"v1.SystemSettingName" : {
"type" : "string" ,
"enum" : [
"server-id" ,
"secret-session" ,
"allow-signup" ,
"disable-password-login" ,
"disable-public-memos" ,
"max-upload-size-mib" ,
"additional-style" ,
"additional-script" ,
"customized-profile" ,
"storage-service-id" ,
"local-storage-path" ,
"telegram-bot-token" ,
"memo-display-with-updated-ts" ,
"auto-backup-interval"
] ,
"x-enum-varnames" : [
"SystemSettingServerIDName" ,
"SystemSettingSecretSessionName" ,
"SystemSettingAllowSignUpName" ,
"SystemSettingDisablePasswordLoginName" ,
"SystemSettingDisablePublicMemosName" ,
"SystemSettingMaxUploadSizeMiBName" ,
"SystemSettingAdditionalStyleName" ,
"SystemSettingAdditionalScriptName" ,
"SystemSettingCustomizedProfileName" ,
"SystemSettingStorageServiceIDName" ,
"SystemSettingLocalStoragePathName" ,
"SystemSettingTelegramBotTokenName" ,
"SystemSettingMemoDisplayWithUpdatedTsName" ,
"SystemSettingAutoBackupIntervalName"
]
} ,
"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"
} ,
"autoBackupInterval" : {
"description" : "Auto Backup Interval." ,
"type" : "integer"
} ,
"customizedProfile" : {
"description" : "Customized server profile, including server name and external url." ,
"allOf" : [
{
"$ref" : "#/definitions/v1.CustomizedProfile"
}
]
} ,
"dbSize" : {
"type" : "integer"
} ,
"disablePasswordLogin" : {
"description" : "Disable password login." ,
"type" : "boolean"
} ,
"disablePublicMemos" : {
"description" : "Disable public memos." ,
"type" : "boolean"
} ,
"host" : {
"$ref" : "#/definitions/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"
}
}
} ,
"v1.UpdateIdentityProviderRequest" : {
"type" : "object" ,
"properties" : {
"config" : {
"$ref" : "#/definitions/v1.IdentityProviderConfig"
} ,
"identifierFilter" : {
"type" : "string"
} ,
"name" : {
"type" : "string"
} ,
"type" : {
"$ref" : "#/definitions/v1.IdentityProviderType"
}
}
} ,
"v1.UpdateResourceRequest" : {
"type" : "object" ,
"properties" : {
"filename" : {
"type" : "string"
}
}
} ,
"v1.UpdateStorageRequest" : {
"type" : "object" ,
"properties" : {
"config" : {
"$ref" : "#/definitions/v1.StorageConfig"
} ,
"name" : {
"type" : "string"
} ,
"type" : {
"$ref" : "#/definitions/v1.StorageType"
}
}
} ,
"v1.UpdateUserRequest" : {
"type" : "object" ,
"properties" : {
"avatarUrl" : {
"type" : "string"
} ,
"email" : {
"type" : "string"
} ,
"nickname" : {
"type" : "string"
} ,
"password" : {
"type" : "string"
} ,
"rowStatus" : {
"$ref" : "#/definitions/v1.RowStatus"
} ,
"username" : {
"type" : "string"
}
}
} ,
"v1.UpsertMemoOrganizerRequest" : {
"type" : "object" ,
"properties" : {
"pinned" : {
"type" : "boolean"
}
}
} ,
"v1.UpsertMemoRelationRequest" : {
"type" : "object" ,
"properties" : {
"relatedMemoId" : {
"type" : "integer"
} ,
"type" : {
"$ref" : "#/definitions/v1.MemoRelationType"
}
}
} ,
"v1.UpsertSystemSettingRequest" : {
"type" : "object" ,
"properties" : {
"description" : {
"type" : "string"
} ,
"name" : {
"$ref" : "#/definitions/v1.SystemSettingName"
} ,
"value" : {
"type" : "string"
}
}
} ,
"v1.UpsertTagRequest" : {
"type" : "object" ,
"properties" : {
"name" : {
"type" : "string"
}
}
} ,
"v1.UpsertUserSettingRequest" : {
"type" : "object" ,
"properties" : {
"key" : {
"$ref" : "#/definitions/v1.UserSettingKey"
} ,
"value" : {
"type" : "string"
}
}
} ,
"v1.User" : {
"type" : "object" ,
"properties" : {
"avatarUrl" : {
"type" : "string"
} ,
"createdTs" : {
"type" : "integer"
} ,
"email" : {
"type" : "string"
} ,
"id" : {
"type" : "integer"
} ,
"nickname" : {
"type" : "string"
} ,
"role" : {
"$ref" : "#/definitions/v1.Role"
} ,
"rowStatus" : {
"description" : "Standard fields" ,
"allOf" : [
{
"$ref" : "#/definitions/v1.RowStatus"
}
]
} ,
"updatedTs" : {
"type" : "integer"
} ,
"userSettingList" : {
"type" : "array" ,
"items" : {
"$ref" : "#/definitions/v1.UserSetting"
}
} ,
"username" : {
"description" : "Domain specific fields" ,
"type" : "string"
}
}
} ,
"v1.UserSetting" : {
"type" : "object" ,
"properties" : {
"key" : {
"$ref" : "#/definitions/v1.UserSettingKey"
} ,
"userId" : {
"type" : "integer"
} ,
"value" : {
"type" : "string"
}
}
} ,
"v1.UserSettingKey" : {
"type" : "string" ,
"enum" : [
"locale" ,
"appearance" ,
"memo-visibility" ,
"telegram-user-id"
] ,
"x-enum-varnames" : [
"UserSettingLocaleKey" ,
"UserSettingAppearanceKey" ,
"UserSettingMemoVisibilityKey" ,
"UserSettingTelegramUserIDKey"
]
} ,
"v1.Visibility" : {
"type" : "string" ,
"enum" : [
"PUBLIC" ,
"PROTECTED" ,
"PRIVATE"
] ,
"x-enum-varnames" : [
"Public" ,
"Protected" ,
"Private"
]
}
} ,
"externalDocs" : {
2023-09-14 17:57:27 +03:00
"description" : "Find out more about Memos." ,
2023-08-09 16:53:06 +03:00
"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 )
}