site.graphql 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246
  1. # ===============================================
  2. # SITES
  3. # ===============================================
  4. extend type Query {
  5. sites: [Site]
  6. siteById (
  7. id: UUID!
  8. ): Site
  9. siteByHostname (
  10. hostname: String!
  11. exact: Boolean!
  12. ): Site
  13. }
  14. extend type Mutation {
  15. createSite (
  16. hostname: String!
  17. title: String!
  18. ): SiteCreateResponse
  19. updateSite (
  20. id: UUID!
  21. patch: SiteUpdateInput!
  22. ): DefaultResponse
  23. uploadSiteLogo (
  24. id: UUID!
  25. image: Upload!
  26. ): DefaultResponse
  27. uploadSiteFavicon (
  28. id: UUID!
  29. image: Upload!
  30. ): DefaultResponse
  31. uploadSiteLoginBg (
  32. id: UUID!
  33. image: Upload!
  34. ): DefaultResponse
  35. deleteSite (
  36. id: UUID!
  37. ): DefaultResponse
  38. }
  39. # -----------------------------------------------
  40. # TYPES
  41. # -----------------------------------------------
  42. type Site {
  43. id: UUID
  44. hostname: String
  45. isEnabled: Boolean
  46. title: String
  47. description: String
  48. company: String
  49. contentLicense: String
  50. footerExtra: String
  51. pageExtensions: String
  52. pageCasing: Boolean
  53. logoText: Boolean
  54. sitemap: Boolean
  55. robots: SiteRobots
  56. features: SiteFeatures
  57. discoverable: Boolean
  58. defaults: SiteDefaults
  59. uploads: SiteUploads
  60. locales: SiteLocales
  61. editors: SiteEditors
  62. theme: SiteTheme
  63. }
  64. type SiteRobots {
  65. index: Boolean
  66. follow: Boolean
  67. }
  68. type SiteFeatures {
  69. browse: Boolean
  70. ratings: Boolean
  71. ratingsMode: SitePageRatingMode
  72. comments: Boolean
  73. contributions: Boolean
  74. profile: Boolean
  75. reasonForChange: SiteReasonForChangeMode
  76. search: Boolean
  77. }
  78. type SiteDefaults {
  79. tocDepth: PageTocDepth
  80. }
  81. type SiteUploads {
  82. conflictBehavior: SiteUploadConflictBehavior
  83. normalizeFilename: Boolean
  84. }
  85. type SiteLocales {
  86. primary: String
  87. active: [LocalizationLocale]
  88. }
  89. type SiteEditors {
  90. asciidoc: SiteEditor
  91. markdown: SiteEditor
  92. wysiwyg: SiteEditor
  93. }
  94. type SiteEditor {
  95. isActive: Boolean
  96. config: JSON
  97. }
  98. type SiteTheme {
  99. dark: Boolean
  100. codeBlocksTheme: String
  101. colorPrimary: String
  102. colorSecondary: String
  103. colorAccent: String
  104. colorHeader: String
  105. colorSidebar: String
  106. injectCSS: String
  107. injectHead: String
  108. injectBody: String
  109. contentWidth: SiteThemeWidth
  110. sidebarPosition: SiteThemePosition
  111. tocPosition: SiteThemePosition
  112. showSharingMenu: Boolean
  113. showPrintBtn: Boolean
  114. baseFont: String
  115. contentFont: String
  116. }
  117. enum SiteThemeWidth {
  118. full
  119. centered
  120. }
  121. enum SiteThemePosition {
  122. off
  123. left
  124. right
  125. }
  126. enum SitePageRatingMode {
  127. off
  128. thumbs
  129. stars
  130. }
  131. enum SiteReasonForChangeMode {
  132. off
  133. optional
  134. required
  135. }
  136. enum SiteUploadConflictBehavior {
  137. overwrite
  138. reject
  139. new
  140. }
  141. type SiteCreateResponse {
  142. operation: Operation
  143. site: Site
  144. }
  145. input SiteUpdateInput {
  146. hostname: String
  147. isEnabled: Boolean
  148. title: String
  149. description: String
  150. company: String
  151. contentLicense: String
  152. footerExtra: String
  153. pageExtensions: String
  154. pageCasing: Boolean
  155. logoText: Boolean
  156. sitemap: Boolean
  157. robots: SiteRobotsInput
  158. features: SiteFeaturesInput
  159. discoverable: Boolean
  160. defaults: SiteDefaultsInput
  161. uploads: SiteUploadsInput
  162. editors: SiteEditorsInput
  163. theme: SiteThemeInput
  164. }
  165. input SiteRobotsInput {
  166. index: Boolean
  167. follow: Boolean
  168. }
  169. input SiteFeaturesInput {
  170. browse: Boolean
  171. ratings: Boolean
  172. ratingsMode: SitePageRatingMode
  173. comments: Boolean
  174. contributions: Boolean
  175. profile: Boolean
  176. reasonForChange: SiteReasonForChangeMode
  177. search: Boolean
  178. }
  179. input SiteDefaultsInput {
  180. tocDepth: PageTocDepthInput
  181. }
  182. input SiteThemeInput {
  183. dark: Boolean
  184. codeBlocksTheme: String
  185. colorPrimary: String
  186. colorSecondary: String
  187. colorAccent: String
  188. colorHeader: String
  189. colorSidebar: String
  190. injectCSS: String
  191. injectHead: String
  192. injectBody: String
  193. contentWidth: SiteThemeWidth
  194. sidebarPosition: SiteThemePosition
  195. tocPosition: SiteThemePosition
  196. showSharingMenu: Boolean
  197. showPrintBtn: Boolean
  198. baseFont: String
  199. contentFont: String
  200. }
  201. input SiteEditorsInput {
  202. asciidoc: SiteEditorInput
  203. markdown: SiteEditorInput
  204. wysiwyg: SiteEditorInput
  205. }
  206. input SiteEditorInput {
  207. isActive: Boolean
  208. config: JSON
  209. }
  210. input SiteUploadsInput {
  211. conflictBehavior: SiteUploadConflictBehavior
  212. normalizeFilename: Boolean
  213. }