swagger.yaml 52 KB

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