swagger.yaml 59 KB

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