swagger.yaml 61 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341
  1. basePath: /
  2. definitions:
  3. api_v1.CreateIdentityProviderRequest:
  4. properties:
  5. config:
  6. $ref: '#/definitions/api_v1.IdentityProviderConfig'
  7. identifierFilter:
  8. type: string
  9. name:
  10. type: string
  11. type:
  12. $ref: '#/definitions/api_v1.IdentityProviderType'
  13. type: object
  14. api_v1.CreateMemoRequest:
  15. properties:
  16. content:
  17. type: string
  18. createdTs:
  19. type: integer
  20. relationList:
  21. items:
  22. $ref: '#/definitions/api_v1.UpsertMemoRelationRequest'
  23. type: array
  24. resourceIdList:
  25. description: Related fields
  26. items:
  27. type: integer
  28. type: array
  29. visibility:
  30. allOf:
  31. - $ref: '#/definitions/api_v1.Visibility'
  32. description: Domain specific fields
  33. type: object
  34. api_v1.CreateResourceRequest:
  35. properties:
  36. externalLink:
  37. type: string
  38. filename:
  39. type: string
  40. type:
  41. type: string
  42. type: object
  43. api_v1.CreateStorageRequest:
  44. properties:
  45. config:
  46. $ref: '#/definitions/api_v1.StorageConfig'
  47. name:
  48. type: string
  49. type:
  50. $ref: '#/definitions/api_v1.StorageType'
  51. type: object
  52. api_v1.CreateUserRequest:
  53. properties:
  54. email:
  55. type: string
  56. nickname:
  57. type: string
  58. password:
  59. type: string
  60. role:
  61. $ref: '#/definitions/api_v1.Role'
  62. username:
  63. type: string
  64. type: object
  65. api_v1.CustomizedProfile:
  66. properties:
  67. appearance:
  68. description: Appearance is the server default appearance.
  69. type: string
  70. description:
  71. description: Description is the server description.
  72. type: string
  73. externalUrl:
  74. description: ExternalURL is the external url of server. e.g. https://usermemos.com
  75. type: string
  76. locale:
  77. description: Locale is the server default locale.
  78. type: string
  79. logoUrl:
  80. description: LogoURL is the url of logo image.
  81. type: string
  82. name:
  83. description: Name is the server name, default is `memos`
  84. type: string
  85. type: object
  86. api_v1.DeleteTagRequest:
  87. properties:
  88. name:
  89. type: string
  90. type: object
  91. api_v1.FieldMapping:
  92. properties:
  93. displayName:
  94. type: string
  95. email:
  96. type: string
  97. identifier:
  98. type: string
  99. type: object
  100. api_v1.IdentityProvider:
  101. properties:
  102. config:
  103. $ref: '#/definitions/api_v1.IdentityProviderConfig'
  104. id:
  105. type: integer
  106. identifierFilter:
  107. type: string
  108. name:
  109. type: string
  110. type:
  111. $ref: '#/definitions/api_v1.IdentityProviderType'
  112. type: object
  113. api_v1.IdentityProviderConfig:
  114. properties:
  115. oauth2Config:
  116. $ref: '#/definitions/api_v1.IdentityProviderOAuth2Config'
  117. type: object
  118. api_v1.IdentityProviderOAuth2Config:
  119. properties:
  120. authUrl:
  121. type: string
  122. clientId:
  123. type: string
  124. clientSecret:
  125. type: string
  126. fieldMapping:
  127. $ref: '#/definitions/api_v1.FieldMapping'
  128. scopes:
  129. items:
  130. type: string
  131. type: array
  132. tokenUrl:
  133. type: string
  134. userInfoUrl:
  135. type: string
  136. type: object
  137. api_v1.IdentityProviderType:
  138. enum:
  139. - OAUTH2
  140. type: string
  141. x-enum-varnames:
  142. - IdentityProviderOAuth2Type
  143. api_v1.MemoRelationType:
  144. enum:
  145. - REFERENCE
  146. - COMMENT
  147. type: string
  148. x-enum-varnames:
  149. - MemoRelationReference
  150. - MemoRelationComment
  151. api_v1.PatchMemoRequest:
  152. properties:
  153. content:
  154. description: Domain specific fields
  155. type: string
  156. createdTs:
  157. description: Standard fields
  158. type: integer
  159. relationList:
  160. items:
  161. $ref: '#/definitions/api_v1.UpsertMemoRelationRequest'
  162. type: array
  163. resourceIdList:
  164. description: Related fields
  165. items:
  166. type: integer
  167. type: array
  168. rowStatus:
  169. $ref: '#/definitions/api_v1.RowStatus'
  170. updatedTs:
  171. type: integer
  172. visibility:
  173. $ref: '#/definitions/api_v1.Visibility'
  174. type: object
  175. api_v1.Role:
  176. enum:
  177. - HOST
  178. - ADMIN
  179. - USER
  180. type: string
  181. x-enum-varnames:
  182. - RoleHost
  183. - RoleAdmin
  184. - RoleUser
  185. api_v1.RowStatus:
  186. enum:
  187. - NORMAL
  188. - ARCHIVED
  189. type: string
  190. x-enum-varnames:
  191. - Normal
  192. - Archived
  193. api_v1.SSOSignIn:
  194. properties:
  195. code:
  196. type: string
  197. identityProviderId:
  198. type: integer
  199. redirectUri:
  200. type: string
  201. type: object
  202. api_v1.SignIn:
  203. properties:
  204. password:
  205. type: string
  206. remember:
  207. type: boolean
  208. username:
  209. type: string
  210. type: object
  211. api_v1.SignUp:
  212. properties:
  213. password:
  214. type: string
  215. username:
  216. type: string
  217. type: object
  218. api_v1.StorageConfig:
  219. properties:
  220. s3Config:
  221. $ref: '#/definitions/api_v1.StorageS3Config'
  222. type: object
  223. api_v1.StorageS3Config:
  224. properties:
  225. accessKey:
  226. type: string
  227. bucket:
  228. type: string
  229. endPoint:
  230. type: string
  231. path:
  232. type: string
  233. region:
  234. type: string
  235. secretKey:
  236. type: string
  237. urlPrefix:
  238. type: string
  239. urlSuffix:
  240. type: string
  241. type: object
  242. api_v1.StorageType:
  243. enum:
  244. - S3
  245. type: string
  246. x-enum-varnames:
  247. - StorageS3
  248. api_v1.SystemSetting:
  249. properties:
  250. description:
  251. type: string
  252. name:
  253. $ref: '#/definitions/api_v1.SystemSettingName'
  254. value:
  255. description: Value is a JSON string with basic value.
  256. type: string
  257. type: object
  258. api_v1.SystemSettingName:
  259. enum:
  260. - server-id
  261. - secret-session
  262. - allow-signup
  263. - disable-password-login
  264. - disable-public-memos
  265. - max-upload-size-mib
  266. - additional-style
  267. - additional-script
  268. - customized-profile
  269. - storage-service-id
  270. - local-storage-path
  271. - telegram-bot-token
  272. - memo-display-with-updated-ts
  273. - instance-url
  274. type: string
  275. x-enum-varnames:
  276. - SystemSettingServerIDName
  277. - SystemSettingSecretSessionName
  278. - SystemSettingAllowSignUpName
  279. - SystemSettingDisablePasswordLoginName
  280. - SystemSettingDisablePublicMemosName
  281. - SystemSettingMaxUploadSizeMiBName
  282. - SystemSettingAdditionalStyleName
  283. - SystemSettingAdditionalScriptName
  284. - SystemSettingCustomizedProfileName
  285. - SystemSettingStorageServiceIDName
  286. - SystemSettingLocalStoragePathName
  287. - SystemSettingTelegramBotTokenName
  288. - SystemSettingMemoDisplayWithUpdatedTsName
  289. - SystemSettingInstanceURLName
  290. api_v1.SystemStatus:
  291. properties:
  292. additionalScript:
  293. description: Additional script.
  294. type: string
  295. additionalStyle:
  296. description: Additional style.
  297. type: string
  298. allowSignUp:
  299. description: |-
  300. System settings
  301. Allow sign up.
  302. type: boolean
  303. customizedProfile:
  304. allOf:
  305. - $ref: '#/definitions/api_v1.CustomizedProfile'
  306. description: Customized server profile, including server name and external
  307. url.
  308. dbSize:
  309. type: integer
  310. disablePasswordLogin:
  311. description: Disable password login.
  312. type: boolean
  313. disablePublicMemos:
  314. description: Disable public memos.
  315. type: boolean
  316. host:
  317. $ref: '#/definitions/api_v1.User'
  318. localStoragePath:
  319. description: Local storage path.
  320. type: string
  321. maxUploadSizeMiB:
  322. description: Max upload size.
  323. type: integer
  324. memoDisplayWithUpdatedTs:
  325. description: Memo display with updated timestamp.
  326. type: boolean
  327. profile:
  328. $ref: '#/definitions/profile.Profile'
  329. storageServiceId:
  330. description: Storage service ID.
  331. type: integer
  332. type: object
  333. api_v1.UpdateIdentityProviderRequest:
  334. properties:
  335. config:
  336. $ref: '#/definitions/api_v1.IdentityProviderConfig'
  337. identifierFilter:
  338. type: string
  339. name:
  340. type: string
  341. type:
  342. $ref: '#/definitions/api_v1.IdentityProviderType'
  343. type: object
  344. api_v1.UpdateResourceRequest:
  345. properties:
  346. filename:
  347. type: string
  348. type: object
  349. api_v1.UpdateStorageRequest:
  350. properties:
  351. config:
  352. $ref: '#/definitions/api_v1.StorageConfig'
  353. name:
  354. type: string
  355. type:
  356. $ref: '#/definitions/api_v1.StorageType'
  357. type: object
  358. api_v1.UpdateUserRequest:
  359. properties:
  360. avatarUrl:
  361. type: string
  362. email:
  363. type: string
  364. nickname:
  365. type: string
  366. password:
  367. type: string
  368. rowStatus:
  369. $ref: '#/definitions/api_v1.RowStatus'
  370. username:
  371. type: string
  372. type: object
  373. api_v1.UpsertMemoOrganizerRequest:
  374. properties:
  375. pinned:
  376. type: boolean
  377. type: object
  378. api_v1.UpsertMemoRelationRequest:
  379. properties:
  380. relatedMemoId:
  381. type: integer
  382. type:
  383. $ref: '#/definitions/api_v1.MemoRelationType'
  384. type: object
  385. api_v1.UpsertSystemSettingRequest:
  386. properties:
  387. description:
  388. type: string
  389. name:
  390. $ref: '#/definitions/api_v1.SystemSettingName'
  391. value:
  392. type: string
  393. type: object
  394. api_v1.UpsertTagRequest:
  395. properties:
  396. name:
  397. type: string
  398. type: object
  399. api_v1.User:
  400. properties:
  401. avatarUrl:
  402. type: string
  403. createdTs:
  404. type: integer
  405. email:
  406. type: string
  407. id:
  408. type: integer
  409. nickname:
  410. type: string
  411. role:
  412. $ref: '#/definitions/api_v1.Role'
  413. rowStatus:
  414. allOf:
  415. - $ref: '#/definitions/api_v1.RowStatus'
  416. description: Standard fields
  417. updatedTs:
  418. type: integer
  419. username:
  420. description: Domain specific fields
  421. type: string
  422. type: object
  423. api_v1.Visibility:
  424. enum:
  425. - PUBLIC
  426. - PROTECTED
  427. - PRIVATE
  428. type: string
  429. x-enum-varnames:
  430. - Public
  431. - Protected
  432. - Private
  433. github_com_usememos_memos_api_v1.CreateIdentityProviderRequest:
  434. properties:
  435. config:
  436. $ref: '#/definitions/github_com_usememos_memos_api_v1.IdentityProviderConfig'
  437. identifierFilter:
  438. type: string
  439. name:
  440. type: string
  441. type:
  442. $ref: '#/definitions/github_com_usememos_memos_api_v1.IdentityProviderType'
  443. type: object
  444. github_com_usememos_memos_api_v1.CreateMemoRequest:
  445. properties:
  446. content:
  447. type: string
  448. createdTs:
  449. type: integer
  450. relationList:
  451. items:
  452. $ref: '#/definitions/github_com_usememos_memos_api_v1.UpsertMemoRelationRequest'
  453. type: array
  454. resourceIdList:
  455. description: Related fields
  456. items:
  457. type: integer
  458. type: array
  459. visibility:
  460. allOf:
  461. - $ref: '#/definitions/github_com_usememos_memos_api_v1.Visibility'
  462. description: Domain specific fields
  463. type: object
  464. github_com_usememos_memos_api_v1.CreateResourceRequest:
  465. properties:
  466. externalLink:
  467. type: string
  468. filename:
  469. type: string
  470. type:
  471. type: string
  472. type: object
  473. github_com_usememos_memos_api_v1.CreateStorageRequest:
  474. properties:
  475. config:
  476. $ref: '#/definitions/github_com_usememos_memos_api_v1.StorageConfig'
  477. name:
  478. type: string
  479. type:
  480. $ref: '#/definitions/github_com_usememos_memos_api_v1.StorageType'
  481. type: object
  482. github_com_usememos_memos_api_v1.CreateUserRequest:
  483. properties:
  484. email:
  485. type: string
  486. nickname:
  487. type: string
  488. password:
  489. type: string
  490. role:
  491. $ref: '#/definitions/github_com_usememos_memos_api_v1.Role'
  492. username:
  493. type: string
  494. type: object
  495. github_com_usememos_memos_api_v1.CustomizedProfile:
  496. properties:
  497. appearance:
  498. description: Appearance is the server default appearance.
  499. type: string
  500. description:
  501. description: Description is the server description.
  502. type: string
  503. externalUrl:
  504. description: ExternalURL is the external url of server. e.g. https://usermemos.com
  505. type: string
  506. locale:
  507. description: Locale is the server default locale.
  508. type: string
  509. logoUrl:
  510. description: LogoURL is the url of logo image.
  511. type: string
  512. name:
  513. description: Name is the server name, default is `memos`
  514. type: string
  515. type: object
  516. github_com_usememos_memos_api_v1.DeleteTagRequest:
  517. properties:
  518. name:
  519. type: string
  520. type: object
  521. github_com_usememos_memos_api_v1.FieldMapping:
  522. properties:
  523. displayName:
  524. type: string
  525. email:
  526. type: string
  527. identifier:
  528. type: string
  529. type: object
  530. github_com_usememos_memos_api_v1.IdentityProvider:
  531. properties:
  532. config:
  533. $ref: '#/definitions/github_com_usememos_memos_api_v1.IdentityProviderConfig'
  534. id:
  535. type: integer
  536. identifierFilter:
  537. type: string
  538. name:
  539. type: string
  540. type:
  541. $ref: '#/definitions/github_com_usememos_memos_api_v1.IdentityProviderType'
  542. type: object
  543. github_com_usememos_memos_api_v1.IdentityProviderConfig:
  544. properties:
  545. oauth2Config:
  546. $ref: '#/definitions/github_com_usememos_memos_api_v1.IdentityProviderOAuth2Config'
  547. type: object
  548. github_com_usememos_memos_api_v1.IdentityProviderOAuth2Config:
  549. properties:
  550. authUrl:
  551. type: string
  552. clientId:
  553. type: string
  554. clientSecret:
  555. type: string
  556. fieldMapping:
  557. $ref: '#/definitions/github_com_usememos_memos_api_v1.FieldMapping'
  558. scopes:
  559. items:
  560. type: string
  561. type: array
  562. tokenUrl:
  563. type: string
  564. userInfoUrl:
  565. type: string
  566. type: object
  567. github_com_usememos_memos_api_v1.IdentityProviderType:
  568. enum:
  569. - OAUTH2
  570. type: string
  571. x-enum-varnames:
  572. - IdentityProviderOAuth2Type
  573. github_com_usememos_memos_api_v1.MemoRelationType:
  574. enum:
  575. - REFERENCE
  576. - COMMENT
  577. type: string
  578. x-enum-varnames:
  579. - MemoRelationReference
  580. - MemoRelationComment
  581. github_com_usememos_memos_api_v1.PatchMemoRequest:
  582. properties:
  583. content:
  584. description: Domain specific fields
  585. type: string
  586. createdTs:
  587. description: Standard fields
  588. type: integer
  589. relationList:
  590. items:
  591. $ref: '#/definitions/github_com_usememos_memos_api_v1.UpsertMemoRelationRequest'
  592. type: array
  593. resourceIdList:
  594. description: Related fields
  595. items:
  596. type: integer
  597. type: array
  598. rowStatus:
  599. $ref: '#/definitions/github_com_usememos_memos_api_v1.RowStatus'
  600. updatedTs:
  601. type: integer
  602. visibility:
  603. $ref: '#/definitions/github_com_usememos_memos_api_v1.Visibility'
  604. type: object
  605. github_com_usememos_memos_api_v1.Role:
  606. enum:
  607. - HOST
  608. - ADMIN
  609. - USER
  610. type: string
  611. x-enum-varnames:
  612. - RoleHost
  613. - RoleAdmin
  614. - RoleUser
  615. github_com_usememos_memos_api_v1.RowStatus:
  616. enum:
  617. - NORMAL
  618. - ARCHIVED
  619. type: string
  620. x-enum-varnames:
  621. - Normal
  622. - Archived
  623. github_com_usememos_memos_api_v1.SSOSignIn:
  624. properties:
  625. code:
  626. type: string
  627. identityProviderId:
  628. type: integer
  629. redirectUri:
  630. type: string
  631. type: object
  632. github_com_usememos_memos_api_v1.SignIn:
  633. properties:
  634. password:
  635. type: string
  636. remember:
  637. type: boolean
  638. username:
  639. type: string
  640. type: object
  641. github_com_usememos_memos_api_v1.SignUp:
  642. properties:
  643. password:
  644. type: string
  645. username:
  646. type: string
  647. type: object
  648. github_com_usememos_memos_api_v1.StorageConfig:
  649. properties:
  650. s3Config:
  651. $ref: '#/definitions/github_com_usememos_memos_api_v1.StorageS3Config'
  652. type: object
  653. github_com_usememos_memos_api_v1.StorageS3Config:
  654. properties:
  655. accessKey:
  656. type: string
  657. bucket:
  658. type: string
  659. endPoint:
  660. type: string
  661. path:
  662. type: string
  663. region:
  664. type: string
  665. secretKey:
  666. type: string
  667. urlPrefix:
  668. type: string
  669. urlSuffix:
  670. type: string
  671. type: object
  672. github_com_usememos_memos_api_v1.StorageType:
  673. enum:
  674. - S3
  675. type: string
  676. x-enum-varnames:
  677. - StorageS3
  678. github_com_usememos_memos_api_v1.SystemSetting:
  679. properties:
  680. description:
  681. type: string
  682. name:
  683. $ref: '#/definitions/github_com_usememos_memos_api_v1.SystemSettingName'
  684. value:
  685. description: Value is a JSON string with basic value.
  686. type: string
  687. type: object
  688. github_com_usememos_memos_api_v1.SystemSettingName:
  689. enum:
  690. - server-id
  691. - secret-session
  692. - allow-signup
  693. - disable-password-login
  694. - disable-public-memos
  695. - max-upload-size-mib
  696. - additional-style
  697. - additional-script
  698. - customized-profile
  699. - storage-service-id
  700. - local-storage-path
  701. - telegram-bot-token
  702. - memo-display-with-updated-ts
  703. - instance-url
  704. type: string
  705. x-enum-varnames:
  706. - SystemSettingServerIDName
  707. - SystemSettingSecretSessionName
  708. - SystemSettingAllowSignUpName
  709. - SystemSettingDisablePasswordLoginName
  710. - SystemSettingDisablePublicMemosName
  711. - SystemSettingMaxUploadSizeMiBName
  712. - SystemSettingAdditionalStyleName
  713. - SystemSettingAdditionalScriptName
  714. - SystemSettingCustomizedProfileName
  715. - SystemSettingStorageServiceIDName
  716. - SystemSettingLocalStoragePathName
  717. - SystemSettingTelegramBotTokenName
  718. - SystemSettingMemoDisplayWithUpdatedTsName
  719. - SystemSettingInstanceURLName
  720. github_com_usememos_memos_api_v1.SystemStatus:
  721. properties:
  722. additionalScript:
  723. description: Additional script.
  724. type: string
  725. additionalStyle:
  726. description: Additional style.
  727. type: string
  728. allowSignUp:
  729. description: |-
  730. System settings
  731. Allow sign up.
  732. type: boolean
  733. customizedProfile:
  734. allOf:
  735. - $ref: '#/definitions/github_com_usememos_memos_api_v1.CustomizedProfile'
  736. description: Customized server profile, including server name and external
  737. url.
  738. dbSize:
  739. type: integer
  740. disablePasswordLogin:
  741. description: Disable password login.
  742. type: boolean
  743. disablePublicMemos:
  744. description: Disable public memos.
  745. type: boolean
  746. host:
  747. $ref: '#/definitions/github_com_usememos_memos_api_v1.User'
  748. localStoragePath:
  749. description: Local storage path.
  750. type: string
  751. maxUploadSizeMiB:
  752. description: Max upload size.
  753. type: integer
  754. memoDisplayWithUpdatedTs:
  755. description: Memo display with updated timestamp.
  756. type: boolean
  757. profile:
  758. $ref: '#/definitions/profile.Profile'
  759. storageServiceId:
  760. description: Storage service ID.
  761. type: integer
  762. type: object
  763. github_com_usememos_memos_api_v1.UpdateIdentityProviderRequest:
  764. properties:
  765. config:
  766. $ref: '#/definitions/github_com_usememos_memos_api_v1.IdentityProviderConfig'
  767. identifierFilter:
  768. type: string
  769. name:
  770. type: string
  771. type:
  772. $ref: '#/definitions/github_com_usememos_memos_api_v1.IdentityProviderType'
  773. type: object
  774. github_com_usememos_memos_api_v1.UpdateResourceRequest:
  775. properties:
  776. filename:
  777. type: string
  778. type: object
  779. github_com_usememos_memos_api_v1.UpdateStorageRequest:
  780. properties:
  781. config:
  782. $ref: '#/definitions/github_com_usememos_memos_api_v1.StorageConfig'
  783. name:
  784. type: string
  785. type:
  786. $ref: '#/definitions/github_com_usememos_memos_api_v1.StorageType'
  787. type: object
  788. github_com_usememos_memos_api_v1.UpdateUserRequest:
  789. properties:
  790. avatarUrl:
  791. type: string
  792. email:
  793. type: string
  794. nickname:
  795. type: string
  796. password:
  797. type: string
  798. rowStatus:
  799. $ref: '#/definitions/github_com_usememos_memos_api_v1.RowStatus'
  800. username:
  801. type: string
  802. type: object
  803. github_com_usememos_memos_api_v1.UpsertMemoOrganizerRequest:
  804. properties:
  805. pinned:
  806. type: boolean
  807. type: object
  808. github_com_usememos_memos_api_v1.UpsertMemoRelationRequest:
  809. properties:
  810. relatedMemoId:
  811. type: integer
  812. type:
  813. $ref: '#/definitions/github_com_usememos_memos_api_v1.MemoRelationType'
  814. type: object
  815. github_com_usememos_memos_api_v1.UpsertSystemSettingRequest:
  816. properties:
  817. description:
  818. type: string
  819. name:
  820. $ref: '#/definitions/github_com_usememos_memos_api_v1.SystemSettingName'
  821. value:
  822. type: string
  823. type: object
  824. github_com_usememos_memos_api_v1.UpsertTagRequest:
  825. properties:
  826. name:
  827. type: string
  828. type: object
  829. github_com_usememos_memos_api_v1.User:
  830. properties:
  831. avatarUrl:
  832. type: string
  833. createdTs:
  834. type: integer
  835. email:
  836. type: string
  837. id:
  838. type: integer
  839. nickname:
  840. type: string
  841. role:
  842. $ref: '#/definitions/github_com_usememos_memos_api_v1.Role'
  843. rowStatus:
  844. allOf:
  845. - $ref: '#/definitions/github_com_usememos_memos_api_v1.RowStatus'
  846. description: Standard fields
  847. updatedTs:
  848. type: integer
  849. username:
  850. description: Domain specific fields
  851. type: string
  852. type: object
  853. github_com_usememos_memos_api_v1.Visibility:
  854. enum:
  855. - PUBLIC
  856. - PROTECTED
  857. - PRIVATE
  858. type: string
  859. x-enum-varnames:
  860. - Public
  861. - Protected
  862. - Private
  863. profile.Profile:
  864. properties:
  865. mode:
  866. description: Mode can be "prod" or "dev" or "demo"
  867. type: string
  868. version:
  869. description: Version is the current version of server
  870. type: string
  871. type: object
  872. store.FieldMapping:
  873. properties:
  874. displayName:
  875. type: string
  876. email:
  877. type: string
  878. identifier:
  879. type: string
  880. type: object
  881. store.IdentityProvider:
  882. properties:
  883. config:
  884. $ref: '#/definitions/store.IdentityProviderConfig'
  885. id:
  886. type: integer
  887. identifierFilter:
  888. type: string
  889. name:
  890. type: string
  891. type:
  892. $ref: '#/definitions/store.IdentityProviderType'
  893. type: object
  894. store.IdentityProviderConfig:
  895. properties:
  896. oauth2Config:
  897. $ref: '#/definitions/store.IdentityProviderOAuth2Config'
  898. type: object
  899. store.IdentityProviderOAuth2Config:
  900. properties:
  901. authUrl:
  902. type: string
  903. clientId:
  904. type: string
  905. clientSecret:
  906. type: string
  907. fieldMapping:
  908. $ref: '#/definitions/store.FieldMapping'
  909. scopes:
  910. items:
  911. type: string
  912. type: array
  913. tokenUrl:
  914. type: string
  915. userInfoUrl:
  916. type: string
  917. type: object
  918. store.IdentityProviderType:
  919. enum:
  920. - OAUTH2
  921. type: string
  922. x-enum-varnames:
  923. - IdentityProviderOAuth2Type
  924. store.Memo:
  925. properties:
  926. content:
  927. description: Domain specific fields
  928. type: string
  929. createdTs:
  930. type: integer
  931. creatorID:
  932. type: integer
  933. id:
  934. type: integer
  935. pinned:
  936. description: Composed fields
  937. type: boolean
  938. rowStatus:
  939. allOf:
  940. - $ref: '#/definitions/store.RowStatus'
  941. description: Standard fields
  942. updatedTs:
  943. type: integer
  944. visibility:
  945. $ref: '#/definitions/store.Visibility'
  946. type: object
  947. store.MemoRelation:
  948. properties:
  949. memoID:
  950. type: integer
  951. relatedMemoID:
  952. type: integer
  953. type:
  954. $ref: '#/definitions/store.MemoRelationType'
  955. type: object
  956. store.MemoRelationType:
  957. enum:
  958. - REFERENCE
  959. - COMMENT
  960. type: string
  961. x-enum-varnames:
  962. - MemoRelationReference
  963. - MemoRelationComment
  964. store.Resource:
  965. properties:
  966. blob:
  967. items:
  968. type: integer
  969. type: array
  970. createdTs:
  971. type: integer
  972. creatorID:
  973. description: Standard fields
  974. type: integer
  975. externalLink:
  976. type: string
  977. filename:
  978. description: Domain specific fields
  979. type: string
  980. id:
  981. type: integer
  982. internalPath:
  983. type: string
  984. memoID:
  985. type: integer
  986. size:
  987. type: integer
  988. type:
  989. type: string
  990. updatedTs:
  991. type: integer
  992. type: object
  993. store.Role:
  994. enum:
  995. - HOST
  996. - ADMIN
  997. - USER
  998. type: string
  999. x-enum-varnames:
  1000. - RoleHost
  1001. - RoleAdmin
  1002. - RoleUser
  1003. store.RowStatus:
  1004. enum:
  1005. - NORMAL
  1006. - ARCHIVED
  1007. type: string
  1008. x-enum-varnames:
  1009. - Normal
  1010. - Archived
  1011. store.Storage:
  1012. properties:
  1013. config:
  1014. type: string
  1015. id:
  1016. type: integer
  1017. name:
  1018. type: string
  1019. type:
  1020. type: string
  1021. type: object
  1022. store.SystemSetting:
  1023. properties:
  1024. description:
  1025. type: string
  1026. name:
  1027. type: string
  1028. value:
  1029. type: string
  1030. type: object
  1031. store.User:
  1032. properties:
  1033. avatarURL:
  1034. type: string
  1035. createdTs:
  1036. type: integer
  1037. email:
  1038. type: string
  1039. id:
  1040. type: integer
  1041. nickname:
  1042. type: string
  1043. passwordHash:
  1044. type: string
  1045. role:
  1046. $ref: '#/definitions/store.Role'
  1047. rowStatus:
  1048. allOf:
  1049. - $ref: '#/definitions/store.RowStatus'
  1050. description: Standard fields
  1051. updatedTs:
  1052. type: integer
  1053. username:
  1054. description: Domain specific fields
  1055. type: string
  1056. type: object
  1057. store.Visibility:
  1058. enum:
  1059. - PUBLIC
  1060. - PROTECTED
  1061. - PRIVATE
  1062. type: string
  1063. x-enum-varnames:
  1064. - Public
  1065. - Protected
  1066. - Private
  1067. externalDocs:
  1068. description: Find out more about Memos.
  1069. url: https://usememos.com/
  1070. info:
  1071. contact:
  1072. name: API Support
  1073. url: https://github.com/orgs/usememos/discussions
  1074. description: A privacy-first, lightweight note-taking service.
  1075. license:
  1076. name: MIT License
  1077. url: https://github.com/usememos/memos/blob/main/LICENSE
  1078. title: memos API
  1079. version: "1.0"
  1080. paths:
  1081. /api/v1/auth/signin:
  1082. post:
  1083. consumes:
  1084. - application/json
  1085. parameters:
  1086. - description: Sign-in object
  1087. in: body
  1088. name: body
  1089. required: true
  1090. schema:
  1091. $ref: '#/definitions/github_com_usememos_memos_api_v1.SignIn'
  1092. produces:
  1093. - application/json
  1094. responses:
  1095. "200":
  1096. description: User information
  1097. schema:
  1098. $ref: '#/definitions/store.User'
  1099. "400":
  1100. description: Malformatted signin request
  1101. "401":
  1102. description: Password login is deactivated | Incorrect login credentials,
  1103. please try again
  1104. "403":
  1105. description: User has been archived with username %s
  1106. "500":
  1107. description: Failed to find system setting | Failed to unmarshal system
  1108. setting | Incorrect login credentials, please try again | Failed to generate
  1109. tokens | Failed to create activity
  1110. summary: Sign-in to memos.
  1111. tags:
  1112. - auth
  1113. /api/v1/auth/signin/sso:
  1114. post:
  1115. consumes:
  1116. - application/json
  1117. parameters:
  1118. - description: SSO sign-in object
  1119. in: body
  1120. name: body
  1121. required: true
  1122. schema:
  1123. $ref: '#/definitions/github_com_usememos_memos_api_v1.SSOSignIn'
  1124. produces:
  1125. - application/json
  1126. responses:
  1127. "200":
  1128. description: User information
  1129. schema:
  1130. $ref: '#/definitions/store.User'
  1131. "400":
  1132. description: Malformatted signin request
  1133. "401":
  1134. description: Access denied, identifier does not match the filter.
  1135. "403":
  1136. description: User has been archived with username {username}
  1137. "404":
  1138. description: Identity provider not found
  1139. "500":
  1140. description: Failed to find identity provider | Failed to create identity
  1141. provider instance | Failed to exchange token | Failed to get user info
  1142. | Failed to compile identifier filter | Incorrect login credentials, please
  1143. try again | Failed to generate random password | Failed to generate password
  1144. hash | Failed to create user | Failed to generate tokens | Failed to create
  1145. activity
  1146. summary: Sign-in to memos using SSO.
  1147. tags:
  1148. - auth
  1149. /api/v1/auth/signout:
  1150. post:
  1151. produces:
  1152. - application/json
  1153. responses:
  1154. "200":
  1155. description: Sign-out success
  1156. schema:
  1157. type: boolean
  1158. summary: Sign-out from memos.
  1159. tags:
  1160. - auth
  1161. /api/v1/auth/signup:
  1162. post:
  1163. consumes:
  1164. - application/json
  1165. parameters:
  1166. - description: Sign-up object
  1167. in: body
  1168. name: body
  1169. required: true
  1170. schema:
  1171. $ref: '#/definitions/github_com_usememos_memos_api_v1.SignUp'
  1172. produces:
  1173. - application/json
  1174. responses:
  1175. "200":
  1176. description: User information
  1177. schema:
  1178. $ref: '#/definitions/store.User'
  1179. "400":
  1180. description: Malformatted signup request | Failed to find users
  1181. "401":
  1182. description: signup is disabled
  1183. "403":
  1184. description: Forbidden
  1185. "404":
  1186. description: Not found
  1187. "500":
  1188. description: Failed to find system setting | Failed to unmarshal system
  1189. setting allow signup | Failed to generate password hash | Failed to create
  1190. user | Failed to generate tokens | Failed to create activity
  1191. summary: Sign-up to memos.
  1192. tags:
  1193. - auth
  1194. /api/v1/idp:
  1195. get:
  1196. description: '*clientSecret is only available for host user'
  1197. produces:
  1198. - application/json
  1199. responses:
  1200. "200":
  1201. description: List of available identity providers
  1202. schema:
  1203. items:
  1204. $ref: '#/definitions/github_com_usememos_memos_api_v1.IdentityProvider'
  1205. type: array
  1206. "500":
  1207. description: Failed to find identity provider list | Failed to find user
  1208. summary: Get a list of identity providers
  1209. tags:
  1210. - idp
  1211. post:
  1212. consumes:
  1213. - application/json
  1214. parameters:
  1215. - description: Identity provider information
  1216. in: body
  1217. name: body
  1218. required: true
  1219. schema:
  1220. $ref: '#/definitions/github_com_usememos_memos_api_v1.CreateIdentityProviderRequest'
  1221. produces:
  1222. - application/json
  1223. responses:
  1224. "200":
  1225. description: Identity provider information
  1226. schema:
  1227. $ref: '#/definitions/store.IdentityProvider'
  1228. "400":
  1229. description: Malformatted post identity provider request
  1230. "401":
  1231. description: Missing user in session | Unauthorized
  1232. "500":
  1233. description: Failed to find user | Failed to create identity provider
  1234. summary: Create Identity Provider
  1235. tags:
  1236. - idp
  1237. /api/v1/idp/{idpId}:
  1238. delete:
  1239. consumes:
  1240. - application/json
  1241. parameters:
  1242. - description: Identity Provider ID
  1243. in: path
  1244. name: idpId
  1245. required: true
  1246. type: integer
  1247. produces:
  1248. - application/json
  1249. responses:
  1250. "200":
  1251. description: Identity Provider deleted
  1252. schema:
  1253. type: boolean
  1254. "400":
  1255. description: 'ID is not a number: %s | Malformatted patch identity provider
  1256. request'
  1257. "401":
  1258. description: Missing user in session | Unauthorized
  1259. "500":
  1260. description: Failed to find user | Failed to patch identity provider
  1261. summary: Delete an identity provider by ID
  1262. tags:
  1263. - idp
  1264. get:
  1265. consumes:
  1266. - application/json
  1267. parameters:
  1268. - description: Identity provider ID
  1269. in: path
  1270. name: idpId
  1271. required: true
  1272. type: integer
  1273. produces:
  1274. - application/json
  1275. responses:
  1276. "200":
  1277. description: Requested identity provider
  1278. schema:
  1279. $ref: '#/definitions/store.IdentityProvider'
  1280. "400":
  1281. description: 'ID is not a number: %s'
  1282. "401":
  1283. description: Missing user in session | Unauthorized
  1284. "404":
  1285. description: Identity provider not found
  1286. "500":
  1287. description: Failed to find identity provider list | Failed to find user
  1288. summary: Get an identity provider by ID
  1289. tags:
  1290. - idp
  1291. patch:
  1292. consumes:
  1293. - application/json
  1294. parameters:
  1295. - description: Identity Provider ID
  1296. in: path
  1297. name: idpId
  1298. required: true
  1299. type: integer
  1300. - description: Patched identity provider information
  1301. in: body
  1302. name: body
  1303. required: true
  1304. schema:
  1305. $ref: '#/definitions/github_com_usememos_memos_api_v1.UpdateIdentityProviderRequest'
  1306. produces:
  1307. - application/json
  1308. responses:
  1309. "200":
  1310. description: Patched identity provider
  1311. schema:
  1312. $ref: '#/definitions/store.IdentityProvider'
  1313. "400":
  1314. description: 'ID is not a number: %s | Malformatted patch identity provider
  1315. request'
  1316. "401":
  1317. description: Missing user in session | Unauthorized
  1318. "500":
  1319. description: Failed to find user | Failed to patch identity provider
  1320. summary: Update an identity provider by ID
  1321. tags:
  1322. - idp
  1323. /api/v1/memo:
  1324. get:
  1325. parameters:
  1326. - description: Creator ID
  1327. in: query
  1328. name: creatorId
  1329. type: integer
  1330. - description: Creator username
  1331. in: query
  1332. name: creatorUsername
  1333. type: string
  1334. - description: Row status
  1335. enum:
  1336. - NORMAL
  1337. - ARCHIVED
  1338. in: query
  1339. name: rowStatus
  1340. type: string
  1341. - description: Pinned
  1342. in: query
  1343. name: pinned
  1344. type: boolean
  1345. - description: 'Search for tag. Do not append #'
  1346. in: query
  1347. name: tag
  1348. type: string
  1349. - description: Search for content
  1350. in: query
  1351. name: content
  1352. type: string
  1353. - description: Limit
  1354. in: query
  1355. name: limit
  1356. type: integer
  1357. - description: Offset
  1358. in: query
  1359. name: offset
  1360. type: integer
  1361. produces:
  1362. - application/json
  1363. responses:
  1364. "200":
  1365. description: Memo list
  1366. schema:
  1367. items:
  1368. $ref: '#/definitions/store.Memo'
  1369. type: array
  1370. "400":
  1371. description: Missing user to find memo
  1372. "500":
  1373. description: Failed to get memo display with updated ts setting value |
  1374. Failed to fetch memo list | Failed to compose memo response
  1375. summary: Get a list of memos matching optional filters
  1376. tags:
  1377. - memo
  1378. post:
  1379. consumes:
  1380. - application/json
  1381. description: |-
  1382. Visibility can be PUBLIC, PROTECTED or PRIVATE
  1383. *You should omit fields to use their default values
  1384. parameters:
  1385. - description: Request object.
  1386. in: body
  1387. name: body
  1388. required: true
  1389. schema:
  1390. $ref: '#/definitions/github_com_usememos_memos_api_v1.CreateMemoRequest'
  1391. produces:
  1392. - application/json
  1393. responses:
  1394. "200":
  1395. description: Stored memo
  1396. schema:
  1397. $ref: '#/definitions/store.Memo'
  1398. "400":
  1399. description: Malformatted post memo request | Content size overflow, up
  1400. to 1MB
  1401. "401":
  1402. description: Missing user in session
  1403. "404":
  1404. description: 'User not found | Memo not found: %d'
  1405. "500":
  1406. description: Failed to find user setting | Failed to unmarshal user setting
  1407. value | Failed to find system setting | Failed to unmarshal system setting
  1408. | Failed to find user | Failed to create memo | Failed to create activity
  1409. | Failed to upsert memo resource | Failed to upsert memo relation | Failed
  1410. to compose memo | Failed to compose memo response
  1411. summary: Create a memo
  1412. tags:
  1413. - memo
  1414. /api/v1/memo/{memoId}:
  1415. delete:
  1416. parameters:
  1417. - description: Memo ID to delete
  1418. in: path
  1419. name: memoId
  1420. required: true
  1421. type: integer
  1422. produces:
  1423. - application/json
  1424. responses:
  1425. "200":
  1426. description: Memo deleted
  1427. schema:
  1428. type: boolean
  1429. "400":
  1430. description: 'ID is not a number: %s'
  1431. "401":
  1432. description: Missing user in session | Unauthorized
  1433. "404":
  1434. description: 'Memo not found: %d'
  1435. "500":
  1436. description: 'Failed to find memo | Failed to delete memo ID: %v'
  1437. summary: Delete memo by ID
  1438. tags:
  1439. - memo
  1440. get:
  1441. parameters:
  1442. - description: Memo ID
  1443. in: path
  1444. name: memoId
  1445. required: true
  1446. type: integer
  1447. produces:
  1448. - application/json
  1449. responses:
  1450. "200":
  1451. description: Memo list
  1452. schema:
  1453. items:
  1454. $ref: '#/definitions/store.Memo'
  1455. type: array
  1456. "400":
  1457. description: 'ID is not a number: %s'
  1458. "401":
  1459. description: Missing user in session
  1460. "403":
  1461. description: this memo is private only | this memo is protected, missing
  1462. user in session
  1463. "404":
  1464. description: 'Memo not found: %d'
  1465. "500":
  1466. description: 'Failed to find memo by ID: %v | Failed to compose memo response'
  1467. summary: Get memo by ID
  1468. tags:
  1469. - memo
  1470. patch:
  1471. consumes:
  1472. - application/json
  1473. description: |-
  1474. Visibility can be PUBLIC, PROTECTED or PRIVATE
  1475. *You should omit fields to use their default values
  1476. parameters:
  1477. - description: ID of memo to update
  1478. in: path
  1479. name: memoId
  1480. required: true
  1481. type: integer
  1482. - description: Patched object.
  1483. in: body
  1484. name: body
  1485. required: true
  1486. schema:
  1487. $ref: '#/definitions/github_com_usememos_memos_api_v1.PatchMemoRequest'
  1488. produces:
  1489. - application/json
  1490. responses:
  1491. "200":
  1492. description: Stored memo
  1493. schema:
  1494. $ref: '#/definitions/store.Memo'
  1495. "400":
  1496. description: 'ID is not a number: %s | Malformatted patch memo request |
  1497. Content size overflow, up to 1MB'
  1498. "401":
  1499. description: Missing user in session | Unauthorized
  1500. "404":
  1501. description: 'Memo not found: %d'
  1502. "500":
  1503. description: Failed to find memo | Failed to patch memo | Failed to upsert
  1504. memo resource | Failed to delete memo resource | Failed to compose memo
  1505. response
  1506. summary: Update a memo
  1507. tags:
  1508. - memo
  1509. /api/v1/memo/{memoId}/organizer:
  1510. post:
  1511. consumes:
  1512. - application/json
  1513. parameters:
  1514. - description: ID of memo to organize
  1515. in: path
  1516. name: memoId
  1517. required: true
  1518. type: integer
  1519. - description: Memo organizer object
  1520. in: body
  1521. name: body
  1522. required: true
  1523. schema:
  1524. $ref: '#/definitions/github_com_usememos_memos_api_v1.UpsertMemoOrganizerRequest'
  1525. produces:
  1526. - application/json
  1527. responses:
  1528. "200":
  1529. description: Memo information
  1530. schema:
  1531. $ref: '#/definitions/store.Memo'
  1532. "400":
  1533. description: 'ID is not a number: %s | Malformatted post memo organizer
  1534. request'
  1535. "401":
  1536. description: Missing user in session | Unauthorized
  1537. "404":
  1538. description: 'Memo not found: %v'
  1539. "500":
  1540. description: 'Failed to find memo | Failed to upsert memo organizer | Failed
  1541. to find memo by ID: %v | Failed to compose memo response'
  1542. summary: Organize memo (pin/unpin)
  1543. tags:
  1544. - memo-organizer
  1545. /api/v1/memo/{memoId}/relation:
  1546. get:
  1547. consumes:
  1548. - application/json
  1549. parameters:
  1550. - description: ID of memo to find relations
  1551. in: path
  1552. name: memoId
  1553. required: true
  1554. type: integer
  1555. produces:
  1556. - application/json
  1557. responses:
  1558. "200":
  1559. description: Memo relation information list
  1560. schema:
  1561. items:
  1562. $ref: '#/definitions/store.MemoRelation'
  1563. type: array
  1564. "400":
  1565. description: 'ID is not a number: %s'
  1566. "500":
  1567. description: Failed to list memo relations
  1568. summary: Get a list of Memo Relations
  1569. tags:
  1570. - memo-relation
  1571. post:
  1572. consumes:
  1573. - application/json
  1574. description: Create a relation between two memos
  1575. parameters:
  1576. - description: ID of memo to relate
  1577. in: path
  1578. name: memoId
  1579. required: true
  1580. type: integer
  1581. - description: Memo relation object
  1582. in: body
  1583. name: body
  1584. required: true
  1585. schema:
  1586. $ref: '#/definitions/api_v1.UpsertMemoRelationRequest'
  1587. produces:
  1588. - application/json
  1589. responses:
  1590. "200":
  1591. description: Memo relation information
  1592. schema:
  1593. $ref: '#/definitions/store.MemoRelation'
  1594. "400":
  1595. description: 'ID is not a number: %s | Malformatted post memo relation request'
  1596. "500":
  1597. description: Failed to upsert memo relation
  1598. summary: Create Memo Relation
  1599. tags:
  1600. - memo-relation
  1601. /api/v1/memo/{memoId}/relation/{relatedMemoId}/type/{relationType}:
  1602. delete:
  1603. consumes:
  1604. - application/json
  1605. description: Removes a relation between two memos
  1606. parameters:
  1607. - description: ID of memo to find relations
  1608. in: path
  1609. name: memoId
  1610. required: true
  1611. type: integer
  1612. - description: ID of memo to remove relation to
  1613. in: path
  1614. name: relatedMemoId
  1615. required: true
  1616. type: integer
  1617. - description: Type of relation to remove
  1618. enum:
  1619. - REFERENCE
  1620. - COMMENT
  1621. in: path
  1622. name: relationType
  1623. required: true
  1624. type: string
  1625. produces:
  1626. - application/json
  1627. responses:
  1628. "200":
  1629. description: Memo relation deleted
  1630. schema:
  1631. type: boolean
  1632. "400":
  1633. description: 'Memo ID is not a number: %s | Related memo ID is not a number:
  1634. %s'
  1635. "500":
  1636. description: Failed to delete memo relation
  1637. summary: Delete a Memo Relation
  1638. tags:
  1639. - memo-relation
  1640. /api/v1/memo/all:
  1641. get:
  1642. description: |-
  1643. This should also list protected memos if the user is logged in
  1644. Authentication is optional
  1645. parameters:
  1646. - description: Limit
  1647. in: query
  1648. name: limit
  1649. type: integer
  1650. - description: Offset
  1651. in: query
  1652. name: offset
  1653. type: integer
  1654. produces:
  1655. - application/json
  1656. responses:
  1657. "200":
  1658. description: Memo list
  1659. schema:
  1660. items:
  1661. $ref: '#/definitions/store.Memo'
  1662. type: array
  1663. "500":
  1664. description: Failed to get memo display with updated ts setting value |
  1665. Failed to fetch all memo list | Failed to compose memo response
  1666. summary: Get a list of public memos matching optional filters
  1667. tags:
  1668. - memo
  1669. /api/v1/memo/stats:
  1670. get:
  1671. description: Used to generate the heatmap
  1672. parameters:
  1673. - description: Creator ID
  1674. in: query
  1675. name: creatorId
  1676. type: integer
  1677. - description: Creator username
  1678. in: query
  1679. name: creatorUsername
  1680. type: string
  1681. produces:
  1682. - application/json
  1683. responses:
  1684. "200":
  1685. description: Memo createdTs list
  1686. schema:
  1687. items:
  1688. type: integer
  1689. type: array
  1690. "400":
  1691. description: Missing user id to find memo
  1692. "500":
  1693. description: Failed to get memo display with updated ts setting value |
  1694. Failed to find memo list | Failed to compose memo response
  1695. summary: Get memo stats by creator ID or username
  1696. tags:
  1697. - memo
  1698. /api/v1/ping:
  1699. get:
  1700. produces:
  1701. - application/json
  1702. responses:
  1703. "200":
  1704. description: If succeed to ping the system
  1705. schema:
  1706. type: boolean
  1707. summary: Ping the system
  1708. tags:
  1709. - system
  1710. /api/v1/resource:
  1711. get:
  1712. parameters:
  1713. - description: Limit
  1714. in: query
  1715. name: limit
  1716. type: integer
  1717. - description: Offset
  1718. in: query
  1719. name: offset
  1720. type: integer
  1721. produces:
  1722. - application/json
  1723. responses:
  1724. "200":
  1725. description: Resource list
  1726. schema:
  1727. items:
  1728. $ref: '#/definitions/store.Resource'
  1729. type: array
  1730. "401":
  1731. description: Missing user in session
  1732. "500":
  1733. description: Failed to fetch resource list
  1734. summary: Get a list of resources
  1735. tags:
  1736. - resource
  1737. post:
  1738. consumes:
  1739. - application/json
  1740. parameters:
  1741. - description: Request object.
  1742. in: body
  1743. name: body
  1744. required: true
  1745. schema:
  1746. $ref: '#/definitions/github_com_usememos_memos_api_v1.CreateResourceRequest'
  1747. produces:
  1748. - application/json
  1749. responses:
  1750. "200":
  1751. description: Created resource
  1752. schema:
  1753. $ref: '#/definitions/store.Resource'
  1754. "400":
  1755. description: Malformatted post resource request | Invalid external link
  1756. | Invalid external link scheme | Failed to request %s | Failed to read
  1757. %s | Failed to read mime from %s
  1758. "401":
  1759. description: Missing user in session
  1760. "500":
  1761. description: Failed to save resource | Failed to create resource | Failed
  1762. to create activity
  1763. summary: Create resource
  1764. tags:
  1765. - resource
  1766. /api/v1/resource/{resourceId}:
  1767. delete:
  1768. parameters:
  1769. - description: Resource ID
  1770. in: path
  1771. name: resourceId
  1772. required: true
  1773. type: integer
  1774. produces:
  1775. - application/json
  1776. responses:
  1777. "200":
  1778. description: Resource deleted
  1779. schema:
  1780. type: boolean
  1781. "400":
  1782. description: 'ID is not a number: %s'
  1783. "401":
  1784. description: Missing user in session
  1785. "404":
  1786. description: 'Resource not found: %d'
  1787. "500":
  1788. description: Failed to find resource | Failed to delete resource
  1789. summary: Delete a resource
  1790. tags:
  1791. - resource
  1792. patch:
  1793. parameters:
  1794. - description: Resource ID
  1795. in: path
  1796. name: resourceId
  1797. required: true
  1798. type: integer
  1799. - description: Patch resource request
  1800. in: body
  1801. name: patch
  1802. required: true
  1803. schema:
  1804. $ref: '#/definitions/github_com_usememos_memos_api_v1.UpdateResourceRequest'
  1805. produces:
  1806. - application/json
  1807. responses:
  1808. "200":
  1809. description: Updated resource
  1810. schema:
  1811. $ref: '#/definitions/store.Resource'
  1812. "400":
  1813. description: 'ID is not a number: %s | Malformatted patch resource request'
  1814. "401":
  1815. description: Missing user in session | Unauthorized
  1816. "404":
  1817. description: 'Resource not found: %d'
  1818. "500":
  1819. description: Failed to find resource | Failed to patch resource
  1820. summary: Update a resource
  1821. tags:
  1822. - resource
  1823. /api/v1/resource/blob:
  1824. post:
  1825. consumes:
  1826. - multipart/form-data
  1827. parameters:
  1828. - description: File to upload
  1829. in: formData
  1830. name: file
  1831. required: true
  1832. type: file
  1833. produces:
  1834. - application/json
  1835. responses:
  1836. "200":
  1837. description: Created resource
  1838. schema:
  1839. $ref: '#/definitions/store.Resource'
  1840. "400":
  1841. description: Upload file not found | File size exceeds allowed limit of
  1842. %d MiB | Failed to parse upload data
  1843. "401":
  1844. description: Missing user in session
  1845. "500":
  1846. description: Failed to get uploading file | Failed to open file | Failed
  1847. to save resource | Failed to create resource | Failed to create activity
  1848. summary: Upload resource
  1849. tags:
  1850. - resource
  1851. /api/v1/status:
  1852. get:
  1853. produces:
  1854. - application/json
  1855. responses:
  1856. "200":
  1857. description: System GetSystemStatus
  1858. schema:
  1859. $ref: '#/definitions/github_com_usememos_memos_api_v1.SystemStatus'
  1860. "401":
  1861. description: Missing user in session | Unauthorized
  1862. "500":
  1863. description: Failed to find host user | Failed to find system setting list
  1864. | Failed to unmarshal system setting customized profile value
  1865. summary: Get system GetSystemStatus
  1866. tags:
  1867. - system
  1868. /api/v1/storage:
  1869. get:
  1870. produces:
  1871. - application/json
  1872. responses:
  1873. "200":
  1874. description: List of storages
  1875. schema:
  1876. items:
  1877. $ref: '#/definitions/store.Storage'
  1878. type: array
  1879. "401":
  1880. description: Missing user in session | Unauthorized
  1881. "500":
  1882. description: Failed to find user | Failed to convert storage
  1883. summary: Get a list of storages
  1884. tags:
  1885. - storage
  1886. post:
  1887. consumes:
  1888. - application/json
  1889. parameters:
  1890. - description: Request object.
  1891. in: body
  1892. name: body
  1893. required: true
  1894. schema:
  1895. $ref: '#/definitions/github_com_usememos_memos_api_v1.CreateStorageRequest'
  1896. produces:
  1897. - application/json
  1898. responses:
  1899. "200":
  1900. description: Created storage
  1901. schema:
  1902. $ref: '#/definitions/store.Storage'
  1903. "400":
  1904. description: Malformatted post storage request
  1905. "401":
  1906. description: Missing user in session
  1907. "500":
  1908. description: Failed to find user | Failed to create storage | Failed to
  1909. convert storage
  1910. summary: Create storage
  1911. tags:
  1912. - storage
  1913. /api/v1/storage/{storageId}:
  1914. delete:
  1915. parameters:
  1916. - description: Storage ID
  1917. in: path
  1918. name: storageId
  1919. required: true
  1920. type: integer
  1921. produces:
  1922. - application/json
  1923. responses:
  1924. "200":
  1925. description: Storage deleted
  1926. schema:
  1927. type: boolean
  1928. "400":
  1929. description: 'ID is not a number: %s | Storage service %d is using'
  1930. "401":
  1931. description: Missing user in session | Unauthorized
  1932. "500":
  1933. description: Failed to find user | Failed to find storage | Failed to unmarshal
  1934. storage service id | Failed to delete storage
  1935. summary: Delete a storage
  1936. tags:
  1937. - storage
  1938. patch:
  1939. parameters:
  1940. - description: Storage ID
  1941. in: path
  1942. name: storageId
  1943. required: true
  1944. type: integer
  1945. - description: Patch request
  1946. in: body
  1947. name: patch
  1948. required: true
  1949. schema:
  1950. $ref: '#/definitions/github_com_usememos_memos_api_v1.UpdateStorageRequest'
  1951. produces:
  1952. - application/json
  1953. responses:
  1954. "200":
  1955. description: Updated resource
  1956. schema:
  1957. $ref: '#/definitions/store.Storage'
  1958. "400":
  1959. description: 'ID is not a number: %s | Malformatted patch storage request
  1960. | Malformatted post storage request'
  1961. "401":
  1962. description: Missing user in session | Unauthorized
  1963. "500":
  1964. description: Failed to find user | Failed to patch storage | Failed to convert
  1965. storage
  1966. summary: Update a storage
  1967. tags:
  1968. - storage
  1969. /api/v1/system/setting:
  1970. get:
  1971. produces:
  1972. - application/json
  1973. responses:
  1974. "200":
  1975. description: System setting list
  1976. schema:
  1977. items:
  1978. $ref: '#/definitions/api_v1.SystemSetting'
  1979. type: array
  1980. "401":
  1981. description: Missing user in session | Unauthorized
  1982. "500":
  1983. description: Failed to find user | Failed to find system setting list
  1984. summary: Get a list of system settings
  1985. tags:
  1986. - system-setting
  1987. post:
  1988. consumes:
  1989. - application/json
  1990. parameters:
  1991. - description: Request object.
  1992. in: body
  1993. name: body
  1994. required: true
  1995. schema:
  1996. $ref: '#/definitions/api_v1.UpsertSystemSettingRequest'
  1997. produces:
  1998. - application/json
  1999. responses:
  2000. "200":
  2001. description: Created system setting
  2002. schema:
  2003. $ref: '#/definitions/store.SystemSetting'
  2004. "400":
  2005. description: Malformatted post system setting request | invalid system setting
  2006. "401":
  2007. description: Missing user in session | Unauthorized
  2008. "403":
  2009. description: Cannot disable passwords if no SSO identity provider is configured.
  2010. "500":
  2011. description: Failed to find user | Failed to upsert system setting
  2012. summary: Create system setting
  2013. tags:
  2014. - system-setting
  2015. /api/v1/system/vacuum:
  2016. post:
  2017. produces:
  2018. - application/json
  2019. responses:
  2020. "200":
  2021. description: Database vacuumed
  2022. schema:
  2023. type: boolean
  2024. "401":
  2025. description: Missing user in session | Unauthorized
  2026. "500":
  2027. description: Failed to find user | Failed to ExecVacuum database
  2028. summary: Vacuum the database
  2029. tags:
  2030. - system
  2031. /api/v1/tag:
  2032. get:
  2033. produces:
  2034. - application/json
  2035. responses:
  2036. "200":
  2037. description: Tag list
  2038. schema:
  2039. items:
  2040. type: string
  2041. type: array
  2042. "400":
  2043. description: Missing user id to find tag
  2044. "500":
  2045. description: Failed to find tag list
  2046. summary: Get a list of tags
  2047. tags:
  2048. - tag
  2049. post:
  2050. consumes:
  2051. - application/json
  2052. parameters:
  2053. - description: Request object.
  2054. in: body
  2055. name: body
  2056. required: true
  2057. schema:
  2058. $ref: '#/definitions/github_com_usememos_memos_api_v1.UpsertTagRequest'
  2059. produces:
  2060. - application/json
  2061. responses:
  2062. "200":
  2063. description: Created tag name
  2064. schema:
  2065. type: string
  2066. "400":
  2067. description: Malformatted post tag request | Tag name shouldn't be empty
  2068. "401":
  2069. description: Missing user in session
  2070. "500":
  2071. description: Failed to upsert tag | Failed to create activity
  2072. summary: Create a tag
  2073. tags:
  2074. - tag
  2075. /api/v1/tag/delete:
  2076. post:
  2077. consumes:
  2078. - application/json
  2079. parameters:
  2080. - description: Request object.
  2081. in: body
  2082. name: body
  2083. required: true
  2084. schema:
  2085. $ref: '#/definitions/github_com_usememos_memos_api_v1.DeleteTagRequest'
  2086. produces:
  2087. - application/json
  2088. responses:
  2089. "200":
  2090. description: Tag deleted
  2091. schema:
  2092. type: boolean
  2093. "400":
  2094. description: Malformatted post tag request | Tag name shouldn't be empty
  2095. "401":
  2096. description: Missing user in session
  2097. "500":
  2098. description: 'Failed to delete tag name: %v'
  2099. summary: Delete a tag
  2100. tags:
  2101. - tag
  2102. /api/v1/tag/suggestion:
  2103. get:
  2104. produces:
  2105. - application/json
  2106. responses:
  2107. "200":
  2108. description: Tag list
  2109. schema:
  2110. items:
  2111. type: string
  2112. type: array
  2113. "400":
  2114. description: Missing user session
  2115. "500":
  2116. description: Failed to find memo list | Failed to find tag list
  2117. summary: Get a list of tags suggested from other memos contents
  2118. tags:
  2119. - tag
  2120. /api/v1/user:
  2121. get:
  2122. produces:
  2123. - application/json
  2124. responses:
  2125. "200":
  2126. description: User list
  2127. schema:
  2128. items:
  2129. $ref: '#/definitions/store.User'
  2130. type: array
  2131. "500":
  2132. description: Failed to fetch user list
  2133. summary: Get a list of users
  2134. tags:
  2135. - user
  2136. post:
  2137. consumes:
  2138. - application/json
  2139. parameters:
  2140. - description: Request object
  2141. in: body
  2142. name: body
  2143. required: true
  2144. schema:
  2145. $ref: '#/definitions/github_com_usememos_memos_api_v1.CreateUserRequest'
  2146. produces:
  2147. - application/json
  2148. responses:
  2149. "200":
  2150. description: Created user
  2151. schema:
  2152. $ref: '#/definitions/store.User'
  2153. "400":
  2154. description: Malformatted post user request | Invalid user create format
  2155. "401":
  2156. description: Missing auth session | Unauthorized to create user
  2157. "403":
  2158. description: Could not create host user
  2159. "500":
  2160. description: Failed to find user by id | Failed to generate password hash
  2161. | Failed to create user | Failed to create activity
  2162. summary: Create a user
  2163. tags:
  2164. - user
  2165. /api/v1/user/{id}:
  2166. delete:
  2167. parameters:
  2168. - description: User ID
  2169. in: path
  2170. name: id
  2171. required: true
  2172. type: string
  2173. produces:
  2174. - application/json
  2175. responses:
  2176. "200":
  2177. description: User deleted
  2178. schema:
  2179. type: boolean
  2180. "400":
  2181. description: 'ID is not a number: %s | Current session user not found with
  2182. ID: %d'
  2183. "401":
  2184. description: Missing user in session
  2185. "403":
  2186. description: Unauthorized to delete user
  2187. "500":
  2188. description: Failed to find user | Failed to delete user
  2189. summary: Delete a user
  2190. tags:
  2191. - user
  2192. get:
  2193. parameters:
  2194. - description: User ID
  2195. in: path
  2196. name: id
  2197. required: true
  2198. type: integer
  2199. produces:
  2200. - application/json
  2201. responses:
  2202. "200":
  2203. description: Requested user
  2204. schema:
  2205. $ref: '#/definitions/store.User'
  2206. "400":
  2207. description: Malformatted user id
  2208. "404":
  2209. description: User not found
  2210. "500":
  2211. description: Failed to find user
  2212. summary: Get user by id
  2213. tags:
  2214. - user
  2215. patch:
  2216. parameters:
  2217. - description: User ID
  2218. in: path
  2219. name: id
  2220. required: true
  2221. type: string
  2222. - description: Patch request
  2223. in: body
  2224. name: patch
  2225. required: true
  2226. schema:
  2227. $ref: '#/definitions/github_com_usememos_memos_api_v1.UpdateUserRequest'
  2228. produces:
  2229. - application/json
  2230. responses:
  2231. "200":
  2232. description: Updated user
  2233. schema:
  2234. $ref: '#/definitions/store.User'
  2235. "400":
  2236. description: 'ID is not a number: %s | Current session user not found with
  2237. ID: %d | Malformatted patch user request | Invalid update user request'
  2238. "401":
  2239. description: Missing user in session
  2240. "403":
  2241. description: Unauthorized to update user
  2242. "500":
  2243. description: Failed to find user | Failed to generate password hash | Failed
  2244. to patch user | Failed to find userSettingList
  2245. summary: Update a user
  2246. tags:
  2247. - user
  2248. /api/v1/user/me:
  2249. get:
  2250. produces:
  2251. - application/json
  2252. responses:
  2253. "200":
  2254. description: Current user
  2255. schema:
  2256. $ref: '#/definitions/store.User'
  2257. "401":
  2258. description: Missing auth session
  2259. "500":
  2260. description: Failed to find user | Failed to find userSettingList
  2261. summary: Get current user
  2262. tags:
  2263. - user
  2264. /api/v1/user/name/{username}:
  2265. get:
  2266. parameters:
  2267. - description: Username
  2268. in: path
  2269. name: username
  2270. required: true
  2271. type: string
  2272. produces:
  2273. - application/json
  2274. responses:
  2275. "200":
  2276. description: Requested user
  2277. schema:
  2278. $ref: '#/definitions/store.User'
  2279. "404":
  2280. description: User not found
  2281. "500":
  2282. description: Failed to find user
  2283. summary: Get user by username
  2284. tags:
  2285. - user
  2286. /explore/rss.xml:
  2287. get:
  2288. produces:
  2289. - text/xml
  2290. responses:
  2291. "200":
  2292. description: RSS
  2293. "500":
  2294. description: Failed to get system customized profile | Failed to find memo
  2295. list | Failed to generate rss
  2296. summary: Get RSS
  2297. tags:
  2298. - rss
  2299. /o/get/GetImage:
  2300. get:
  2301. parameters:
  2302. - description: Image url
  2303. in: query
  2304. name: url
  2305. required: true
  2306. type: string
  2307. produces:
  2308. - GetImage/*
  2309. responses:
  2310. "200":
  2311. description: Image
  2312. "400":
  2313. description: 'Missing GetImage url | Wrong url | Failed to get GetImage
  2314. url: %s'
  2315. "500":
  2316. description: Failed to write GetImage blob
  2317. summary: Get GetImage from URL
  2318. tags:
  2319. - image-url
  2320. /u/{id}/rss.xml:
  2321. get:
  2322. parameters:
  2323. - description: User ID
  2324. in: path
  2325. name: id
  2326. required: true
  2327. type: integer
  2328. produces:
  2329. - text/xml
  2330. responses:
  2331. "200":
  2332. description: RSS
  2333. "400":
  2334. description: User id is not a number
  2335. "500":
  2336. description: Failed to get system customized profile | Failed to find memo
  2337. list | Failed to generate rss
  2338. summary: Get RSS for a user
  2339. tags:
  2340. - rss
  2341. swagger: "2.0"