@meshery/schemas 1.2.11 → 1.2.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (303) hide show
  1. package/dist/cloudApi.d.mts +9517 -9515
  2. package/dist/cloudApi.d.ts +9517 -9515
  3. package/dist/cloudApi.js +1 -1
  4. package/dist/cloudApi.mjs +1 -1
  5. package/dist/constructs/v1beta2/academy/AcademySchema.js +1 -1
  6. package/dist/constructs/v1beta2/academy/AcademySchema.mjs +1 -1
  7. package/dist/constructs/v1beta3/academy/Academy.js +1 -0
  8. package/dist/constructs/v1beta3/academy/Academy.mjs +0 -0
  9. package/dist/constructs/v1beta3/academy/AcademySchema.js +2 -0
  10. package/dist/constructs/v1beta3/academy/AcademySchema.mjs +2 -0
  11. package/dist/constructs/v1beta3/subscription/SubscriptionSchema.js +1 -1
  12. package/dist/constructs/v1beta3/subscription/SubscriptionSchema.mjs +1 -1
  13. package/dist/index.d.mts +34451 -89
  14. package/dist/index.d.ts +34451 -89
  15. package/dist/mesheryApi.d.mts +546 -546
  16. package/dist/mesheryApi.d.ts +546 -546
  17. package/package.json +1 -1
  18. package/dist/Core-CwYNKnjf.d.mts +0 -750
  19. package/dist/Core-CwYNKnjf.d.ts +0 -750
  20. package/dist/constructs/v1alpha1/capability/Capability.d.mts +0 -117
  21. package/dist/constructs/v1alpha1/capability/Capability.d.ts +0 -117
  22. package/dist/constructs/v1alpha1/capability/CapabilitySchema.d.mts +0 -7
  23. package/dist/constructs/v1alpha1/capability/CapabilitySchema.d.ts +0 -7
  24. package/dist/constructs/v1alpha1/core/Core.d.mts +0 -1
  25. package/dist/constructs/v1alpha1/core/Core.d.ts +0 -1
  26. package/dist/constructs/v1alpha1/core/CoreSchema.d.mts +0 -7
  27. package/dist/constructs/v1alpha1/core/CoreSchema.d.ts +0 -7
  28. package/dist/constructs/v1alpha2/catalog/Catalog.d.mts +0 -46
  29. package/dist/constructs/v1alpha2/catalog/Catalog.d.ts +0 -46
  30. package/dist/constructs/v1alpha2/catalog/CatalogSchema.d.mts +0 -7
  31. package/dist/constructs/v1alpha2/catalog/CatalogSchema.d.ts +0 -7
  32. package/dist/constructs/v1alpha3/relationship/Relationship.d.mts +0 -1742
  33. package/dist/constructs/v1alpha3/relationship/Relationship.d.ts +0 -1742
  34. package/dist/constructs/v1alpha3/relationship/RelationshipSchema.d.mts +0 -7
  35. package/dist/constructs/v1alpha3/relationship/RelationshipSchema.d.ts +0 -7
  36. package/dist/constructs/v1beta1/academy/Academy.d.mts +0 -6478
  37. package/dist/constructs/v1beta1/academy/Academy.d.ts +0 -6478
  38. package/dist/constructs/v1beta1/academy/AcademySchema.d.mts +0 -7
  39. package/dist/constructs/v1beta1/academy/AcademySchema.d.ts +0 -7
  40. package/dist/constructs/v1beta1/badge/Badge.d.mts +0 -547
  41. package/dist/constructs/v1beta1/badge/Badge.d.ts +0 -547
  42. package/dist/constructs/v1beta1/badge/BadgeSchema.d.mts +0 -7
  43. package/dist/constructs/v1beta1/badge/BadgeSchema.d.ts +0 -7
  44. package/dist/constructs/v1beta1/capability/Capability.d.mts +0 -117
  45. package/dist/constructs/v1beta1/capability/Capability.d.ts +0 -117
  46. package/dist/constructs/v1beta1/capability/CapabilitySchema.d.mts +0 -7
  47. package/dist/constructs/v1beta1/capability/CapabilitySchema.d.ts +0 -7
  48. package/dist/constructs/v1beta1/catalog/Catalog.d.mts +0 -46
  49. package/dist/constructs/v1beta1/catalog/Catalog.d.ts +0 -46
  50. package/dist/constructs/v1beta1/catalog/CatalogSchema.d.mts +0 -7
  51. package/dist/constructs/v1beta1/catalog/CatalogSchema.d.ts +0 -7
  52. package/dist/constructs/v1beta1/category/Category.d.mts +0 -34
  53. package/dist/constructs/v1beta1/category/Category.d.ts +0 -34
  54. package/dist/constructs/v1beta1/category/CategorySchema.d.mts +0 -7
  55. package/dist/constructs/v1beta1/category/CategorySchema.d.ts +0 -7
  56. package/dist/constructs/v1beta1/component/Component.d.mts +0 -773
  57. package/dist/constructs/v1beta1/component/Component.d.ts +0 -773
  58. package/dist/constructs/v1beta1/component/ComponentSchema.d.mts +0 -7
  59. package/dist/constructs/v1beta1/component/ComponentSchema.d.ts +0 -7
  60. package/dist/constructs/v1beta1/connection/Connection.d.mts +0 -1276
  61. package/dist/constructs/v1beta1/connection/Connection.d.ts +0 -1276
  62. package/dist/constructs/v1beta1/connection/ConnectionSchema.d.mts +0 -7
  63. package/dist/constructs/v1beta1/connection/ConnectionSchema.d.ts +0 -7
  64. package/dist/constructs/v1beta1/core/Core.d.mts +0 -742
  65. package/dist/constructs/v1beta1/core/Core.d.ts +0 -742
  66. package/dist/constructs/v1beta1/core/CoreSchema.d.mts +0 -7
  67. package/dist/constructs/v1beta1/core/CoreSchema.d.ts +0 -7
  68. package/dist/constructs/v1beta1/credential/Credential.d.mts +0 -545
  69. package/dist/constructs/v1beta1/credential/Credential.d.ts +0 -545
  70. package/dist/constructs/v1beta1/credential/CredentialSchema.d.mts +0 -7
  71. package/dist/constructs/v1beta1/credential/CredentialSchema.d.ts +0 -7
  72. package/dist/constructs/v1beta1/environment/Environment.d.mts +0 -774
  73. package/dist/constructs/v1beta1/environment/Environment.d.ts +0 -774
  74. package/dist/constructs/v1beta1/environment/EnvironmentSchema.d.mts +0 -7
  75. package/dist/constructs/v1beta1/environment/EnvironmentSchema.d.ts +0 -7
  76. package/dist/constructs/v1beta1/evaluation/Evaluation.d.mts +0 -5723
  77. package/dist/constructs/v1beta1/evaluation/Evaluation.d.ts +0 -5723
  78. package/dist/constructs/v1beta1/evaluation/EvaluationSchema.d.mts +0 -7
  79. package/dist/constructs/v1beta1/evaluation/EvaluationSchema.d.ts +0 -7
  80. package/dist/constructs/v1beta1/event/Event.d.mts +0 -581
  81. package/dist/constructs/v1beta1/event/Event.d.ts +0 -581
  82. package/dist/constructs/v1beta1/event/EventSchema.d.mts +0 -7
  83. package/dist/constructs/v1beta1/event/EventSchema.d.ts +0 -7
  84. package/dist/constructs/v1beta1/feature/Feature.d.mts +0 -277
  85. package/dist/constructs/v1beta1/feature/Feature.d.ts +0 -277
  86. package/dist/constructs/v1beta1/feature/FeatureSchema.d.mts +0 -7
  87. package/dist/constructs/v1beta1/feature/FeatureSchema.d.ts +0 -7
  88. package/dist/constructs/v1beta1/invitation/Invitation.d.mts +0 -1002
  89. package/dist/constructs/v1beta1/invitation/Invitation.d.ts +0 -1002
  90. package/dist/constructs/v1beta1/invitation/InvitationSchema.d.mts +0 -7
  91. package/dist/constructs/v1beta1/invitation/InvitationSchema.d.ts +0 -7
  92. package/dist/constructs/v1beta1/key/Key.d.mts +0 -513
  93. package/dist/constructs/v1beta1/key/Key.d.ts +0 -513
  94. package/dist/constructs/v1beta1/key/KeySchema.d.mts +0 -7
  95. package/dist/constructs/v1beta1/key/KeySchema.d.ts +0 -7
  96. package/dist/constructs/v1beta1/keychain/Keychain.d.mts +0 -641
  97. package/dist/constructs/v1beta1/keychain/Keychain.d.ts +0 -641
  98. package/dist/constructs/v1beta1/keychain/KeychainSchema.d.mts +0 -7
  99. package/dist/constructs/v1beta1/keychain/KeychainSchema.d.ts +0 -7
  100. package/dist/constructs/v1beta1/model/Model.d.mts +0 -566
  101. package/dist/constructs/v1beta1/model/Model.d.ts +0 -566
  102. package/dist/constructs/v1beta1/model/ModelSchema.d.mts +0 -7
  103. package/dist/constructs/v1beta1/model/ModelSchema.d.ts +0 -7
  104. package/dist/constructs/v1beta1/organization/Organization.d.mts +0 -1673
  105. package/dist/constructs/v1beta1/organization/Organization.d.ts +0 -1673
  106. package/dist/constructs/v1beta1/organization/OrganizationSchema.d.mts +0 -7
  107. package/dist/constructs/v1beta1/organization/OrganizationSchema.d.ts +0 -7
  108. package/dist/constructs/v1beta1/pattern/Pattern.d.mts +0 -16729
  109. package/dist/constructs/v1beta1/pattern/Pattern.d.ts +0 -16729
  110. package/dist/constructs/v1beta1/pattern/PatternSchema.d.mts +0 -7
  111. package/dist/constructs/v1beta1/pattern/PatternSchema.d.ts +0 -7
  112. package/dist/constructs/v1beta1/plan/Plan.d.mts +0 -148
  113. package/dist/constructs/v1beta1/plan/Plan.d.ts +0 -148
  114. package/dist/constructs/v1beta1/plan/PlanSchema.d.mts +0 -7
  115. package/dist/constructs/v1beta1/plan/PlanSchema.d.ts +0 -7
  116. package/dist/constructs/v1beta1/relationship/Relationship.d.mts +0 -1726
  117. package/dist/constructs/v1beta1/relationship/Relationship.d.ts +0 -1726
  118. package/dist/constructs/v1beta1/relationship/RelationshipSchema.d.mts +0 -7
  119. package/dist/constructs/v1beta1/relationship/RelationshipSchema.d.ts +0 -7
  120. package/dist/constructs/v1beta1/role/Role.d.mts +0 -744
  121. package/dist/constructs/v1beta1/role/Role.d.ts +0 -744
  122. package/dist/constructs/v1beta1/role/RoleSchema.d.mts +0 -7
  123. package/dist/constructs/v1beta1/role/RoleSchema.d.ts +0 -7
  124. package/dist/constructs/v1beta1/schedule/Schedule.d.mts +0 -373
  125. package/dist/constructs/v1beta1/schedule/Schedule.d.ts +0 -373
  126. package/dist/constructs/v1beta1/schedule/ScheduleSchema.d.mts +0 -7
  127. package/dist/constructs/v1beta1/schedule/ScheduleSchema.d.ts +0 -7
  128. package/dist/constructs/v1beta1/subcategory/Subcategory.d.mts +0 -23
  129. package/dist/constructs/v1beta1/subcategory/Subcategory.d.ts +0 -23
  130. package/dist/constructs/v1beta1/subcategory/SubcategorySchema.d.mts +0 -7
  131. package/dist/constructs/v1beta1/subcategory/SubcategorySchema.d.ts +0 -7
  132. package/dist/constructs/v1beta1/subscription/Subscription.d.mts +0 -715
  133. package/dist/constructs/v1beta1/subscription/Subscription.d.ts +0 -715
  134. package/dist/constructs/v1beta1/subscription/SubscriptionSchema.d.mts +0 -7
  135. package/dist/constructs/v1beta1/subscription/SubscriptionSchema.d.ts +0 -7
  136. package/dist/constructs/v1beta1/support/Support.d.mts +0 -90
  137. package/dist/constructs/v1beta1/support/Support.d.ts +0 -90
  138. package/dist/constructs/v1beta1/support/SupportSchema.d.mts +0 -7
  139. package/dist/constructs/v1beta1/support/SupportSchema.d.ts +0 -7
  140. package/dist/constructs/v1beta1/team/Team.d.mts +0 -863
  141. package/dist/constructs/v1beta1/team/Team.d.ts +0 -863
  142. package/dist/constructs/v1beta1/team/TeamSchema.d.mts +0 -7
  143. package/dist/constructs/v1beta1/team/TeamSchema.d.ts +0 -7
  144. package/dist/constructs/v1beta1/token/Token.d.mts +0 -538
  145. package/dist/constructs/v1beta1/token/Token.d.ts +0 -538
  146. package/dist/constructs/v1beta1/token/TokenSchema.d.mts +0 -7
  147. package/dist/constructs/v1beta1/token/TokenSchema.d.ts +0 -7
  148. package/dist/constructs/v1beta1/user/User.d.mts +0 -1831
  149. package/dist/constructs/v1beta1/user/User.d.ts +0 -1831
  150. package/dist/constructs/v1beta1/user/UserSchema.d.mts +0 -7
  151. package/dist/constructs/v1beta1/user/UserSchema.d.ts +0 -7
  152. package/dist/constructs/v1beta1/view/View.d.mts +0 -802
  153. package/dist/constructs/v1beta1/view/View.d.ts +0 -802
  154. package/dist/constructs/v1beta1/view/ViewSchema.d.mts +0 -7
  155. package/dist/constructs/v1beta1/view/ViewSchema.d.ts +0 -7
  156. package/dist/constructs/v1beta1/workspace/Workspace.d.mts +0 -4672
  157. package/dist/constructs/v1beta1/workspace/Workspace.d.ts +0 -4672
  158. package/dist/constructs/v1beta1/workspace/WorkspaceSchema.d.mts +0 -7
  159. package/dist/constructs/v1beta1/workspace/WorkspaceSchema.d.ts +0 -7
  160. package/dist/constructs/v1beta2/academy/Academy.d.mts +0 -7823
  161. package/dist/constructs/v1beta2/academy/Academy.d.ts +0 -7823
  162. package/dist/constructs/v1beta2/academy/AcademySchema.d.mts +0 -7
  163. package/dist/constructs/v1beta2/academy/AcademySchema.d.ts +0 -7
  164. package/dist/constructs/v1beta2/badge/Badge.d.mts +0 -564
  165. package/dist/constructs/v1beta2/badge/Badge.d.ts +0 -564
  166. package/dist/constructs/v1beta2/badge/BadgeSchema.d.mts +0 -7
  167. package/dist/constructs/v1beta2/badge/BadgeSchema.d.ts +0 -7
  168. package/dist/constructs/v1beta2/catalog/Catalog.d.mts +0 -46
  169. package/dist/constructs/v1beta2/catalog/Catalog.d.ts +0 -46
  170. package/dist/constructs/v1beta2/catalog/CatalogSchema.d.mts +0 -7
  171. package/dist/constructs/v1beta2/catalog/CatalogSchema.d.ts +0 -7
  172. package/dist/constructs/v1beta2/component/Component.d.mts +0 -791
  173. package/dist/constructs/v1beta2/component/Component.d.ts +0 -791
  174. package/dist/constructs/v1beta2/component/ComponentSchema.d.mts +0 -7
  175. package/dist/constructs/v1beta2/component/ComponentSchema.d.ts +0 -7
  176. package/dist/constructs/v1beta2/connection/Connection.d.mts +0 -1306
  177. package/dist/constructs/v1beta2/connection/Connection.d.ts +0 -1306
  178. package/dist/constructs/v1beta2/connection/ConnectionSchema.d.mts +0 -7
  179. package/dist/constructs/v1beta2/connection/ConnectionSchema.d.ts +0 -7
  180. package/dist/constructs/v1beta2/core/Core.d.mts +0 -776
  181. package/dist/constructs/v1beta2/core/Core.d.ts +0 -776
  182. package/dist/constructs/v1beta2/core/CoreSchema.d.mts +0 -7
  183. package/dist/constructs/v1beta2/core/CoreSchema.d.ts +0 -7
  184. package/dist/constructs/v1beta2/credential/Credential.d.mts +0 -536
  185. package/dist/constructs/v1beta2/credential/Credential.d.ts +0 -536
  186. package/dist/constructs/v1beta2/credential/CredentialSchema.d.mts +0 -7
  187. package/dist/constructs/v1beta2/credential/CredentialSchema.d.ts +0 -7
  188. package/dist/constructs/v1beta2/design/Design.d.mts +0 -17361
  189. package/dist/constructs/v1beta2/design/Design.d.ts +0 -17361
  190. package/dist/constructs/v1beta2/design/DesignSchema.d.mts +0 -7
  191. package/dist/constructs/v1beta2/design/DesignSchema.d.ts +0 -7
  192. package/dist/constructs/v1beta2/event/Event.d.mts +0 -637
  193. package/dist/constructs/v1beta2/event/Event.d.ts +0 -637
  194. package/dist/constructs/v1beta2/event/EventSchema.d.mts +0 -7
  195. package/dist/constructs/v1beta2/event/EventSchema.d.ts +0 -7
  196. package/dist/constructs/v1beta2/invitation/Invitation.d.mts +0 -1071
  197. package/dist/constructs/v1beta2/invitation/Invitation.d.ts +0 -1071
  198. package/dist/constructs/v1beta2/invitation/InvitationSchema.d.mts +0 -7
  199. package/dist/constructs/v1beta2/invitation/InvitationSchema.d.ts +0 -7
  200. package/dist/constructs/v1beta2/key/Key.d.mts +0 -523
  201. package/dist/constructs/v1beta2/key/Key.d.ts +0 -523
  202. package/dist/constructs/v1beta2/key/KeySchema.d.mts +0 -7
  203. package/dist/constructs/v1beta2/key/KeySchema.d.ts +0 -7
  204. package/dist/constructs/v1beta2/keychain/Keychain.d.mts +0 -651
  205. package/dist/constructs/v1beta2/keychain/Keychain.d.ts +0 -651
  206. package/dist/constructs/v1beta2/keychain/KeychainSchema.d.mts +0 -7
  207. package/dist/constructs/v1beta2/keychain/KeychainSchema.d.ts +0 -7
  208. package/dist/constructs/v1beta2/model/Model.d.mts +0 -604
  209. package/dist/constructs/v1beta2/model/Model.d.ts +0 -604
  210. package/dist/constructs/v1beta2/model/ModelSchema.d.mts +0 -7
  211. package/dist/constructs/v1beta2/model/ModelSchema.d.ts +0 -7
  212. package/dist/constructs/v1beta2/organization/Organization.d.mts +0 -1986
  213. package/dist/constructs/v1beta2/organization/Organization.d.ts +0 -1986
  214. package/dist/constructs/v1beta2/organization/OrganizationSchema.d.mts +0 -7
  215. package/dist/constructs/v1beta2/organization/OrganizationSchema.d.ts +0 -7
  216. package/dist/constructs/v1beta2/plan/Plan.d.mts +0 -161
  217. package/dist/constructs/v1beta2/plan/Plan.d.ts +0 -161
  218. package/dist/constructs/v1beta2/plan/PlanSchema.d.mts +0 -7
  219. package/dist/constructs/v1beta2/plan/PlanSchema.d.ts +0 -7
  220. package/dist/constructs/v1beta2/relationship/Relationship.d.mts +0 -1884
  221. package/dist/constructs/v1beta2/relationship/Relationship.d.ts +0 -1884
  222. package/dist/constructs/v1beta2/relationship/RelationshipSchema.d.mts +0 -7
  223. package/dist/constructs/v1beta2/relationship/RelationshipSchema.d.ts +0 -7
  224. package/dist/constructs/v1beta2/role/Role.d.mts +0 -751
  225. package/dist/constructs/v1beta2/role/Role.d.ts +0 -751
  226. package/dist/constructs/v1beta2/role/RoleSchema.d.mts +0 -7
  227. package/dist/constructs/v1beta2/role/RoleSchema.d.ts +0 -7
  228. package/dist/constructs/v1beta2/schedule/Schedule.d.mts +0 -430
  229. package/dist/constructs/v1beta2/schedule/Schedule.d.ts +0 -430
  230. package/dist/constructs/v1beta2/schedule/ScheduleSchema.d.mts +0 -7
  231. package/dist/constructs/v1beta2/schedule/ScheduleSchema.d.ts +0 -7
  232. package/dist/constructs/v1beta2/subscription/Subscription.d.mts +0 -748
  233. package/dist/constructs/v1beta2/subscription/Subscription.d.ts +0 -748
  234. package/dist/constructs/v1beta2/subscription/SubscriptionSchema.d.mts +0 -7
  235. package/dist/constructs/v1beta2/subscription/SubscriptionSchema.d.ts +0 -7
  236. package/dist/constructs/v1beta2/team/Team.d.mts +0 -977
  237. package/dist/constructs/v1beta2/team/Team.d.ts +0 -977
  238. package/dist/constructs/v1beta2/team/TeamSchema.d.mts +0 -7
  239. package/dist/constructs/v1beta2/team/TeamSchema.d.ts +0 -7
  240. package/dist/constructs/v1beta2/token/Token.d.mts +0 -543
  241. package/dist/constructs/v1beta2/token/Token.d.ts +0 -543
  242. package/dist/constructs/v1beta2/token/TokenSchema.d.mts +0 -7
  243. package/dist/constructs/v1beta2/token/TokenSchema.d.ts +0 -7
  244. package/dist/constructs/v1beta2/user/User.d.mts +0 -1831
  245. package/dist/constructs/v1beta2/user/User.d.ts +0 -1831
  246. package/dist/constructs/v1beta2/user/UserSchema.d.mts +0 -7
  247. package/dist/constructs/v1beta2/user/UserSchema.d.ts +0 -7
  248. package/dist/constructs/v1beta2/view/View.d.mts +0 -810
  249. package/dist/constructs/v1beta2/view/View.d.ts +0 -810
  250. package/dist/constructs/v1beta2/view/ViewSchema.d.mts +0 -7
  251. package/dist/constructs/v1beta2/view/ViewSchema.d.ts +0 -7
  252. package/dist/constructs/v1beta3/component/Component.d.mts +0 -796
  253. package/dist/constructs/v1beta3/component/Component.d.ts +0 -796
  254. package/dist/constructs/v1beta3/component/ComponentSchema.d.mts +0 -7
  255. package/dist/constructs/v1beta3/component/ComponentSchema.d.ts +0 -7
  256. package/dist/constructs/v1beta3/connection/Connection.d.mts +0 -1390
  257. package/dist/constructs/v1beta3/connection/Connection.d.ts +0 -1390
  258. package/dist/constructs/v1beta3/connection/ConnectionSchema.d.mts +0 -7
  259. package/dist/constructs/v1beta3/connection/ConnectionSchema.d.ts +0 -7
  260. package/dist/constructs/v1beta3/design/Design.d.mts +0 -5610
  261. package/dist/constructs/v1beta3/design/Design.d.ts +0 -5610
  262. package/dist/constructs/v1beta3/design/DesignSchema.d.mts +0 -7
  263. package/dist/constructs/v1beta3/design/DesignSchema.d.ts +0 -7
  264. package/dist/constructs/v1beta3/environment/Environment.d.mts +0 -800
  265. package/dist/constructs/v1beta3/environment/Environment.d.ts +0 -800
  266. package/dist/constructs/v1beta3/environment/EnvironmentSchema.d.mts +0 -7
  267. package/dist/constructs/v1beta3/environment/EnvironmentSchema.d.ts +0 -7
  268. package/dist/constructs/v1beta3/event/Event.d.mts +0 -733
  269. package/dist/constructs/v1beta3/event/Event.d.ts +0 -733
  270. package/dist/constructs/v1beta3/event/EventSchema.d.mts +0 -7
  271. package/dist/constructs/v1beta3/event/EventSchema.d.ts +0 -7
  272. package/dist/constructs/v1beta3/filter/Filter.d.mts +0 -1385
  273. package/dist/constructs/v1beta3/filter/Filter.d.ts +0 -1385
  274. package/dist/constructs/v1beta3/filter/FilterSchema.d.mts +0 -7
  275. package/dist/constructs/v1beta3/filter/FilterSchema.d.ts +0 -7
  276. package/dist/constructs/v1beta3/invitation/Invitation.d.mts +0 -1079
  277. package/dist/constructs/v1beta3/invitation/Invitation.d.ts +0 -1079
  278. package/dist/constructs/v1beta3/invitation/InvitationSchema.d.mts +0 -7
  279. package/dist/constructs/v1beta3/invitation/InvitationSchema.d.ts +0 -7
  280. package/dist/constructs/v1beta3/performance_profile/PerformanceProfile.d.mts +0 -832
  281. package/dist/constructs/v1beta3/performance_profile/PerformanceProfile.d.ts +0 -832
  282. package/dist/constructs/v1beta3/performance_profile/PerformanceProfileSchema.d.mts +0 -7
  283. package/dist/constructs/v1beta3/performance_profile/PerformanceProfileSchema.d.ts +0 -7
  284. package/dist/constructs/v1beta3/plan/Plan.d.mts +0 -198
  285. package/dist/constructs/v1beta3/plan/Plan.d.ts +0 -198
  286. package/dist/constructs/v1beta3/plan/PlanSchema.d.mts +0 -7
  287. package/dist/constructs/v1beta3/plan/PlanSchema.d.ts +0 -7
  288. package/dist/constructs/v1beta3/relationship/Relationship.d.mts +0 -1884
  289. package/dist/constructs/v1beta3/relationship/Relationship.d.ts +0 -1884
  290. package/dist/constructs/v1beta3/relationship/RelationshipSchema.d.mts +0 -7
  291. package/dist/constructs/v1beta3/relationship/RelationshipSchema.d.ts +0 -7
  292. package/dist/constructs/v1beta3/subscription/Subscription.d.mts +0 -876
  293. package/dist/constructs/v1beta3/subscription/Subscription.d.ts +0 -876
  294. package/dist/constructs/v1beta3/subscription/SubscriptionSchema.d.mts +0 -7
  295. package/dist/constructs/v1beta3/subscription/SubscriptionSchema.d.ts +0 -7
  296. package/dist/constructs/v1beta3/token/Token.d.mts +0 -543
  297. package/dist/constructs/v1beta3/token/Token.d.ts +0 -543
  298. package/dist/constructs/v1beta3/token/TokenSchema.d.mts +0 -7
  299. package/dist/constructs/v1beta3/token/TokenSchema.d.ts +0 -7
  300. package/dist/constructs/v1beta3/workspace/Workspace.d.mts +0 -4811
  301. package/dist/constructs/v1beta3/workspace/Workspace.d.ts +0 -4811
  302. package/dist/constructs/v1beta3/workspace/WorkspaceSchema.d.mts +0 -7
  303. package/dist/constructs/v1beta3/workspace/WorkspaceSchema.d.ts +0 -7
@@ -1,2 +1,2 @@
1
- 'use strict';var e={openapi:"3.0.0",info:{title:"Academy API",description:"OpenAPI schema for Meshery Academy content and curriculum management.",version:"v1beta2",contact:{name:"Meshery Maintainers",email:"maintainers@meshery.io",url:"https://meshery.io"},license:{name:"Apache 2.0",url:"https://www.apache.org/licenses/LICENSE-2.0.html"}},security:[{jwt:[]}],tags:[{name:"Academy",description:"Operations related to Meshery Academy content and curriculum"}],paths:{"/api/academy/curricula/registered":{get:{"x-internal":["cloud"],tags:["Academy"],operationId:"getMyAcademyCurricula",summary:"Get academy content",description:"Returns a list of academy content registered by the user with optional filtering.",parameters:[{name:"contentType",in:"query",description:"Filter content by content types",required:false,style:"form",explode:true,schema:{type:"array",items:{type:"string"}}},{name:"orgId",in:"query",description:"Filter content by organization IDs",required:false,style:"form",explode:true,schema:{type:"array",items:{type:"string"}}}],responses:{200:{description:"A list of content with total count",content:{"application/json":{schema:{type:"object",properties:{total:{type:"integer",description:"Total number of Curricula",example:7,minimum:0},data:{type:"array",items:{"x-go-type":"AcademyCurricula",type:"object",additionalProperties:false,description:"AcademyCurricula entity schema.",required:["id","type","org_id","visibility","status","slug","created_at","updated_at","deleted_at","metadata","level"],properties:{id:{type:"string",description:"Id of the Curricula",example:"923458-3490394-934893","x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},maxLength:500,format:"uuid"},type:{"x-go-type":"ContentType","x-oapi-codegen-extra-tags":{db:"type"},type:"string",enum:["learning-path","challenge","certification"]},org_id:{type:"string",description:"Organization ID that owns this learning path",example:"layer5","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"}},visibility:{description:"Visibility of the Curricula","x-go-type":"Visibility","x-oapi-codegen-extra-tags":{db:"visibility",json:"visibility"},type:"string",enum:["public","private"]},status:{example:"ready",description:"Status of the Curricula","x-go-type":"Status","x-oapi-codegen-extra-tags":{db:"status",json:"status"},type:"string",enum:["ready","archived","not_ready"]},slug:{type:"string",description:"slug of the Curricula",example:"intro-kubernetes-course",maxLength:500},level:{description:"Level of the Curricula","x-go-type":"Level","x-oapi-codegen-extra-tags":{db:"level",json:"level"},type:"string",enum:["beginner","intermediate","advanced"]},badge_id:{type:"string",format:"uuid",description:"ID of the badge to be awarded on completion of this curricula","x-go-type":"core.Uuid","x-go-type-import":{path:"github.com/meshery/schemas/models/core",name:"core"},"x-oapi-codegen-extra-tags":{db:"badge_id",json:"badge_id"}},invite_id:{allOf:[{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}}],description:"ID of the invite associated with this Curricula","x-oapi-codegen-extra-tags":{db:"invite_id",json:"invite_id"}},workspace_id:{allOf:[{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}}],description:"ID of the workspace to which this Curricula belongs","x-oapi-codegen-extra-tags":{db:"workspace_id",json:"workspace_id"}},created_at:{allOf:[{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}],description:"When the Curricula item was created","x-oapi-codegen-extra-tags":{db:"created_at",json:"created_at"}},updated_at:{allOf:[{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}],description:"When the Curricula was last updated","x-go-type":"core.Time","x-oapi-codegen-extra-tags":{db:"updated_at",json:"updated_at"}},deleted_at:{allOf:[{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true}],"x-go-type":"core.NullTime","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deleted_at"}},metadata:{type:"object",description:"Additional metadata about the Curricula",additionalProperties:true,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata"},oneOf:[{"x-go-type":"CurriculaMetadata",type:"object",properties:{title:{type:"string",description:"Title of the learning path",example:"Mastering Kubernetes for Engineers",maxLength:500},description:{type:"string",description:"Short description of the curricula",example:"Learn how to configure your Kubernetes clusters and manage the lifecycle of your workloads",maxLength:5e3},detailedDescription:{type:"string",description:"Detailed description of the curricula",example:"This learning path covers everything from Kubernetes architecture to advanced deployment strategies, including hands-on labs and real-world scenarios.",maxLength:500},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},permalink:{type:"string",format:"uri",description:"Canonical URL for the learning path",example:"http://localhost:9876/academy/learning-paths/layer5/mastering-kubernetes-for-engineers/"},certificate:{"x-go-type":"Certificate",type:"object",required:["id","orgId","title","description","issuingAuthorities","issuedDate","recipientId","recipientName"],properties:{id:{type:"string",description:"Unique identifier for the certificate",example:"550e8400-e29b-41d4-a716-446655440000","x-go-name":"ID",maxLength:500,format:"uuid"},orgId:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},recipientId:{type:"string",description:"ID of the recipient (user) who received the certificate",example:"550e8400-e29b-41d4-a716-446655440001",maxLength:500,format:"uuid"},recipientName:{type:"string",description:"Name of the recipient (user) who received the certificate",example:"John Doe",maxLength:500},title:{type:"string",description:"Title of the certificate",example:"Kubernetes Expert Certification",maxLength:500},description:{type:"string",description:"Description of the certificate",example:"Awarded for successfully completing the Kubernetes Expert course",maxLength:5e3},issuingAuthorities:{type:"array",items:{"x-go-type":"CertificateIssuingAuthority",type:"object",required:["name","url"],properties:{name:{type:"string",description:"Name of the issuing authority",example:"Cloud Native Foundation",minLength:1,maxLength:255},role:{type:"string",description:"Role of the issuing authority",example:"COO",maxLength:500},signatureUrl:{type:"string",format:"uri",description:"URL to the signature image of the issuing authority should be a publicly accessible URL and transparent PNG or SVG format",example:"http://localhost:9876/signatures/cloud-native-foundation.png"}}},description:"List of issuing authorities for the certificate"},issuedDate:{type:"string",format:"date-time",description:"Date when the certificate was issued",example:"2023-10-01 12:00:00+00:00"},expirationDate:{type:"string",format:"date-time",description:"Date when the certificate expires. Dynamically calculated from issued_date and expires_in; not specified by instructors.",example:"2025-10-01 12:00:00+00:00"},expiresIn:{type:"integer",description:"Number of months after which the certificate expires",example:24,minimum:0}}},children:{type:"array",description:"List of children items in the top-level curricula",items:{"x-go-type":"ChildNode",type:"object",properties:{id:{type:"string",description:"Unique identifier for the course",example:"550e8400-e29b-41d4-a716-446655440002","x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},maxLength:500,format:"uuid"},title:{type:"string",description:"Title of the course",example:"Kubernetes Basics",maxLength:500},permalink:{type:"string",format:"uri",description:"URL to the course content",example:"http://localhost:9876/academy/learning-paths/layer5/intro-kubernetes-course/kubernetes/"},description:{type:"string",description:"Course description",example:"Learn the basics of Kubernetes",maxLength:5e3},weight:{type:"number",description:"A numeric value to determine the display order. A smaller number appears first. If not specified, items will be sorted alphabetically by title.",example:"eg 1 , 2",minimum:0},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},type:{"x-go-type":"ContentType",description:"Type of the content (e.g., learning-path, challenge, certification)",type:"string",enum:["learning-path","challenge","certification"]},children:{type:"array",description:"List of child nodes (sub-courses or modules)",items:{type:"object","x-go-type":"ChildNode"}}},required:["title","description","id","permalink"]}}},required:["title","description","permalink"]}]}}},description:"The data of the academycurriculalistresponse."}},required:["total","data"]}}}},400:{description:"Invalid request parameters"},401:{description:"Expired JWT token used or insufficient privilege",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Server error"}}}},"/api/academy/curricula":{post:{"x-internal":["cloud"],tags:["Academy"],operationId:"createAcademyCurricula",summary:"Create a new academy curricula",description:"Creates a new academy curricula with the provided details.",requestBody:{required:true,content:{"application/json":{schema:{type:"object",properties:{type:{description:"Type of the curricula","x-go-name":"Type","x-go-type":"ContentType","x-oapi-codegen-extra-tags":{json:"type"},type:"string",enum:["learning-path","challenge","certification"]},title:{type:"string",description:"Title of the curricula",example:"Introduction to Kubernetes","x-go-name":"Title","x-oapi-codegen-extra-tags":{json:"title"},maxLength:500},org_id:{type:"string",description:"Organization ID that owns this learning path",example:"layer5","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"}},workspace_id:{allOf:[{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}}],description:"ID of the workspace to which this Curricula belongs","x-oapi-codegen-extra-tags":{db:"workspace_id",json:"workspace_id"}},badge_id:{type:"string",format:"uuid",description:"ID of the badge to be awarded on completion of this curricula","x-go-type":"core.Uuid","x-go-type-import":{path:"github.com/meshery/schemas/models/core",name:"core"},"x-oapi-codegen-extra-tags":{db:"badge_id",json:"badge_id"}},team_id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-go-name":"TeamId","x-oapi-codegen-extra-tags":{json:"team_id",db:"team_id"}},access_expires_at:{allOf:[{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}],description:"Expiry time for curricula access","x-go-type":"*time.Time","x-oapi-codegen-extra-tags":{json:"access_expires_at",db:"access_expires_at"}},access_status:{description:"Current access status of the curricula","x-go-name":"AccessStatus","x-go-type":"invitationv1beta2.InvitationStatus","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta2/invitation",name:"invitationv1beta2"},"x-oapi-codegen-extra-tags":{json:"access_status",db:"access_status"},type:"string",enum:["enabled","disabled"]},metadata:{type:"object",description:"Additional metadata about the Curricula",additionalProperties:true,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata"},oneOf:[{"x-go-type":"CurriculaMetadata",type:"object",properties:{title:{type:"string",description:"Title of the learning path",example:"Mastering Kubernetes for Engineers",maxLength:500},description:{type:"string",description:"Short description of the curricula",example:"Learn how to configure your Kubernetes clusters and manage the lifecycle of your workloads",maxLength:5e3},detailedDescription:{type:"string",description:"Detailed description of the curricula",example:"This learning path covers everything from Kubernetes architecture to advanced deployment strategies, including hands-on labs and real-world scenarios.",maxLength:500},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},permalink:{type:"string",format:"uri",description:"Canonical URL for the learning path",example:"http://localhost:9876/academy/learning-paths/layer5/mastering-kubernetes-for-engineers/"},certificate:{"x-go-type":"Certificate",type:"object",required:["id","orgId","title","description","issuingAuthorities","issuedDate","recipientId","recipientName"],properties:{id:{type:"string",description:"Unique identifier for the certificate",example:"550e8400-e29b-41d4-a716-446655440000","x-go-name":"ID",maxLength:500,format:"uuid"},orgId:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},recipientId:{type:"string",description:"ID of the recipient (user) who received the certificate",example:"550e8400-e29b-41d4-a716-446655440001",maxLength:500,format:"uuid"},recipientName:{type:"string",description:"Name of the recipient (user) who received the certificate",example:"John Doe",maxLength:500},title:{type:"string",description:"Title of the certificate",example:"Kubernetes Expert Certification",maxLength:500},description:{type:"string",description:"Description of the certificate",example:"Awarded for successfully completing the Kubernetes Expert course",maxLength:5e3},issuingAuthorities:{type:"array",items:{"x-go-type":"CertificateIssuingAuthority",type:"object",required:["name","url"],properties:{name:{type:"string",description:"Name of the issuing authority",example:"Cloud Native Foundation",minLength:1,maxLength:255},role:{type:"string",description:"Role of the issuing authority",example:"COO",maxLength:500},signatureUrl:{type:"string",format:"uri",description:"URL to the signature image of the issuing authority should be a publicly accessible URL and transparent PNG or SVG format",example:"http://localhost:9876/signatures/cloud-native-foundation.png"}}},description:"List of issuing authorities for the certificate"},issuedDate:{type:"string",format:"date-time",description:"Date when the certificate was issued",example:"2023-10-01 12:00:00+00:00"},expirationDate:{type:"string",format:"date-time",description:"Date when the certificate expires. Dynamically calculated from issued_date and expires_in; not specified by instructors.",example:"2025-10-01 12:00:00+00:00"},expiresIn:{type:"integer",description:"Number of months after which the certificate expires",example:24,minimum:0}}},children:{type:"array",description:"List of children items in the top-level curricula",items:{"x-go-type":"ChildNode",type:"object",properties:{id:{type:"string",description:"Unique identifier for the course",example:"550e8400-e29b-41d4-a716-446655440002","x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},maxLength:500,format:"uuid"},title:{type:"string",description:"Title of the course",example:"Kubernetes Basics",maxLength:500},permalink:{type:"string",format:"uri",description:"URL to the course content",example:"http://localhost:9876/academy/learning-paths/layer5/intro-kubernetes-course/kubernetes/"},description:{type:"string",description:"Course description",example:"Learn the basics of Kubernetes",maxLength:5e3},weight:{type:"number",description:"A numeric value to determine the display order. A smaller number appears first. If not specified, items will be sorted alphabetically by title.",example:"eg 1 , 2",minimum:0},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},type:{"x-go-type":"ContentType",description:"Type of the content (e.g., learning-path, challenge, certification)",type:"string",enum:["learning-path","challenge","certification"]},children:{type:"array",description:"List of child nodes (sub-courses or modules)",items:{type:"object","x-go-type":"ChildNode"}}},required:["title","description","id","permalink"]}}},required:["title","description","permalink"]}]}},required:["type","title","org_id","workspace_id","team_id","access_status","metadata"]}}}},responses:{201:{description:"created the curricula",content:{"application/json":{schema:{type:"object",additionalProperties:false,description:"AcademyCurricula entity schema.",required:["id","type","org_id","visibility","status","slug","created_at","updated_at","deleted_at","metadata","level"],properties:{id:{type:"string",description:"Id of the Curricula",example:"923458-3490394-934893","x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},maxLength:500,format:"uuid"},type:{"x-go-type":"ContentType","x-oapi-codegen-extra-tags":{db:"type"},type:"string",enum:["learning-path","challenge","certification"]},org_id:{type:"string",description:"Organization ID that owns this learning path",example:"layer5","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"}},visibility:{description:"Visibility of the Curricula","x-go-type":"Visibility","x-oapi-codegen-extra-tags":{db:"visibility",json:"visibility"},type:"string",enum:["public","private"]},status:{example:"ready",description:"Status of the Curricula","x-go-type":"Status","x-oapi-codegen-extra-tags":{db:"status",json:"status"},type:"string",enum:["ready","archived","not_ready"]},slug:{type:"string",description:"slug of the Curricula",example:"intro-kubernetes-course",maxLength:500},level:{description:"Level of the Curricula","x-go-type":"Level","x-oapi-codegen-extra-tags":{db:"level",json:"level"},type:"string",enum:["beginner","intermediate","advanced"]},badge_id:{type:"string",format:"uuid",description:"ID of the badge to be awarded on completion of this curricula","x-go-type":"core.Uuid","x-go-type-import":{path:"github.com/meshery/schemas/models/core",name:"core"},"x-oapi-codegen-extra-tags":{db:"badge_id",json:"badge_id"}},invite_id:{allOf:[{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}}],description:"ID of the invite associated with this Curricula","x-oapi-codegen-extra-tags":{db:"invite_id",json:"invite_id"}},workspace_id:{allOf:[{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}}],description:"ID of the workspace to which this Curricula belongs","x-oapi-codegen-extra-tags":{db:"workspace_id",json:"workspace_id"}},created_at:{allOf:[{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}],description:"When the Curricula item was created","x-oapi-codegen-extra-tags":{db:"created_at",json:"created_at"}},updated_at:{allOf:[{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}],description:"When the Curricula was last updated","x-go-type":"core.Time","x-oapi-codegen-extra-tags":{db:"updated_at",json:"updated_at"}},deleted_at:{allOf:[{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true}],"x-go-type":"core.NullTime","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deleted_at"}},metadata:{type:"object",description:"Additional metadata about the Curricula",additionalProperties:true,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata"},oneOf:[{"x-go-type":"CurriculaMetadata",type:"object",properties:{title:{type:"string",description:"Title of the learning path",example:"Mastering Kubernetes for Engineers",maxLength:500},description:{type:"string",description:"Short description of the curricula",example:"Learn how to configure your Kubernetes clusters and manage the lifecycle of your workloads",maxLength:5e3},detailedDescription:{type:"string",description:"Detailed description of the curricula",example:"This learning path covers everything from Kubernetes architecture to advanced deployment strategies, including hands-on labs and real-world scenarios.",maxLength:500},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},permalink:{type:"string",format:"uri",description:"Canonical URL for the learning path",example:"http://localhost:9876/academy/learning-paths/layer5/mastering-kubernetes-for-engineers/"},certificate:{"x-go-type":"Certificate",type:"object",required:["id","orgId","title","description","issuingAuthorities","issuedDate","recipientId","recipientName"],properties:{id:{type:"string",description:"Unique identifier for the certificate",example:"550e8400-e29b-41d4-a716-446655440000","x-go-name":"ID",maxLength:500,format:"uuid"},orgId:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},recipientId:{type:"string",description:"ID of the recipient (user) who received the certificate",example:"550e8400-e29b-41d4-a716-446655440001",maxLength:500,format:"uuid"},recipientName:{type:"string",description:"Name of the recipient (user) who received the certificate",example:"John Doe",maxLength:500},title:{type:"string",description:"Title of the certificate",example:"Kubernetes Expert Certification",maxLength:500},description:{type:"string",description:"Description of the certificate",example:"Awarded for successfully completing the Kubernetes Expert course",maxLength:5e3},issuingAuthorities:{type:"array",items:{"x-go-type":"CertificateIssuingAuthority",type:"object",required:["name","url"],properties:{name:{type:"string",description:"Name of the issuing authority",example:"Cloud Native Foundation",minLength:1,maxLength:255},role:{type:"string",description:"Role of the issuing authority",example:"COO",maxLength:500},signatureUrl:{type:"string",format:"uri",description:"URL to the signature image of the issuing authority should be a publicly accessible URL and transparent PNG or SVG format",example:"http://localhost:9876/signatures/cloud-native-foundation.png"}}},description:"List of issuing authorities for the certificate"},issuedDate:{type:"string",format:"date-time",description:"Date when the certificate was issued",example:"2023-10-01 12:00:00+00:00"},expirationDate:{type:"string",format:"date-time",description:"Date when the certificate expires. Dynamically calculated from issued_date and expires_in; not specified by instructors.",example:"2025-10-01 12:00:00+00:00"},expiresIn:{type:"integer",description:"Number of months after which the certificate expires",example:24,minimum:0}}},children:{type:"array",description:"List of children items in the top-level curricula",items:{"x-go-type":"ChildNode",type:"object",properties:{id:{type:"string",description:"Unique identifier for the course",example:"550e8400-e29b-41d4-a716-446655440002","x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},maxLength:500,format:"uuid"},title:{type:"string",description:"Title of the course",example:"Kubernetes Basics",maxLength:500},permalink:{type:"string",format:"uri",description:"URL to the course content",example:"http://localhost:9876/academy/learning-paths/layer5/intro-kubernetes-course/kubernetes/"},description:{type:"string",description:"Course description",example:"Learn the basics of Kubernetes",maxLength:5e3},weight:{type:"number",description:"A numeric value to determine the display order. A smaller number appears first. If not specified, items will be sorted alphabetically by title.",example:"eg 1 , 2",minimum:0},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},type:{"x-go-type":"ContentType",description:"Type of the content (e.g., learning-path, challenge, certification)",type:"string",enum:["learning-path","challenge","certification"]},children:{type:"array",description:"List of child nodes (sub-courses or modules)",items:{type:"object","x-go-type":"ChildNode"}}},required:["title","description","id","permalink"]}}},required:["title","description","permalink"]}]}}}}}},400:{description:"Invalid request parameters"},401:{description:"Expired JWT token used or insufficient privilege",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Server error"}}},get:{"x-internal":["cloud"],tags:["Academy"],operationId:"getAcademyCurricula",summary:"Get academy content",description:"Returns a list of academy content with optional filtering.",parameters:[{name:"contentType",in:"query",description:"Filter content by content types",required:false,style:"form",explode:true,schema:{type:"array",items:{type:"string"}}},{name:"visibility",in:"query",description:"Filter content by visibility (public/private)",required:false,style:"form",explode:true,schema:{type:"array",items:{type:"string"}}},{name:"level",in:"query",description:"Filter content by difficulty level",required:false,style:"form",explode:true,schema:{type:"array",items:{type:"string"}}},{name:"orgId",in:"query",description:"Filter content by organization IDs",required:false,style:"form",explode:true,schema:{type:"array",items:{type:"string"}}},{name:"category",in:"query",description:"Filter content by categories",required:false,style:"form",explode:true,schema:{type:"array",items:{type:"string"}}},{name:"status",in:"query",description:"Filter by registration status",required:false,style:"form",explode:true,schema:{type:"array",items:{type:"string"}}},{name:"search",in:"query",description:"Search content by title",required:false,schema:{type:"string"}},{name:"sort",in:"query",description:"Sort results by a specific field (e.g., title, createdAt)",required:false,schema:{type:"string"}},{name:"order",in:"query",description:"Order of sorting (asc or desc)",required:false,schema:{type:"string",enum:["asc","desc"]}},{name:"pagesize",in:"query",description:"Number of results per page",required:false,schema:{type:"integer"}},{name:"page",in:"query",description:"Page number",required:false,schema:{type:"integer"}}],responses:{200:{description:"A list of content with total count",content:{"application/json":{schema:{type:"object",properties:{total:{type:"integer",description:"Total number of Curricula",example:7,minimum:0},data:{type:"array",items:{"x-go-type":"AcademyCurriculaWithMetrics","x-go-type-skip-optional-pointer":true,allOf:[{type:"object",additionalProperties:false,description:"AcademyCurricula entity schema.",required:["id","type","org_id","visibility","status","slug","created_at","updated_at","deleted_at","metadata","level"],properties:{id:{type:"string",description:"Id of the Curricula",example:"923458-3490394-934893","x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},maxLength:500,format:"uuid"},type:{"x-go-type":"ContentType","x-oapi-codegen-extra-tags":{db:"type"},type:"string",enum:["learning-path","challenge","certification"]},org_id:{type:"string",description:"Organization ID that owns this learning path",example:"layer5","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"}},visibility:{description:"Visibility of the Curricula","x-go-type":"Visibility","x-oapi-codegen-extra-tags":{db:"visibility",json:"visibility"},type:"string",enum:["public","private"]},status:{example:"ready",description:"Status of the Curricula","x-go-type":"Status","x-oapi-codegen-extra-tags":{db:"status",json:"status"},type:"string",enum:["ready","archived","not_ready"]},slug:{type:"string",description:"slug of the Curricula",example:"intro-kubernetes-course",maxLength:500},level:{description:"Level of the Curricula","x-go-type":"Level","x-oapi-codegen-extra-tags":{db:"level",json:"level"},type:"string",enum:["beginner","intermediate","advanced"]},badge_id:{type:"string",format:"uuid",description:"ID of the badge to be awarded on completion of this curricula","x-go-type":"core.Uuid","x-go-type-import":{path:"github.com/meshery/schemas/models/core",name:"core"},"x-oapi-codegen-extra-tags":{db:"badge_id",json:"badge_id"}},invite_id:{allOf:[{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}}],description:"ID of the invite associated with this Curricula","x-oapi-codegen-extra-tags":{db:"invite_id",json:"invite_id"}},workspace_id:{allOf:[{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}}],description:"ID of the workspace to which this Curricula belongs","x-oapi-codegen-extra-tags":{db:"workspace_id",json:"workspace_id"}},created_at:{allOf:[{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}],description:"When the Curricula item was created","x-oapi-codegen-extra-tags":{db:"created_at",json:"created_at"}},updated_at:{allOf:[{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}],description:"When the Curricula was last updated","x-go-type":"core.Time","x-oapi-codegen-extra-tags":{db:"updated_at",json:"updated_at"}},deleted_at:{allOf:[{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true}],"x-go-type":"core.NullTime","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deleted_at"}},metadata:{type:"object",description:"Additional metadata about the Curricula",additionalProperties:true,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata"},oneOf:[{"x-go-type":"CurriculaMetadata",type:"object",properties:{title:{type:"string",description:"Title of the learning path",example:"Mastering Kubernetes for Engineers",maxLength:500},description:{type:"string",description:"Short description of the curricula",example:"Learn how to configure your Kubernetes clusters and manage the lifecycle of your workloads",maxLength:5e3},detailedDescription:{type:"string",description:"Detailed description of the curricula",example:"This learning path covers everything from Kubernetes architecture to advanced deployment strategies, including hands-on labs and real-world scenarios.",maxLength:500},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},permalink:{type:"string",format:"uri",description:"Canonical URL for the learning path",example:"http://localhost:9876/academy/learning-paths/layer5/mastering-kubernetes-for-engineers/"},certificate:{"x-go-type":"Certificate",type:"object",required:["id","orgId","title","description","issuingAuthorities","issuedDate","recipientId","recipientName"],properties:{id:{type:"string",description:"Unique identifier for the certificate",example:"550e8400-e29b-41d4-a716-446655440000","x-go-name":"ID",maxLength:500,format:"uuid"},orgId:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},recipientId:{type:"string",description:"ID of the recipient (user) who received the certificate",example:"550e8400-e29b-41d4-a716-446655440001",maxLength:500,format:"uuid"},recipientName:{type:"string",description:"Name of the recipient (user) who received the certificate",example:"John Doe",maxLength:500},title:{type:"string",description:"Title of the certificate",example:"Kubernetes Expert Certification",maxLength:500},description:{type:"string",description:"Description of the certificate",example:"Awarded for successfully completing the Kubernetes Expert course",maxLength:5e3},issuingAuthorities:{type:"array",items:{"x-go-type":"CertificateIssuingAuthority",type:"object",required:["name","url"],properties:{name:{type:"string",description:"Name of the issuing authority",example:"Cloud Native Foundation",minLength:1,maxLength:255},role:{type:"string",description:"Role of the issuing authority",example:"COO",maxLength:500},signatureUrl:{type:"string",format:"uri",description:"URL to the signature image of the issuing authority should be a publicly accessible URL and transparent PNG or SVG format",example:"http://localhost:9876/signatures/cloud-native-foundation.png"}}},description:"List of issuing authorities for the certificate"},issuedDate:{type:"string",format:"date-time",description:"Date when the certificate was issued",example:"2023-10-01 12:00:00+00:00"},expirationDate:{type:"string",format:"date-time",description:"Date when the certificate expires. Dynamically calculated from issued_date and expires_in; not specified by instructors.",example:"2025-10-01 12:00:00+00:00"},expiresIn:{type:"integer",description:"Number of months after which the certificate expires",example:24,minimum:0}}},children:{type:"array",description:"List of children items in the top-level curricula",items:{"x-go-type":"ChildNode",type:"object",properties:{id:{type:"string",description:"Unique identifier for the course",example:"550e8400-e29b-41d4-a716-446655440002","x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},maxLength:500,format:"uuid"},title:{type:"string",description:"Title of the course",example:"Kubernetes Basics",maxLength:500},permalink:{type:"string",format:"uri",description:"URL to the course content",example:"http://localhost:9876/academy/learning-paths/layer5/intro-kubernetes-course/kubernetes/"},description:{type:"string",description:"Course description",example:"Learn the basics of Kubernetes",maxLength:5e3},weight:{type:"number",description:"A numeric value to determine the display order. A smaller number appears first. If not specified, items will be sorted alphabetically by title.",example:"eg 1 , 2",minimum:0},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},type:{"x-go-type":"ContentType",description:"Type of the content (e.g., learning-path, challenge, certification)",type:"string",enum:["learning-path","challenge","certification"]},children:{type:"array",description:"List of child nodes (sub-courses or modules)",items:{type:"object","x-go-type":"ChildNode"}}},required:["title","description","id","permalink"]}}},required:["title","description","permalink"]}]}}},{type:"object",required:["registration_count"],properties:{registration_count:{type:"number",description:"Number of registrations associated with this curriculum.",minimum:0,"x-oapi-codegen-extra-tags":{db:"registration_count,omitempty",json:"registration_count,omitempty"}}}}]},description:"The data of the academycurriculawithmetricslistresponse."}},required:["total","data"]}}}},400:{description:"Invalid request parameters"},401:{description:"Expired JWT token used or insufficient privilege",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Server error"}}}},"/api/academy/{type}/{orgId}/{slug}":{get:{"x-internal":["cloud"],tags:["Academy"],operationId:"getAcademyContent",summary:"Get a single learning path",description:"Returns a learning path identified by type, orgId, and slug.",parameters:[{name:"type",in:"path",required:true,schema:{type:"string"}},{name:"orgId",in:"path",required:true,schema:{type:"string"}},{name:"slug",in:"path",required:true,schema:{type:"string"}}],responses:{200:{description:"A single academy content",content:{"application/json":{schema:{type:"object",additionalProperties:false,description:"AcademyCurricula entity schema.",required:["id","type","org_id","visibility","status","slug","created_at","updated_at","deleted_at","metadata","level"],properties:{id:{type:"string",description:"Id of the Curricula",example:"923458-3490394-934893","x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},maxLength:500,format:"uuid"},type:{"x-go-type":"ContentType","x-oapi-codegen-extra-tags":{db:"type"},type:"string",enum:["learning-path","challenge","certification"]},org_id:{type:"string",description:"Organization ID that owns this learning path",example:"layer5","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"}},visibility:{description:"Visibility of the Curricula","x-go-type":"Visibility","x-oapi-codegen-extra-tags":{db:"visibility",json:"visibility"},type:"string",enum:["public","private"]},status:{example:"ready",description:"Status of the Curricula","x-go-type":"Status","x-oapi-codegen-extra-tags":{db:"status",json:"status"},type:"string",enum:["ready","archived","not_ready"]},slug:{type:"string",description:"slug of the Curricula",example:"intro-kubernetes-course",maxLength:500},level:{description:"Level of the Curricula","x-go-type":"Level","x-oapi-codegen-extra-tags":{db:"level",json:"level"},type:"string",enum:["beginner","intermediate","advanced"]},badge_id:{type:"string",format:"uuid",description:"ID of the badge to be awarded on completion of this curricula","x-go-type":"core.Uuid","x-go-type-import":{path:"github.com/meshery/schemas/models/core",name:"core"},"x-oapi-codegen-extra-tags":{db:"badge_id",json:"badge_id"}},invite_id:{allOf:[{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}}],description:"ID of the invite associated with this Curricula","x-oapi-codegen-extra-tags":{db:"invite_id",json:"invite_id"}},workspace_id:{allOf:[{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}}],description:"ID of the workspace to which this Curricula belongs","x-oapi-codegen-extra-tags":{db:"workspace_id",json:"workspace_id"}},created_at:{allOf:[{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}],description:"When the Curricula item was created","x-oapi-codegen-extra-tags":{db:"created_at",json:"created_at"}},updated_at:{allOf:[{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}],description:"When the Curricula was last updated","x-go-type":"core.Time","x-oapi-codegen-extra-tags":{db:"updated_at",json:"updated_at"}},deleted_at:{allOf:[{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true}],"x-go-type":"core.NullTime","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deleted_at"}},metadata:{type:"object",description:"Additional metadata about the Curricula",additionalProperties:true,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata"},oneOf:[{"x-go-type":"CurriculaMetadata",type:"object",properties:{title:{type:"string",description:"Title of the learning path",example:"Mastering Kubernetes for Engineers",maxLength:500},description:{type:"string",description:"Short description of the curricula",example:"Learn how to configure your Kubernetes clusters and manage the lifecycle of your workloads",maxLength:5e3},detailedDescription:{type:"string",description:"Detailed description of the curricula",example:"This learning path covers everything from Kubernetes architecture to advanced deployment strategies, including hands-on labs and real-world scenarios.",maxLength:500},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},permalink:{type:"string",format:"uri",description:"Canonical URL for the learning path",example:"http://localhost:9876/academy/learning-paths/layer5/mastering-kubernetes-for-engineers/"},certificate:{"x-go-type":"Certificate",type:"object",required:["id","orgId","title","description","issuingAuthorities","issuedDate","recipientId","recipientName"],properties:{id:{type:"string",description:"Unique identifier for the certificate",example:"550e8400-e29b-41d4-a716-446655440000","x-go-name":"ID",maxLength:500,format:"uuid"},orgId:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},recipientId:{type:"string",description:"ID of the recipient (user) who received the certificate",example:"550e8400-e29b-41d4-a716-446655440001",maxLength:500,format:"uuid"},recipientName:{type:"string",description:"Name of the recipient (user) who received the certificate",example:"John Doe",maxLength:500},title:{type:"string",description:"Title of the certificate",example:"Kubernetes Expert Certification",maxLength:500},description:{type:"string",description:"Description of the certificate",example:"Awarded for successfully completing the Kubernetes Expert course",maxLength:5e3},issuingAuthorities:{type:"array",items:{"x-go-type":"CertificateIssuingAuthority",type:"object",required:["name","url"],properties:{name:{type:"string",description:"Name of the issuing authority",example:"Cloud Native Foundation",minLength:1,maxLength:255},role:{type:"string",description:"Role of the issuing authority",example:"COO",maxLength:500},signatureUrl:{type:"string",format:"uri",description:"URL to the signature image of the issuing authority should be a publicly accessible URL and transparent PNG or SVG format",example:"http://localhost:9876/signatures/cloud-native-foundation.png"}}},description:"List of issuing authorities for the certificate"},issuedDate:{type:"string",format:"date-time",description:"Date when the certificate was issued",example:"2023-10-01 12:00:00+00:00"},expirationDate:{type:"string",format:"date-time",description:"Date when the certificate expires. Dynamically calculated from issued_date and expires_in; not specified by instructors.",example:"2025-10-01 12:00:00+00:00"},expiresIn:{type:"integer",description:"Number of months after which the certificate expires",example:24,minimum:0}}},children:{type:"array",description:"List of children items in the top-level curricula",items:{"x-go-type":"ChildNode",type:"object",properties:{id:{type:"string",description:"Unique identifier for the course",example:"550e8400-e29b-41d4-a716-446655440002","x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},maxLength:500,format:"uuid"},title:{type:"string",description:"Title of the course",example:"Kubernetes Basics",maxLength:500},permalink:{type:"string",format:"uri",description:"URL to the course content",example:"http://localhost:9876/academy/learning-paths/layer5/intro-kubernetes-course/kubernetes/"},description:{type:"string",description:"Course description",example:"Learn the basics of Kubernetes",maxLength:5e3},weight:{type:"number",description:"A numeric value to determine the display order. A smaller number appears first. If not specified, items will be sorted alphabetically by title.",example:"eg 1 , 2",minimum:0},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},type:{"x-go-type":"ContentType",description:"Type of the content (e.g., learning-path, challenge, certification)",type:"string",enum:["learning-path","challenge","certification"]},children:{type:"array",description:"List of child nodes (sub-courses or modules)",items:{type:"object","x-go-type":"ChildNode"}}},required:["title","description","id","permalink"]}}},required:["title","description","permalink"]}]}}}}}},400:{description:"Invalid request parameters"},401:{description:"Expired JWT token used or insufficient privilege",content:{"text/plain":{schema:{type:"string"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Server error"}}}},"/api/academy/register":{post:{"x-internal":["cloud"],tags:["Academy"],summary:"Register a user to academy content",operationId:"registerToAcademyContent",requestBody:{required:true,content:{"application/json":{schema:{type:"object",required:["contentId","user_id"],properties:{contentId:{type:"string",description:"ID of the academy content to register for",maxLength:500,format:"uuid"},user_id:{type:"string",format:"uuid",description:"ID of the user registering for the content."},contentType:{type:"string",enum:["learning-path","challenge","certification"]}}}}}},responses:{201:{description:"registered content",content:{"application/json":{schema:{type:"object",required:["id","org_id","user_id","status","created_at","updated_at","content_id","certificate","metadata"],properties:{id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"}},org_id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"org_id"}},content_id:{type:"string",description:"ID of the course content","x-oapi-codegen-extra-tags":{db:"content_id"},maxLength:500,format:"uuid"},user_id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"user_id"}},status:{"x-go-type":"AcademyRegistrationStatus",description:"Status of the user's course registration","x-oapi-codegen-extra-tags":{db:"status"},type:"string",enum:["registered","completed","failed","withdrawn"]},updated_at:{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true,description:"When the registration was updated","x-oapi-codegen-extra-tags":{db:"updated_at"}},created_at:{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true,description:"When the registration was created","x-oapi-codegen-extra-tags":{db:"created_at"}},deleted_at:{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true},certificate:{"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,description:"Issued certificate for completing the curricula under registration","x-oapi-codegen-extra-tags":{db:"certificate"},type:"object",required:["id","orgId","title","description","issuingAuthorities","issuedDate","recipientId","recipientName"],properties:{id:{type:"string",description:"Unique identifier for the certificate",example:"550e8400-e29b-41d4-a716-446655440000","x-go-name":"ID",maxLength:500,format:"uuid"},orgId:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},recipientId:{type:"string",description:"ID of the recipient (user) who received the certificate",example:"550e8400-e29b-41d4-a716-446655440001",maxLength:500,format:"uuid"},recipientName:{type:"string",description:"Name of the recipient (user) who received the certificate",example:"John Doe",maxLength:500},title:{type:"string",description:"Title of the certificate",example:"Kubernetes Expert Certification",maxLength:500},description:{type:"string",description:"Description of the certificate",example:"Awarded for successfully completing the Kubernetes Expert course",maxLength:5e3},issuingAuthorities:{type:"array",items:{"x-go-type":"CertificateIssuingAuthority",type:"object",required:["name","url"],properties:{name:{type:"string",description:"Name of the issuing authority",example:"Cloud Native Foundation",minLength:1,maxLength:255},role:{type:"string",description:"Role of the issuing authority",example:"COO",maxLength:500},signatureUrl:{type:"string",format:"uri",description:"URL to the signature image of the issuing authority should be a publicly accessible URL and transparent PNG or SVG format",example:"http://localhost:9876/signatures/cloud-native-foundation.png"}}},description:"List of issuing authorities for the certificate"},issuedDate:{type:"string",format:"date-time",description:"Date when the certificate was issued",example:"2023-10-01 12:00:00+00:00"},expirationDate:{type:"string",format:"date-time",description:"Date when the certificate expires. Dynamically calculated from issued_date and expires_in; not specified by instructors.",example:"2025-10-01 12:00:00+00:00"},expiresIn:{type:"integer",description:"Number of months after which the certificate expires",example:24,minimum:0}}},metadata:{type:"object",description:"Additional metadata about the registration",additionalProperties:true,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"metadata"}}}}}}},400:{description:"Invalid request parameters"},401:{description:"Expired JWT token used or insufficient privilege",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Server error"}}}},"/api/academy/curricula/registrations/{id}/withdraw":{post:{"x-internal":["cloud"],tags:["Academy"],summary:"Withdraw a user from academy content",operationId:"withdrawFromAcademyContent",parameters:[{name:"id",in:"path",required:true,description:"The ID of the curricula",schema:{type:"string"}}],responses:{200:{description:"registered content",content:{"application/json":{schema:{type:"object",required:["id","org_id","user_id","status","created_at","updated_at","content_id","certificate","metadata"],properties:{id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"}},org_id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"org_id"}},content_id:{type:"string",description:"ID of the course content","x-oapi-codegen-extra-tags":{db:"content_id"},maxLength:500,format:"uuid"},user_id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"user_id"}},status:{"x-go-type":"AcademyRegistrationStatus",description:"Status of the user's course registration","x-oapi-codegen-extra-tags":{db:"status"},type:"string",enum:["registered","completed","failed","withdrawn"]},updated_at:{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true,description:"When the registration was updated","x-oapi-codegen-extra-tags":{db:"updated_at"}},created_at:{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true,description:"When the registration was created","x-oapi-codegen-extra-tags":{db:"created_at"}},deleted_at:{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true},certificate:{"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,description:"Issued certificate for completing the curricula under registration","x-oapi-codegen-extra-tags":{db:"certificate"},type:"object",required:["id","orgId","title","description","issuingAuthorities","issuedDate","recipientId","recipientName"],properties:{id:{type:"string",description:"Unique identifier for the certificate",example:"550e8400-e29b-41d4-a716-446655440000","x-go-name":"ID",maxLength:500,format:"uuid"},orgId:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},recipientId:{type:"string",description:"ID of the recipient (user) who received the certificate",example:"550e8400-e29b-41d4-a716-446655440001",maxLength:500,format:"uuid"},recipientName:{type:"string",description:"Name of the recipient (user) who received the certificate",example:"John Doe",maxLength:500},title:{type:"string",description:"Title of the certificate",example:"Kubernetes Expert Certification",maxLength:500},description:{type:"string",description:"Description of the certificate",example:"Awarded for successfully completing the Kubernetes Expert course",maxLength:5e3},issuingAuthorities:{type:"array",items:{"x-go-type":"CertificateIssuingAuthority",type:"object",required:["name","url"],properties:{name:{type:"string",description:"Name of the issuing authority",example:"Cloud Native Foundation",minLength:1,maxLength:255},role:{type:"string",description:"Role of the issuing authority",example:"COO",maxLength:500},signatureUrl:{type:"string",format:"uri",description:"URL to the signature image of the issuing authority should be a publicly accessible URL and transparent PNG or SVG format",example:"http://localhost:9876/signatures/cloud-native-foundation.png"}}},description:"List of issuing authorities for the certificate"},issuedDate:{type:"string",format:"date-time",description:"Date when the certificate was issued",example:"2023-10-01 12:00:00+00:00"},expirationDate:{type:"string",format:"date-time",description:"Date when the certificate expires. Dynamically calculated from issued_date and expires_in; not specified by instructors.",example:"2025-10-01 12:00:00+00:00"},expiresIn:{type:"integer",description:"Number of months after which the certificate expires",example:24,minimum:0}}},metadata:{type:"object",description:"Additional metadata about the registration",additionalProperties:true,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"metadata"}}}}}}},400:{description:"Invalid request parameters"},401:{description:"Expired JWT token used or insufficient privilege",content:{"text/plain":{schema:{type:"string"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Server error"}}}},"/api/academy/curricula/{id}":{put:{"x-internal":["cloud"],tags:["Academy"],operationId:"updateAcademyCurriculaById",summary:"Update an existing academy curricula by ID",description:"Updates the details of an existing academy curricula identified by its ID.",parameters:[{name:"id",in:"path",required:true,description:"The ID of the curricula",schema:{type:"string"}}],requestBody:{required:true,content:{"application/json":{schema:{type:"object",properties:{type:{description:"Type of the curricula","x-go-name":"Type","x-go-type":"ContentType","x-oapi-codegen-extra-tags":{json:"type"},type:"string",enum:["learning-path","challenge","certification"]},title:{type:"string",description:"Title of the curricula",example:"Introduction to Kubernetes","x-go-name":"Title","x-oapi-codegen-extra-tags":{json:"title"},maxLength:500},org_id:{type:"string",description:"Organization ID that owns this learning path",example:"layer5","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"}},workspace_id:{allOf:[{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}}],description:"ID of the workspace to which this Curricula belongs","x-oapi-codegen-extra-tags":{db:"workspace_id",json:"workspace_id"}},badge_id:{type:"string",format:"uuid",description:"ID of the badge to be awarded on completion of this curricula","x-go-type":"core.Uuid","x-go-type-import":{path:"github.com/meshery/schemas/models/core",name:"core"},"x-oapi-codegen-extra-tags":{db:"badge_id",json:"badge_id"}},team_id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-go-name":"TeamId","x-oapi-codegen-extra-tags":{json:"team_id",db:"team_id"}},access_expires_at:{allOf:[{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}],description:"Expiry time for curricula access","x-go-type":"*time.Time","x-oapi-codegen-extra-tags":{json:"access_expires_at",db:"access_expires_at"}},access_status:{description:"Current access status of the curricula","x-go-name":"AccessStatus","x-go-type":"invitationv1beta2.InvitationStatus","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta2/invitation",name:"invitationv1beta2"},"x-oapi-codegen-extra-tags":{json:"access_status",db:"access_status"},type:"string",enum:["enabled","disabled"]},metadata:{type:"object",description:"Additional metadata about the Curricula",additionalProperties:true,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata"},oneOf:[{"x-go-type":"CurriculaMetadata",type:"object",properties:{title:{type:"string",description:"Title of the learning path",example:"Mastering Kubernetes for Engineers",maxLength:500},description:{type:"string",description:"Short description of the curricula",example:"Learn how to configure your Kubernetes clusters and manage the lifecycle of your workloads",maxLength:5e3},detailedDescription:{type:"string",description:"Detailed description of the curricula",example:"This learning path covers everything from Kubernetes architecture to advanced deployment strategies, including hands-on labs and real-world scenarios.",maxLength:500},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},permalink:{type:"string",format:"uri",description:"Canonical URL for the learning path",example:"http://localhost:9876/academy/learning-paths/layer5/mastering-kubernetes-for-engineers/"},certificate:{"x-go-type":"Certificate",type:"object",required:["id","orgId","title","description","issuingAuthorities","issuedDate","recipientId","recipientName"],properties:{id:{type:"string",description:"Unique identifier for the certificate",example:"550e8400-e29b-41d4-a716-446655440000","x-go-name":"ID",maxLength:500,format:"uuid"},orgId:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},recipientId:{type:"string",description:"ID of the recipient (user) who received the certificate",example:"550e8400-e29b-41d4-a716-446655440001",maxLength:500,format:"uuid"},recipientName:{type:"string",description:"Name of the recipient (user) who received the certificate",example:"John Doe",maxLength:500},title:{type:"string",description:"Title of the certificate",example:"Kubernetes Expert Certification",maxLength:500},description:{type:"string",description:"Description of the certificate",example:"Awarded for successfully completing the Kubernetes Expert course",maxLength:5e3},issuingAuthorities:{type:"array",items:{"x-go-type":"CertificateIssuingAuthority",type:"object",required:["name","url"],properties:{name:{type:"string",description:"Name of the issuing authority",example:"Cloud Native Foundation",minLength:1,maxLength:255},role:{type:"string",description:"Role of the issuing authority",example:"COO",maxLength:500},signatureUrl:{type:"string",format:"uri",description:"URL to the signature image of the issuing authority should be a publicly accessible URL and transparent PNG or SVG format",example:"http://localhost:9876/signatures/cloud-native-foundation.png"}}},description:"List of issuing authorities for the certificate"},issuedDate:{type:"string",format:"date-time",description:"Date when the certificate was issued",example:"2023-10-01 12:00:00+00:00"},expirationDate:{type:"string",format:"date-time",description:"Date when the certificate expires. Dynamically calculated from issued_date and expires_in; not specified by instructors.",example:"2025-10-01 12:00:00+00:00"},expiresIn:{type:"integer",description:"Number of months after which the certificate expires",example:24,minimum:0}}},children:{type:"array",description:"List of children items in the top-level curricula",items:{"x-go-type":"ChildNode",type:"object",properties:{id:{type:"string",description:"Unique identifier for the course",example:"550e8400-e29b-41d4-a716-446655440002","x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},maxLength:500,format:"uuid"},title:{type:"string",description:"Title of the course",example:"Kubernetes Basics",maxLength:500},permalink:{type:"string",format:"uri",description:"URL to the course content",example:"http://localhost:9876/academy/learning-paths/layer5/intro-kubernetes-course/kubernetes/"},description:{type:"string",description:"Course description",example:"Learn the basics of Kubernetes",maxLength:5e3},weight:{type:"number",description:"A numeric value to determine the display order. A smaller number appears first. If not specified, items will be sorted alphabetically by title.",example:"eg 1 , 2",minimum:0},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},type:{"x-go-type":"ContentType",description:"Type of the content (e.g., learning-path, challenge, certification)",type:"string",enum:["learning-path","challenge","certification"]},children:{type:"array",description:"List of child nodes (sub-courses or modules)",items:{type:"object","x-go-type":"ChildNode"}}},required:["title","description","id","permalink"]}}},required:["title","description","permalink"]}]}},required:["type","title","org_id","workspace_id","team_id","access_status","metadata"]}}}},responses:{200:{description:"updated the curricula",content:{"application/json":{schema:{type:"object",allOf:[{type:"object",additionalProperties:false,description:"AcademyCurricula entity schema.",required:["id","type","org_id","visibility","status","slug","created_at","updated_at","deleted_at","metadata","level"],properties:{id:{type:"string",description:"Id of the Curricula",example:"923458-3490394-934893","x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},maxLength:500,format:"uuid"},type:{"x-go-type":"ContentType","x-oapi-codegen-extra-tags":{db:"type"},type:"string",enum:["learning-path","challenge","certification"]},org_id:{type:"string",description:"Organization ID that owns this learning path",example:"layer5","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"}},visibility:{description:"Visibility of the Curricula","x-go-type":"Visibility","x-oapi-codegen-extra-tags":{db:"visibility",json:"visibility"},type:"string",enum:["public","private"]},status:{example:"ready",description:"Status of the Curricula","x-go-type":"Status","x-oapi-codegen-extra-tags":{db:"status",json:"status"},type:"string",enum:["ready","archived","not_ready"]},slug:{type:"string",description:"slug of the Curricula",example:"intro-kubernetes-course",maxLength:500},level:{description:"Level of the Curricula","x-go-type":"Level","x-oapi-codegen-extra-tags":{db:"level",json:"level"},type:"string",enum:["beginner","intermediate","advanced"]},badge_id:{type:"string",format:"uuid",description:"ID of the badge to be awarded on completion of this curricula","x-go-type":"core.Uuid","x-go-type-import":{path:"github.com/meshery/schemas/models/core",name:"core"},"x-oapi-codegen-extra-tags":{db:"badge_id",json:"badge_id"}},invite_id:{allOf:[{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}}],description:"ID of the invite associated with this Curricula","x-oapi-codegen-extra-tags":{db:"invite_id",json:"invite_id"}},workspace_id:{allOf:[{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}}],description:"ID of the workspace to which this Curricula belongs","x-oapi-codegen-extra-tags":{db:"workspace_id",json:"workspace_id"}},created_at:{allOf:[{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}],description:"When the Curricula item was created","x-oapi-codegen-extra-tags":{db:"created_at",json:"created_at"}},updated_at:{allOf:[{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}],description:"When the Curricula was last updated","x-go-type":"core.Time","x-oapi-codegen-extra-tags":{db:"updated_at",json:"updated_at"}},deleted_at:{allOf:[{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true}],"x-go-type":"core.NullTime","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deleted_at"}},metadata:{type:"object",description:"Additional metadata about the Curricula",additionalProperties:true,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata"},oneOf:[{"x-go-type":"CurriculaMetadata",type:"object",properties:{title:{type:"string",description:"Title of the learning path",example:"Mastering Kubernetes for Engineers",maxLength:500},description:{type:"string",description:"Short description of the curricula",example:"Learn how to configure your Kubernetes clusters and manage the lifecycle of your workloads",maxLength:5e3},detailedDescription:{type:"string",description:"Detailed description of the curricula",example:"This learning path covers everything from Kubernetes architecture to advanced deployment strategies, including hands-on labs and real-world scenarios.",maxLength:500},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},permalink:{type:"string",format:"uri",description:"Canonical URL for the learning path",example:"http://localhost:9876/academy/learning-paths/layer5/mastering-kubernetes-for-engineers/"},certificate:{"x-go-type":"Certificate",type:"object",required:["id","orgId","title","description","issuingAuthorities","issuedDate","recipientId","recipientName"],properties:{id:{type:"string",description:"Unique identifier for the certificate",example:"550e8400-e29b-41d4-a716-446655440000","x-go-name":"ID",maxLength:500,format:"uuid"},orgId:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},recipientId:{type:"string",description:"ID of the recipient (user) who received the certificate",example:"550e8400-e29b-41d4-a716-446655440001",maxLength:500,format:"uuid"},recipientName:{type:"string",description:"Name of the recipient (user) who received the certificate",example:"John Doe",maxLength:500},title:{type:"string",description:"Title of the certificate",example:"Kubernetes Expert Certification",maxLength:500},description:{type:"string",description:"Description of the certificate",example:"Awarded for successfully completing the Kubernetes Expert course",maxLength:5e3},issuingAuthorities:{type:"array",items:{"x-go-type":"CertificateIssuingAuthority",type:"object",required:["name","url"],properties:{name:{type:"string",description:"Name of the issuing authority",example:"Cloud Native Foundation",minLength:1,maxLength:255},role:{type:"string",description:"Role of the issuing authority",example:"COO",maxLength:500},signatureUrl:{type:"string",format:"uri",description:"URL to the signature image of the issuing authority should be a publicly accessible URL and transparent PNG or SVG format",example:"http://localhost:9876/signatures/cloud-native-foundation.png"}}},description:"List of issuing authorities for the certificate"},issuedDate:{type:"string",format:"date-time",description:"Date when the certificate was issued",example:"2023-10-01 12:00:00+00:00"},expirationDate:{type:"string",format:"date-time",description:"Date when the certificate expires. Dynamically calculated from issued_date and expires_in; not specified by instructors.",example:"2025-10-01 12:00:00+00:00"},expiresIn:{type:"integer",description:"Number of months after which the certificate expires",example:24,minimum:0}}},children:{type:"array",description:"List of children items in the top-level curricula",items:{"x-go-type":"ChildNode",type:"object",properties:{id:{type:"string",description:"Unique identifier for the course",example:"550e8400-e29b-41d4-a716-446655440002","x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},maxLength:500,format:"uuid"},title:{type:"string",description:"Title of the course",example:"Kubernetes Basics",maxLength:500},permalink:{type:"string",format:"uri",description:"URL to the course content",example:"http://localhost:9876/academy/learning-paths/layer5/intro-kubernetes-course/kubernetes/"},description:{type:"string",description:"Course description",example:"Learn the basics of Kubernetes",maxLength:5e3},weight:{type:"number",description:"A numeric value to determine the display order. A smaller number appears first. If not specified, items will be sorted alphabetically by title.",example:"eg 1 , 2",minimum:0},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},type:{"x-go-type":"ContentType",description:"Type of the content (e.g., learning-path, challenge, certification)",type:"string",enum:["learning-path","challenge","certification"]},children:{type:"array",description:"List of child nodes (sub-courses or modules)",items:{type:"object","x-go-type":"ChildNode"}}},required:["title","description","id","permalink"]}}},required:["title","description","permalink"]}]}}},{type:"object",required:["registration_count"],properties:{registration_count:{type:"number",description:"Number of registrations associated with this curriculum.",minimum:0,"x-oapi-codegen-extra-tags":{db:"registration_count,omitempty",json:"registration_count,omitempty"}},invitation:{"x-go-type":"invitationv1beta2.Invitation","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta2/invitation",name:"invitationv1beta2"},type:"object",additionalProperties:false,description:"Invitation entity schema.",required:["id","owner_id","name","description","org_id","accepted_by","emails","roles","teams","status","created_at","updated_at","deleted_at"],properties:{id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-go-name":"ID"},owner_id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"owner_id",json:"owner_id"}},is_default:{type:"boolean",description:"Indicates whether the invitation is a default invitation (open invite), which can be used to assign users when signing up from fqdn or custom domain, a organization can only have one default invitation","x-oapi-codegen-extra-tags":{db:"is_default",json:"is_default"}},name:{type:"string",description:"Name of the invitation, which can be used to identify the invitation, required and cant be empty string,",minLength:1,maxLength:255},description:{type:"string",description:"Description of the invitation, which can be used to provide additional information about the invitation, null or empty string means the invitation does not have a description",maxLength:5e3},emails:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",pattern:"^([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-z]{2,}|@[a-zA-Z0-9.-]+\\.[a-z]{2,})$","x-go-type":"string",description:"Exact email address or the email address pattern for which the invitation is valid , null means the invitation is valid for all email addresses"},description:"The emails of the invitation."},org_id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"}},expires_at:{type:"string",format:"date-time",description:"Timestamp when the invitation expires, if applicable , null or empty string means the invitation does not expire","x-oapi-codegen-extra-tags":{db:"expires_at",json:"expires_at"}},quota:{type:"integer",description:"Quota for the invitation, which can be used to limit the number of users that can accept the invitation, null or empty string means the invitation does not have a quota",minimum:0},accepted_by:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string"},description:"List of user ids that have already accepted the invitation, null or empty string means the invitation has not been used yet","x-oapi-codegen-extra-tags":{db:"accepted_by",json:"accepted_by"}},roles:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",description:"Roles that the user will have when accepting the invitation, null or empty string means the invitation does not specify any roles"},description:"The roles of the invitation."},teams:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",description:"Teams that the user will be added to when accepting the invitation, null or empty string means the invitation does not specify any teams"},description:"The teams of the invitation."},status:{"x-go-type":"InvitationStatus",type:"string",enum:["enabled","disabled"],description:"Status of the invitation, where enabled means the invitation is active and can be used, disabled means the invitation is no longer valid and is temporarily inactive, disabled invitations can be re-enabled later."},created_at:{type:"string",format:"date-time",description:"Timestamp when the invitation was created","x-oapi-codegen-extra-tags":{db:"created_at",json:"created_at"}},updated_at:{type:"string",format:"date-time",description:"Timestamp when the invitation was last updated","x-oapi-codegen-extra-tags":{db:"updated_at",json:"updated_at"}},deleted_at:{type:"string",format:"date-time","x-go-type":"core.NullTime","x-go-type-import":{path:"github.com/meshery/schemas/models/core"},description:"Timestamp when the invitation was deleted, if applicable","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deleted_at"}}}}}}]}}}},400:{description:"Invalid request parameters"},401:{description:"Expired JWT token used or insufficient privilege",content:{"text/plain":{schema:{type:"string"}}}},404:{description:"Curricula not found"},500:{description:"Server error"}}},delete:{"x-internal":["cloud"],tags:["Academy"],operationId:"deleteAcademyCurriculaById",summary:"Delete an academy curricula by ID",description:"Deletes an existing academy curricula identified by its ID.",parameters:[{name:"id",in:"path",required:true,description:"The ID of the curricula",schema:{type:"string"}}],responses:{204:{description:"Curricula deleted"},400:{description:"Invalid request parameters"},401:{description:"Expired JWT token used or insufficient privilege",content:{"text/plain":{schema:{type:"string"}}}},404:{description:"Curricula not found"},500:{description:"Server error"}}},get:{"x-internal":["cloud"],tags:["Academy"],operationId:"getAcademyCurriculaById",summary:"Get a single academy curricula by ID",description:"Returns a single academy curricula identified by its ID.",parameters:[{name:"id",in:"path",required:true,description:"The ID of the curricula",schema:{type:"string"}}],responses:{200:{description:"A single curricula",content:{"application/json":{schema:{type:"object",allOf:[{type:"object",additionalProperties:false,description:"AcademyCurricula entity schema.",required:["id","type","org_id","visibility","status","slug","created_at","updated_at","deleted_at","metadata","level"],properties:{id:{type:"string",description:"Id of the Curricula",example:"923458-3490394-934893","x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},maxLength:500,format:"uuid"},type:{"x-go-type":"ContentType","x-oapi-codegen-extra-tags":{db:"type"},type:"string",enum:["learning-path","challenge","certification"]},org_id:{type:"string",description:"Organization ID that owns this learning path",example:"layer5","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"}},visibility:{description:"Visibility of the Curricula","x-go-type":"Visibility","x-oapi-codegen-extra-tags":{db:"visibility",json:"visibility"},type:"string",enum:["public","private"]},status:{example:"ready",description:"Status of the Curricula","x-go-type":"Status","x-oapi-codegen-extra-tags":{db:"status",json:"status"},type:"string",enum:["ready","archived","not_ready"]},slug:{type:"string",description:"slug of the Curricula",example:"intro-kubernetes-course",maxLength:500},level:{description:"Level of the Curricula","x-go-type":"Level","x-oapi-codegen-extra-tags":{db:"level",json:"level"},type:"string",enum:["beginner","intermediate","advanced"]},badge_id:{type:"string",format:"uuid",description:"ID of the badge to be awarded on completion of this curricula","x-go-type":"core.Uuid","x-go-type-import":{path:"github.com/meshery/schemas/models/core",name:"core"},"x-oapi-codegen-extra-tags":{db:"badge_id",json:"badge_id"}},invite_id:{allOf:[{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}}],description:"ID of the invite associated with this Curricula","x-oapi-codegen-extra-tags":{db:"invite_id",json:"invite_id"}},workspace_id:{allOf:[{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}}],description:"ID of the workspace to which this Curricula belongs","x-oapi-codegen-extra-tags":{db:"workspace_id",json:"workspace_id"}},created_at:{allOf:[{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}],description:"When the Curricula item was created","x-oapi-codegen-extra-tags":{db:"created_at",json:"created_at"}},updated_at:{allOf:[{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}],description:"When the Curricula was last updated","x-go-type":"core.Time","x-oapi-codegen-extra-tags":{db:"updated_at",json:"updated_at"}},deleted_at:{allOf:[{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true}],"x-go-type":"core.NullTime","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deleted_at"}},metadata:{type:"object",description:"Additional metadata about the Curricula",additionalProperties:true,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata"},oneOf:[{"x-go-type":"CurriculaMetadata",type:"object",properties:{title:{type:"string",description:"Title of the learning path",example:"Mastering Kubernetes for Engineers",maxLength:500},description:{type:"string",description:"Short description of the curricula",example:"Learn how to configure your Kubernetes clusters and manage the lifecycle of your workloads",maxLength:5e3},detailedDescription:{type:"string",description:"Detailed description of the curricula",example:"This learning path covers everything from Kubernetes architecture to advanced deployment strategies, including hands-on labs and real-world scenarios.",maxLength:500},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},permalink:{type:"string",format:"uri",description:"Canonical URL for the learning path",example:"http://localhost:9876/academy/learning-paths/layer5/mastering-kubernetes-for-engineers/"},certificate:{"x-go-type":"Certificate",type:"object",required:["id","orgId","title","description","issuingAuthorities","issuedDate","recipientId","recipientName"],properties:{id:{type:"string",description:"Unique identifier for the certificate",example:"550e8400-e29b-41d4-a716-446655440000","x-go-name":"ID",maxLength:500,format:"uuid"},orgId:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},recipientId:{type:"string",description:"ID of the recipient (user) who received the certificate",example:"550e8400-e29b-41d4-a716-446655440001",maxLength:500,format:"uuid"},recipientName:{type:"string",description:"Name of the recipient (user) who received the certificate",example:"John Doe",maxLength:500},title:{type:"string",description:"Title of the certificate",example:"Kubernetes Expert Certification",maxLength:500},description:{type:"string",description:"Description of the certificate",example:"Awarded for successfully completing the Kubernetes Expert course",maxLength:5e3},issuingAuthorities:{type:"array",items:{"x-go-type":"CertificateIssuingAuthority",type:"object",required:["name","url"],properties:{name:{type:"string",description:"Name of the issuing authority",example:"Cloud Native Foundation",minLength:1,maxLength:255},role:{type:"string",description:"Role of the issuing authority",example:"COO",maxLength:500},signatureUrl:{type:"string",format:"uri",description:"URL to the signature image of the issuing authority should be a publicly accessible URL and transparent PNG or SVG format",example:"http://localhost:9876/signatures/cloud-native-foundation.png"}}},description:"List of issuing authorities for the certificate"},issuedDate:{type:"string",format:"date-time",description:"Date when the certificate was issued",example:"2023-10-01 12:00:00+00:00"},expirationDate:{type:"string",format:"date-time",description:"Date when the certificate expires. Dynamically calculated from issued_date and expires_in; not specified by instructors.",example:"2025-10-01 12:00:00+00:00"},expiresIn:{type:"integer",description:"Number of months after which the certificate expires",example:24,minimum:0}}},children:{type:"array",description:"List of children items in the top-level curricula",items:{"x-go-type":"ChildNode",type:"object",properties:{id:{type:"string",description:"Unique identifier for the course",example:"550e8400-e29b-41d4-a716-446655440002","x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},maxLength:500,format:"uuid"},title:{type:"string",description:"Title of the course",example:"Kubernetes Basics",maxLength:500},permalink:{type:"string",format:"uri",description:"URL to the course content",example:"http://localhost:9876/academy/learning-paths/layer5/intro-kubernetes-course/kubernetes/"},description:{type:"string",description:"Course description",example:"Learn the basics of Kubernetes",maxLength:5e3},weight:{type:"number",description:"A numeric value to determine the display order. A smaller number appears first. If not specified, items will be sorted alphabetically by title.",example:"eg 1 , 2",minimum:0},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},type:{"x-go-type":"ContentType",description:"Type of the content (e.g., learning-path, challenge, certification)",type:"string",enum:["learning-path","challenge","certification"]},children:{type:"array",description:"List of child nodes (sub-courses or modules)",items:{type:"object","x-go-type":"ChildNode"}}},required:["title","description","id","permalink"]}}},required:["title","description","permalink"]}]}}},{type:"object",required:["registration_count"],properties:{registration_count:{type:"number",description:"Number of registrations associated with this curriculum.",minimum:0,"x-oapi-codegen-extra-tags":{db:"registration_count,omitempty",json:"registration_count,omitempty"}},invitation:{"x-go-type":"invitationv1beta2.Invitation","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta2/invitation",name:"invitationv1beta2"},type:"object",additionalProperties:false,description:"Invitation entity schema.",required:["id","owner_id","name","description","org_id","accepted_by","emails","roles","teams","status","created_at","updated_at","deleted_at"],properties:{id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-go-name":"ID"},owner_id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"owner_id",json:"owner_id"}},is_default:{type:"boolean",description:"Indicates whether the invitation is a default invitation (open invite), which can be used to assign users when signing up from fqdn or custom domain, a organization can only have one default invitation","x-oapi-codegen-extra-tags":{db:"is_default",json:"is_default"}},name:{type:"string",description:"Name of the invitation, which can be used to identify the invitation, required and cant be empty string,",minLength:1,maxLength:255},description:{type:"string",description:"Description of the invitation, which can be used to provide additional information about the invitation, null or empty string means the invitation does not have a description",maxLength:5e3},emails:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",pattern:"^([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-z]{2,}|@[a-zA-Z0-9.-]+\\.[a-z]{2,})$","x-go-type":"string",description:"Exact email address or the email address pattern for which the invitation is valid , null means the invitation is valid for all email addresses"},description:"The emails of the invitation."},org_id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"}},expires_at:{type:"string",format:"date-time",description:"Timestamp when the invitation expires, if applicable , null or empty string means the invitation does not expire","x-oapi-codegen-extra-tags":{db:"expires_at",json:"expires_at"}},quota:{type:"integer",description:"Quota for the invitation, which can be used to limit the number of users that can accept the invitation, null or empty string means the invitation does not have a quota",minimum:0},accepted_by:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string"},description:"List of user ids that have already accepted the invitation, null or empty string means the invitation has not been used yet","x-oapi-codegen-extra-tags":{db:"accepted_by",json:"accepted_by"}},roles:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",description:"Roles that the user will have when accepting the invitation, null or empty string means the invitation does not specify any roles"},description:"The roles of the invitation."},teams:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",description:"Teams that the user will be added to when accepting the invitation, null or empty string means the invitation does not specify any teams"},description:"The teams of the invitation."},status:{"x-go-type":"InvitationStatus",type:"string",enum:["enabled","disabled"],description:"Status of the invitation, where enabled means the invitation is active and can be used, disabled means the invitation is no longer valid and is temporarily inactive, disabled invitations can be re-enabled later."},created_at:{type:"string",format:"date-time",description:"Timestamp when the invitation was created","x-oapi-codegen-extra-tags":{db:"created_at",json:"created_at"}},updated_at:{type:"string",format:"date-time",description:"Timestamp when the invitation was last updated","x-oapi-codegen-extra-tags":{db:"updated_at",json:"updated_at"}},deleted_at:{type:"string",format:"date-time","x-go-type":"core.NullTime","x-go-type-import":{path:"github.com/meshery/schemas/models/core"},description:"Timestamp when the invitation was deleted, if applicable","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deleted_at"}}}}}}]}}}},400:{description:"Invalid request parameters"},401:{description:"Expired JWT token used or insufficient privilege",content:{"text/plain":{schema:{type:"string"}}}},404:{description:"Curricula not found"},500:{description:"Server error"}}}},"/api/academy/registrations/{contentId}":{get:{tags:["Academy"],"x-internal":["cloud"],summary:"Get registration information for academy content",description:"Returns registration data for a specific content item, optionally filtered by status.",parameters:[{name:"contentId",in:"path",required:true,description:"The ID of the content to retrieve registration data for",schema:{type:"string"}},{name:"status",in:"query",required:false,description:"Filter registrations by status (e.g., registered, completed)",schema:{type:"string"}}],responses:{200:{description:"Registration data for the specified content",content:{"application/json":{schema:{type:"object",required:["id","org_id","user_id","status","created_at","updated_at","content_id","certificate","metadata"],properties:{id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"}},org_id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"org_id"}},content_id:{type:"string",description:"ID of the course content","x-oapi-codegen-extra-tags":{db:"content_id"},maxLength:500,format:"uuid"},user_id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"user_id"}},status:{"x-go-type":"AcademyRegistrationStatus",description:"Status of the user's course registration","x-oapi-codegen-extra-tags":{db:"status"},type:"string",enum:["registered","completed","failed","withdrawn"]},updated_at:{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true,description:"When the registration was updated","x-oapi-codegen-extra-tags":{db:"updated_at"}},created_at:{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true,description:"When the registration was created","x-oapi-codegen-extra-tags":{db:"created_at"}},deleted_at:{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true},certificate:{"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,description:"Issued certificate for completing the curricula under registration","x-oapi-codegen-extra-tags":{db:"certificate"},type:"object",required:["id","orgId","title","description","issuingAuthorities","issuedDate","recipientId","recipientName"],properties:{id:{type:"string",description:"Unique identifier for the certificate",example:"550e8400-e29b-41d4-a716-446655440000","x-go-name":"ID",maxLength:500,format:"uuid"},orgId:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},recipientId:{type:"string",description:"ID of the recipient (user) who received the certificate",example:"550e8400-e29b-41d4-a716-446655440001",maxLength:500,format:"uuid"},recipientName:{type:"string",description:"Name of the recipient (user) who received the certificate",example:"John Doe",maxLength:500},title:{type:"string",description:"Title of the certificate",example:"Kubernetes Expert Certification",maxLength:500},description:{type:"string",description:"Description of the certificate",example:"Awarded for successfully completing the Kubernetes Expert course",maxLength:5e3},issuingAuthorities:{type:"array",items:{"x-go-type":"CertificateIssuingAuthority",type:"object",required:["name","url"],properties:{name:{type:"string",description:"Name of the issuing authority",example:"Cloud Native Foundation",minLength:1,maxLength:255},role:{type:"string",description:"Role of the issuing authority",example:"COO",maxLength:500},signatureUrl:{type:"string",format:"uri",description:"URL to the signature image of the issuing authority should be a publicly accessible URL and transparent PNG or SVG format",example:"http://localhost:9876/signatures/cloud-native-foundation.png"}}},description:"List of issuing authorities for the certificate"},issuedDate:{type:"string",format:"date-time",description:"Date when the certificate was issued",example:"2023-10-01 12:00:00+00:00"},expirationDate:{type:"string",format:"date-time",description:"Date when the certificate expires. Dynamically calculated from issued_date and expires_in; not specified by instructors.",example:"2025-10-01 12:00:00+00:00"},expiresIn:{type:"integer",description:"Number of months after which the certificate expires",example:24,minimum:0}}},metadata:{type:"object",description:"Additional metadata about the registration",additionalProperties:true,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"metadata"}}}}}}},400:{description:"Invalid request parameters"},401:{description:"Expired JWT token used or insufficient privilege",content:{"text/plain":{schema:{type:"string"}}}},404:{description:"Content not found"},500:{description:"Server error"}}}},"/api/academy/registrations/{registrationId}/progress-tracker/update-current-item":{post:{tags:["Academy"],"x-internal":["cloud"],operationId:"updateCurrentItemInProgressTracker",summary:"Update the current item in the progress tracker",parameters:[{name:"registrationId",in:"path",required:true,schema:{type:"string"},description:"The ID of the registration"}],requestBody:{required:true,content:{"application/json":{schema:{type:"object",properties:{contentType:{type:"string",enum:["learning-path","challenge","certification"],"x-go-type":"ContentType"},itemData:{"x-go-type":"CurriculaCurrentItemData",type:"object",required:["id","lastOpened","contentType"],properties:{id:{type:"string",description:"CurriculaCurrentItemData ID.",maxLength:500,format:"uuid"},lastOpened:{type:"string",format:"date-time",description:"The last opened of the curriculacurrentitemdata."},contentType:{type:"string",enum:["learning-path","challenge","certification"],"x-go-type":"ContentType"}}}},required:["contentType","itemData"]}}}},responses:{200:{description:"Progress tracker updated",content:{"application/json":{schema:{type:"object",properties:{message:{type:"string",description:"The message of the updatecurrentitemprogressresponse.",maxLength:500},progressTracker:{type:"object",required:["currentItem","grades","timeSpent","completed","completedItems"],properties:{currentItem:{type:"object",additionalProperties:{"x-go-type":"CurriculaCurrentItemData",type:"object",required:["id","lastOpened","contentType"],properties:{id:{type:"string",description:"CurriculaCurrentItemData ID.",maxLength:500,format:"uuid"},lastOpened:{type:"string",format:"date-time",description:"The last opened of the curriculacurrentitemdata."},contentType:{type:"string",enum:["learning-path","challenge","certification"],"x-go-type":"ContentType"}}},description:"The current item of the curriculaprogresstracker."},grades:{type:"object",additionalProperties:{"x-go-type":"QuizEvaluationResult",type:"object",required:["score","passed","totalMarks","passPercentage","quiz","attemptedAt","attempts","percentageScored","correctSubmissions"],properties:{score:{type:"integer",description:"The score of the quizevaluationresult.",minimum:0},passed:{type:"boolean",description:"The passed of the quizevaluationresult."},percentageScored:{type:"number",format:"float",description:"The percentage scored of the quizevaluationresult.",minimum:0},totalMarks:{type:"integer",description:"The total marks of the quizevaluationresult.",minimum:0},passPercentage:{type:"number",format:"float",description:"The pass percentage of the quizevaluationresult.",minimum:0},correctSubmissions:{type:"object",additionalProperties:{type:"boolean"},description:"The correct submissions of the quizevaluationresult."},quiz:{"x-go-type":"Quiz","x-generate-db-helpers":true,type:"object",required:["id","title","org_id","description","slug","relPermalink","permalink","type","section","layout","date","final","lastmod","draft","filePath","passPercentage","timeLimit","maxAttempts","questions","totalQuestions","totalQuestionsInBank","totalQuestionSets","totalMarks","prerequisites","nextPage"],properties:{id:{type:"string","x-go-name":"ID","x-oapi-codegen-extra-tags":{json:"id"},description:"Quiz ID.",maxLength:500,format:"uuid"},org_id:{type:"string",description:"Organization ID that owns this quiz",example:"layer5","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"},maxLength:500,format:"uuid"},final:{type:"boolean",description:"Indicates if the quiz is final . i.e this quiz will used to evaluate the completion of parent section eg course , module , learning path",example:true},title:{type:"string",description:"The title of the quiz.",maxLength:500},description:{type:"string",description:"Description of the quiz.",maxLength:5e3},slug:{type:"string",description:"The slug of the quiz.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the quiz.",maxLength:500},permalink:{type:"string",description:"The permalink of the quiz.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255},section:{type:"string",description:"The section of the quiz.",maxLength:500},layout:{type:"string",description:"The layout of the quiz.",maxLength:500},date:{type:"string",format:"date",description:"The date of the quiz."},lastmod:{type:"string",format:"date",description:"The lastmod of the quiz."},draft:{type:"boolean",description:"The draft of the quiz."},filePath:{type:"string",description:"The file path of the quiz.",maxLength:500},passPercentage:{type:"number",format:"float",description:"The pass percentage of the quiz.",minimum:0},timeLimit:{description:"Time limit for the quiz in minutes. A value of 0 indicates no time limit.",type:"integer",minimum:0},maxAttempts:{description:"Maximum number of attempts allowed for the quiz. A value of 0 indicates unlimited attempts.",type:"integer",minimum:0},questions:{type:"array",items:{"x-go-type":"Question",type:"object",required:["id","text","type","marks","options","correctAnswer"],properties:{id:{type:"string",description:"Question ID.",maxLength:500,format:"uuid"},text:{type:"string",description:"The text of the question.",maxLength:500},type:{"x-go-type":"QuestionType",type:"string","x-enum-varnames":["QuestionTypeMultipleAnswers","QuestionTypeSingleAnswer","QuestionTypeShortAnswer","QuestionTypeEssay"],enum:["multiple-answers","single-answer","short-answer","essay"]},marks:{type:"integer",description:"The marks of the question.",minimum:0},multipleAnswers:{type:"boolean",description:"The multiple answers of the question."},options:{type:"array",items:{"x-go-type":"QuestionOption",type:"object",required:["id","text","isCorrect"],properties:{id:{type:"string",description:"QuestionOption ID.",maxLength:500,format:"uuid"},text:{type:"string",description:"The text of the questionoption.",maxLength:500},isCorrect:{type:"boolean",description:"The is correct of the questionoption."}}},description:"The options of the question."},correctAnswer:{type:"string",description:"The correct answer of the question.",maxLength:500}}},description:"The questions of the quiz."},totalQuestions:{type:"integer",description:"The total questions of the quiz.",minimum:0},totalQuestionsInBank:{type:"integer",description:"The total questions in bank of the quiz.",minimum:0},totalQuestionSets:{type:"integer",description:"The total question sets of the quiz.",minimum:0},totalMarks:{type:"integer",description:"The total marks of the quiz.",minimum:0},prerequisites:{type:"array",items:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}},description:"The prerequisites of the quiz."},parent:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}},nextPage:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}}}},attemptedAt:{type:"string",format:"date-time",description:"The attempted at of the quizevaluationresult."},attempts:{type:"integer",description:"The attempts of the quizevaluationresult.",minimum:0}}},description:"The grades of the curriculaprogresstracker."},timeSpent:{type:"integer",description:"Total time spent in seconds",minimum:0},completedItems:{type:"object",description:"Items that have been completed (map of item IDs to item data)",additionalProperties:{"x-go-type":"ProgressItemCompleted",type:"object",required:["completedAt","itemData"],properties:{completedAt:{type:"string",format:"date-time",description:"Timestamp when the item was completed"},itemData:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}}}}},completed:{type:"string",format:"date-time","x-go-type":"core.NullTime",description:"The completed of the curriculaprogresstracker."}}},registrationId:{type:"string",description:"ID of the associated registration.",maxLength:500,format:"uuid"},contentType:{type:"string",enum:["learning-path","challenge","certification"]},itemData:{type:"object",required:["id","lastOpened","contentType"],properties:{id:{type:"string",description:"CurriculaCurrentItemData ID.",maxLength:500,format:"uuid"},lastOpened:{type:"string",format:"date-time",description:"The last opened of the curriculacurrentitemdata."},contentType:{type:"string",enum:["learning-path","challenge","certification"],"x-go-type":"ContentType"}}}}}}}},400:{description:"Bad request",content:{"application/json":{schema:{type:"object",properties:{error:{type:"string",description:"The error of the errorresponse.",maxLength:500},details:{type:"string",description:"The details of the errorresponse.",maxLength:500}}}}}},401:{description:"Expired JWT token used or insufficient privilege",content:{"text/plain":{schema:{type:"string"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Server error",content:{"application/json":{schema:{type:"object",properties:{error:{type:"string",description:"The error of the errorresponse.",maxLength:500},details:{type:"string",description:"The details of the errorresponse.",maxLength:500}}}}}}}}},"/api/academy/registrations/tests":{get:{tags:["Academy"],"x-internal":["cloud"],operationId:"getTestByAbsPath",summary:"Get test metadata",description:"Returns metadata for test identified by its absolute path.",parameters:[{name:"absPath",in:"query",required:true,description:"The absolute path of the test to retrieve",schema:{type:"string"}}],responses:{200:{description:"A single test",content:{"application/json":{schema:{"x-generate-db-helpers":true,type:"object",required:["id","title","org_id","description","slug","relPermalink","permalink","type","section","layout","date","final","lastmod","draft","filePath","passPercentage","timeLimit","maxAttempts","questions","totalQuestions","totalQuestionsInBank","totalQuestionSets","totalMarks","prerequisites","nextPage"],properties:{id:{type:"string","x-go-name":"ID","x-oapi-codegen-extra-tags":{json:"id"},description:"Quiz ID.",maxLength:500,format:"uuid"},org_id:{type:"string",description:"Organization ID that owns this quiz",example:"layer5","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"},maxLength:500,format:"uuid"},final:{type:"boolean",description:"Indicates if the quiz is final . i.e this quiz will used to evaluate the completion of parent section eg course , module , learning path",example:true},title:{type:"string",description:"The title of the quiz.",maxLength:500},description:{type:"string",description:"Description of the quiz.",maxLength:5e3},slug:{type:"string",description:"The slug of the quiz.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the quiz.",maxLength:500},permalink:{type:"string",description:"The permalink of the quiz.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255},section:{type:"string",description:"The section of the quiz.",maxLength:500},layout:{type:"string",description:"The layout of the quiz.",maxLength:500},date:{type:"string",format:"date",description:"The date of the quiz."},lastmod:{type:"string",format:"date",description:"The lastmod of the quiz."},draft:{type:"boolean",description:"The draft of the quiz."},filePath:{type:"string",description:"The file path of the quiz.",maxLength:500},passPercentage:{type:"number",format:"float",description:"The pass percentage of the quiz.",minimum:0},timeLimit:{description:"Time limit for the quiz in minutes. A value of 0 indicates no time limit.",type:"integer",minimum:0},maxAttempts:{description:"Maximum number of attempts allowed for the quiz. A value of 0 indicates unlimited attempts.",type:"integer",minimum:0},questions:{type:"array",items:{"x-go-type":"Question",type:"object",required:["id","text","type","marks","options","correctAnswer"],properties:{id:{type:"string",description:"Question ID.",maxLength:500,format:"uuid"},text:{type:"string",description:"The text of the question.",maxLength:500},type:{"x-go-type":"QuestionType",type:"string","x-enum-varnames":["QuestionTypeMultipleAnswers","QuestionTypeSingleAnswer","QuestionTypeShortAnswer","QuestionTypeEssay"],enum:["multiple-answers","single-answer","short-answer","essay"]},marks:{type:"integer",description:"The marks of the question.",minimum:0},multipleAnswers:{type:"boolean",description:"The multiple answers of the question."},options:{type:"array",items:{"x-go-type":"QuestionOption",type:"object",required:["id","text","isCorrect"],properties:{id:{type:"string",description:"QuestionOption ID.",maxLength:500,format:"uuid"},text:{type:"string",description:"The text of the questionoption.",maxLength:500},isCorrect:{type:"boolean",description:"The is correct of the questionoption."}}},description:"The options of the question."},correctAnswer:{type:"string",description:"The correct answer of the question.",maxLength:500}}},description:"The questions of the quiz."},totalQuestions:{type:"integer",description:"The total questions of the quiz.",minimum:0},totalQuestionsInBank:{type:"integer",description:"The total questions in bank of the quiz.",minimum:0},totalQuestionSets:{type:"integer",description:"The total question sets of the quiz.",minimum:0},totalMarks:{type:"integer",description:"The total marks of the quiz.",minimum:0},prerequisites:{type:"array",items:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}},description:"The prerequisites of the quiz."},parent:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}},nextPage:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}}}}}}},400:{description:"Invalid request parameters"},401:{description:"Expired JWT token used or insufficient privilege",content:{"text/plain":{schema:{type:"string"}}}},404:{description:"Quiz not found"},500:{description:"Server error"}}}},"/api/academy/registrations/test-sessions/start":{post:{tags:["Academy"],"x-internal":["cloud"],operationId:"startTestById",summary:"Start a Test by ID",description:"Starts a new test session for the quiz identified by its ID.",requestBody:{required:true,content:{"application/json":{schema:{type:"object",required:["testAbsPath","registrationId"],properties:{testAbsPath:{type:"string",description:"The test abs path of the starttestrequest.",maxLength:500},registrationId:{type:"string",description:"ID of the associated registration.",maxLength:500,format:"uuid"}}}}}},responses:{200:{description:"A single test",content:{"application/json":{schema:{"x-generate-db-helpers":true,type:"object",required:["id","title","org_id","description","slug","relPermalink","permalink","type","section","layout","date","final","lastmod","draft","filePath","passPercentage","timeLimit","maxAttempts","questions","totalQuestions","totalQuestionsInBank","totalQuestionSets","totalMarks","prerequisites","nextPage"],properties:{id:{type:"string","x-go-name":"ID","x-oapi-codegen-extra-tags":{json:"id"},description:"Quiz ID.",maxLength:500,format:"uuid"},org_id:{type:"string",description:"Organization ID that owns this quiz",example:"layer5","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"},maxLength:500,format:"uuid"},final:{type:"boolean",description:"Indicates if the quiz is final . i.e this quiz will used to evaluate the completion of parent section eg course , module , learning path",example:true},title:{type:"string",description:"The title of the quiz.",maxLength:500},description:{type:"string",description:"Description of the quiz.",maxLength:5e3},slug:{type:"string",description:"The slug of the quiz.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the quiz.",maxLength:500},permalink:{type:"string",description:"The permalink of the quiz.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255},section:{type:"string",description:"The section of the quiz.",maxLength:500},layout:{type:"string",description:"The layout of the quiz.",maxLength:500},date:{type:"string",format:"date",description:"The date of the quiz."},lastmod:{type:"string",format:"date",description:"The lastmod of the quiz."},draft:{type:"boolean",description:"The draft of the quiz."},filePath:{type:"string",description:"The file path of the quiz.",maxLength:500},passPercentage:{type:"number",format:"float",description:"The pass percentage of the quiz.",minimum:0},timeLimit:{description:"Time limit for the quiz in minutes. A value of 0 indicates no time limit.",type:"integer",minimum:0},maxAttempts:{description:"Maximum number of attempts allowed for the quiz. A value of 0 indicates unlimited attempts.",type:"integer",minimum:0},questions:{type:"array",items:{"x-go-type":"Question",type:"object",required:["id","text","type","marks","options","correctAnswer"],properties:{id:{type:"string",description:"Question ID.",maxLength:500,format:"uuid"},text:{type:"string",description:"The text of the question.",maxLength:500},type:{"x-go-type":"QuestionType",type:"string","x-enum-varnames":["QuestionTypeMultipleAnswers","QuestionTypeSingleAnswer","QuestionTypeShortAnswer","QuestionTypeEssay"],enum:["multiple-answers","single-answer","short-answer","essay"]},marks:{type:"integer",description:"The marks of the question.",minimum:0},multipleAnswers:{type:"boolean",description:"The multiple answers of the question."},options:{type:"array",items:{"x-go-type":"QuestionOption",type:"object",required:["id","text","isCorrect"],properties:{id:{type:"string",description:"QuestionOption ID.",maxLength:500,format:"uuid"},text:{type:"string",description:"The text of the questionoption.",maxLength:500},isCorrect:{type:"boolean",description:"The is correct of the questionoption."}}},description:"The options of the question."},correctAnswer:{type:"string",description:"The correct answer of the question.",maxLength:500}}},description:"The questions of the quiz."},totalQuestions:{type:"integer",description:"The total questions of the quiz.",minimum:0},totalQuestionsInBank:{type:"integer",description:"The total questions in bank of the quiz.",minimum:0},totalQuestionSets:{type:"integer",description:"The total question sets of the quiz.",minimum:0},totalMarks:{type:"integer",description:"The total marks of the quiz.",minimum:0},prerequisites:{type:"array",items:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}},description:"The prerequisites of the quiz."},parent:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}},nextPage:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}}}}}}},400:{description:"Invalid request parameters"},401:{description:"Expired JWT token used or insufficient privilege",content:{"text/plain":{schema:{type:"string"}}}},404:{description:"Quiz not found"},500:{description:"Server error"}}}},"/api/academy/registrations/{id}/test-sessions":{get:{tags:["Academy"],"x-internal":["cloud"],operationId:"getAllTestSessionsForRegistration",summary:"Get all tests for a registration",description:"Returns all tests associated with a specific registration ID for a user.",parameters:[{name:"id",in:"path",required:true,description:"The ID of the registration to retrieve tests for",schema:{type:"string"}},{name:"page",in:"query",description:"Get responses by page",schema:{type:"string"}},{name:"pagesize",in:"query",description:"Get responses by pagesize",schema:{type:"string"}},{name:"testAbsPath",in:"query",required:false,description:"Filter tests by absolute path",schema:{type:"string"}}],responses:{200:{description:"A list of tests for the specified registration",content:{"application/json":{schema:{type:"array",items:{type:"array",description:"Test submissions made by the user (array of QuizEvaluationResult)",items:{type:"object",required:["score","passed","totalMarks","passPercentage","quiz","attemptedAt","attempts","percentageScored","correctSubmissions"],properties:{score:{type:"integer",description:"The score of the quizevaluationresult.",minimum:0},passed:{type:"boolean",description:"The passed of the quizevaluationresult."},percentageScored:{type:"number",format:"float",description:"The percentage scored of the quizevaluationresult.",minimum:0},totalMarks:{type:"integer",description:"The total marks of the quizevaluationresult.",minimum:0},passPercentage:{type:"number",format:"float",description:"The pass percentage of the quizevaluationresult.",minimum:0},correctSubmissions:{type:"object",additionalProperties:{type:"boolean"},description:"The correct submissions of the quizevaluationresult."},quiz:{"x-go-type":"Quiz","x-generate-db-helpers":true,type:"object",required:["id","title","org_id","description","slug","relPermalink","permalink","type","section","layout","date","final","lastmod","draft","filePath","passPercentage","timeLimit","maxAttempts","questions","totalQuestions","totalQuestionsInBank","totalQuestionSets","totalMarks","prerequisites","nextPage"],properties:{id:{type:"string","x-go-name":"ID","x-oapi-codegen-extra-tags":{json:"id"},description:"Quiz ID.",maxLength:500,format:"uuid"},org_id:{type:"string",description:"Organization ID that owns this quiz",example:"layer5","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"},maxLength:500,format:"uuid"},final:{type:"boolean",description:"Indicates if the quiz is final . i.e this quiz will used to evaluate the completion of parent section eg course , module , learning path",example:true},title:{type:"string",description:"The title of the quiz.",maxLength:500},description:{type:"string",description:"Description of the quiz.",maxLength:5e3},slug:{type:"string",description:"The slug of the quiz.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the quiz.",maxLength:500},permalink:{type:"string",description:"The permalink of the quiz.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255},section:{type:"string",description:"The section of the quiz.",maxLength:500},layout:{type:"string",description:"The layout of the quiz.",maxLength:500},date:{type:"string",format:"date",description:"The date of the quiz."},lastmod:{type:"string",format:"date",description:"The lastmod of the quiz."},draft:{type:"boolean",description:"The draft of the quiz."},filePath:{type:"string",description:"The file path of the quiz.",maxLength:500},passPercentage:{type:"number",format:"float",description:"The pass percentage of the quiz.",minimum:0},timeLimit:{description:"Time limit for the quiz in minutes. A value of 0 indicates no time limit.",type:"integer",minimum:0},maxAttempts:{description:"Maximum number of attempts allowed for the quiz. A value of 0 indicates unlimited attempts.",type:"integer",minimum:0},questions:{type:"array",items:{"x-go-type":"Question",type:"object",required:["id","text","type","marks","options","correctAnswer"],properties:{id:{type:"string",description:"Question ID.",maxLength:500,format:"uuid"},text:{type:"string",description:"The text of the question.",maxLength:500},type:{"x-go-type":"QuestionType",type:"string","x-enum-varnames":["QuestionTypeMultipleAnswers","QuestionTypeSingleAnswer","QuestionTypeShortAnswer","QuestionTypeEssay"],enum:["multiple-answers","single-answer","short-answer","essay"]},marks:{type:"integer",description:"The marks of the question.",minimum:0},multipleAnswers:{type:"boolean",description:"The multiple answers of the question."},options:{type:"array",items:{"x-go-type":"QuestionOption",type:"object",required:["id","text","isCorrect"],properties:{id:{type:"string",description:"QuestionOption ID.",maxLength:500,format:"uuid"},text:{type:"string",description:"The text of the questionoption.",maxLength:500},isCorrect:{type:"boolean",description:"The is correct of the questionoption."}}},description:"The options of the question."},correctAnswer:{type:"string",description:"The correct answer of the question.",maxLength:500}}},description:"The questions of the quiz."},totalQuestions:{type:"integer",description:"The total questions of the quiz.",minimum:0},totalQuestionsInBank:{type:"integer",description:"The total questions in bank of the quiz.",minimum:0},totalQuestionSets:{type:"integer",description:"The total question sets of the quiz.",minimum:0},totalMarks:{type:"integer",description:"The total marks of the quiz.",minimum:0},prerequisites:{type:"array",items:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}},description:"The prerequisites of the quiz."},parent:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}},nextPage:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}}}},attemptedAt:{type:"string",format:"date-time",description:"The attempted at of the quizevaluationresult."},attempts:{type:"integer",description:"The attempts of the quizevaluationresult.",minimum:0}}}}}}}},400:{description:"Invalid request parameters"},401:{description:"Expired JWT token used or insufficient privilege",content:{"text/plain":{schema:{type:"string"}}}},404:{description:"Registration not found"},500:{description:"Server error"}}}},"/api/academy/registrations/test-sessions/submit":{post:{tags:["Academy"],"x-internal":["cloud"],operationId:"submitQuiz",summary:"Submit a quiz for evaluation",requestBody:{required:true,content:{"application/json":{schema:{type:"object",required:["quizAbsPath","registrationId","testSessionId","user_id","answers"],properties:{testSessionId:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},quizAbsPath:{type:"string",description:"The quiz abs path of the quizsubmission.",maxLength:500},registrationId:{type:"string",description:"ID of the associated registration.",maxLength:500,format:"uuid"},user_id:{type:"string",description:"ID of the user who owns or created this resource.",maxLength:500,format:"uuid"},answers:{type:"array",items:{"x-go-type":"SubmittedAnswer",type:"object",required:["questionId","selectedOptionId","answerText"],properties:{questionId:{type:"string",description:"ID of the associated question.",maxLength:500,format:"uuid"},selectedOptionId:{type:"object",additionalProperties:{type:"boolean"},description:"Map of selected option IDs to a boolean value indicating if it was selected."},answerText:{type:"string",description:"The answer text of the submittedanswer.",maxLength:500}}},description:"The answers of the quizsubmission."}}}}}},responses:{200:{description:"Progress tracker updated",content:{"application/json":{schema:{type:"object",required:["score","passed","totalMarks","passPercentage","quiz","attemptedAt","attempts","percentageScored","correctSubmissions"],properties:{score:{type:"integer",description:"The score of the quizevaluationresult.",minimum:0},passed:{type:"boolean",description:"The passed of the quizevaluationresult."},percentageScored:{type:"number",format:"float",description:"The percentage scored of the quizevaluationresult.",minimum:0},totalMarks:{type:"integer",description:"The total marks of the quizevaluationresult.",minimum:0},passPercentage:{type:"number",format:"float",description:"The pass percentage of the quizevaluationresult.",minimum:0},correctSubmissions:{type:"object",additionalProperties:{type:"boolean"},description:"The correct submissions of the quizevaluationresult."},quiz:{"x-go-type":"Quiz","x-generate-db-helpers":true,type:"object",required:["id","title","org_id","description","slug","relPermalink","permalink","type","section","layout","date","final","lastmod","draft","filePath","passPercentage","timeLimit","maxAttempts","questions","totalQuestions","totalQuestionsInBank","totalQuestionSets","totalMarks","prerequisites","nextPage"],properties:{id:{type:"string","x-go-name":"ID","x-oapi-codegen-extra-tags":{json:"id"},description:"Quiz ID.",maxLength:500,format:"uuid"},org_id:{type:"string",description:"Organization ID that owns this quiz",example:"layer5","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"},maxLength:500,format:"uuid"},final:{type:"boolean",description:"Indicates if the quiz is final . i.e this quiz will used to evaluate the completion of parent section eg course , module , learning path",example:true},title:{type:"string",description:"The title of the quiz.",maxLength:500},description:{type:"string",description:"Description of the quiz.",maxLength:5e3},slug:{type:"string",description:"The slug of the quiz.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the quiz.",maxLength:500},permalink:{type:"string",description:"The permalink of the quiz.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255},section:{type:"string",description:"The section of the quiz.",maxLength:500},layout:{type:"string",description:"The layout of the quiz.",maxLength:500},date:{type:"string",format:"date",description:"The date of the quiz."},lastmod:{type:"string",format:"date",description:"The lastmod of the quiz."},draft:{type:"boolean",description:"The draft of the quiz."},filePath:{type:"string",description:"The file path of the quiz.",maxLength:500},passPercentage:{type:"number",format:"float",description:"The pass percentage of the quiz.",minimum:0},timeLimit:{description:"Time limit for the quiz in minutes. A value of 0 indicates no time limit.",type:"integer",minimum:0},maxAttempts:{description:"Maximum number of attempts allowed for the quiz. A value of 0 indicates unlimited attempts.",type:"integer",minimum:0},questions:{type:"array",items:{"x-go-type":"Question",type:"object",required:["id","text","type","marks","options","correctAnswer"],properties:{id:{type:"string",description:"Question ID.",maxLength:500,format:"uuid"},text:{type:"string",description:"The text of the question.",maxLength:500},type:{"x-go-type":"QuestionType",type:"string","x-enum-varnames":["QuestionTypeMultipleAnswers","QuestionTypeSingleAnswer","QuestionTypeShortAnswer","QuestionTypeEssay"],enum:["multiple-answers","single-answer","short-answer","essay"]},marks:{type:"integer",description:"The marks of the question.",minimum:0},multipleAnswers:{type:"boolean",description:"The multiple answers of the question."},options:{type:"array",items:{"x-go-type":"QuestionOption",type:"object",required:["id","text","isCorrect"],properties:{id:{type:"string",description:"QuestionOption ID.",maxLength:500,format:"uuid"},text:{type:"string",description:"The text of the questionoption.",maxLength:500},isCorrect:{type:"boolean",description:"The is correct of the questionoption."}}},description:"The options of the question."},correctAnswer:{type:"string",description:"The correct answer of the question.",maxLength:500}}},description:"The questions of the quiz."},totalQuestions:{type:"integer",description:"The total questions of the quiz.",minimum:0},totalQuestionsInBank:{type:"integer",description:"The total questions in bank of the quiz.",minimum:0},totalQuestionSets:{type:"integer",description:"The total question sets of the quiz.",minimum:0},totalMarks:{type:"integer",description:"The total marks of the quiz.",minimum:0},prerequisites:{type:"array",items:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}},description:"The prerequisites of the quiz."},parent:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}},nextPage:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}}}},attemptedAt:{type:"string",format:"date-time",description:"The attempted at of the quizevaluationresult."},attempts:{type:"integer",description:"The attempts of the quizevaluationresult.",minimum:0}}}}}},400:{description:"Bad request",content:{"application/json":{schema:{type:"object",properties:{error:{type:"string",description:"The error of the errorresponse.",maxLength:500},details:{type:"string",description:"The details of the errorresponse.",maxLength:500}}}}}},401:{description:"Expired JWT token used or insufficient privilege",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Server error",content:{"application/json":{schema:{type:"object",properties:{error:{type:"string",description:"The error of the errorresponse.",maxLength:500},details:{type:"string",description:"The details of the errorresponse.",maxLength:500}}}}}}}}},"/api/academy/admin/summary":{get:{tags:["Academy"],"x-internal":["cloud"],operationId:"getAcademyAdminSummary",summary:"Get academy content summary",description:"Returns a summary of all academy content with metrics.",responses:{200:{description:"A list of content with total count and registration metrics",content:{"application/json":{schema:{type:"object"}}}},400:{description:"Invalid request parameters"},401:{description:"Expired JWT token used or insufficient privilege",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Server error"}}}},"/api/academy/admin/registrations":{get:{"x-internal":["cloud"],tags:["Academy"],operationId:"getAcademyAdminRegistrations",summary:"Get academy registrations",description:"Returns a list of academy registrations with user, curricula, and pagination details.",parameters:[{name:"pagesize",in:"query",required:false,description:"Number of results per page",schema:{type:"integer"}},{name:"page",in:"query",required:false,description:"Page number",schema:{type:"integer"}},{name:"contentType",in:"query",required:false,description:"Filter by content types",style:"form",explode:true,schema:{type:"array",items:{type:"string"}}},{name:"status",in:"query",required:false,description:"Filter by registration status",style:"form",explode:true,schema:{type:"array",items:{type:"string"}}}],responses:{200:{description:"List of registrations with pagination info",content:{"application/json":{schema:{type:"object",required:["data","total_count","page_size","page"],properties:{data:{type:"array",items:{"x-go-type":"UserRegistration",type:"object",required:["curricula_title","curricula_type","curricula_permalink","registration_id","status","user_id","user_email","user_last_name","user_first_name","user_avatar_url","total_count"],properties:{curricula_title:{type:"string",description:"Title of the curricula","x-oapi-codegen-extra-tags":{db:"curricula_title"},maxLength:500},curricula_type:{type:"string",enum:["learning-path","challenge","certification"],description:"Type of the curricula","x-go-type":"ContentType","x-oapi-codegen-extra-tags":{db:"curricula_type"}},curricula_permalink:{type:"string",description:"Permalink of the curricula","x-oapi-codegen-extra-tags":{db:"curricula_permalink"},maxLength:500},registration_id:{type:"string",format:"uuid",description:"Unique ID of the registration","x-oapi-codegen-extra-tags":{db:"registration_id"}},status:{description:"Registration status","x-go-type":"AcademyRegistrationStatus","x-oapi-codegen-extra-tags":{db:"status"},type:"string",enum:["registered","completed","failed","withdrawn"]},created_at:{type:"string",format:"date-time",description:"When the registration was created","x-oapi-codegen-extra-tags":{db:"created_at"}},user_id:{type:"string",format:"uuid",description:"ID of the user","x-oapi-codegen-extra-tags":{db:"user_id"}},user_first_name:{type:"string",description:"First name of the user","x-oapi-codegen-extra-tags":{db:"user_first_name"},maxLength:500},user_last_name:{type:"string",description:"Last name of the user","x-oapi-codegen-extra-tags":{db:"user_last_name"},maxLength:500},user_email:{type:"string",format:"email",description:"Email of the user","x-oapi-codegen-extra-tags":{db:"user_email"}},user_avatar_url:{type:"string",format:"uri",description:"Avatar URL of the user","x-oapi-codegen-extra-tags":{db:"user_avatar_url"}},total_count:{type:"integer",format:"int64",description:"Total count for pagination","x-oapi-codegen-extra-tags":{db:"total_count"},minimum:0}}},description:"The data of the curricularegistrationsresponse."},total_count:{type:"integer",format:"int64",description:"Total number of items available.",minimum:0},page_size:{type:"integer",description:"Number of items per page.",minimum:1},page:{type:"integer",description:"Current page number of the result set.",minimum:0}}}}}},400:{description:"Invalid request parameters"},401:{description:"Expired JWT token used or insufficient privilege",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Server error"}}}},"/api/academy/certificates/{certificateId}":{get:{"x-internal":["cloud"],tags:["Academy"],operationId:"getCertificateById",summary:"Get a certificate by ID",description:"Returns a certificate identified by its ID.",parameters:[{name:"certificateId",in:"path",required:true,description:"The ID of the certificate to retrieve",schema:{type:"string"}}],responses:{200:{description:"A single certificate",content:{"application/json":{schema:{type:"object",required:["id","orgId","title","description","issuingAuthorities","issuedDate","recipientId","recipientName"],properties:{id:{type:"string",description:"Unique identifier for the certificate",example:"550e8400-e29b-41d4-a716-446655440000","x-go-name":"ID",maxLength:500,format:"uuid"},orgId:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},recipientId:{type:"string",description:"ID of the recipient (user) who received the certificate",example:"550e8400-e29b-41d4-a716-446655440001",maxLength:500,format:"uuid"},recipientName:{type:"string",description:"Name of the recipient (user) who received the certificate",example:"John Doe",maxLength:500},title:{type:"string",description:"Title of the certificate",example:"Kubernetes Expert Certification",maxLength:500},description:{type:"string",description:"Description of the certificate",example:"Awarded for successfully completing the Kubernetes Expert course",maxLength:5e3},issuingAuthorities:{type:"array",items:{"x-go-type":"CertificateIssuingAuthority",type:"object",required:["name","url"],properties:{name:{type:"string",description:"Name of the issuing authority",example:"Cloud Native Foundation",minLength:1,maxLength:255},role:{type:"string",description:"Role of the issuing authority",example:"COO",maxLength:500},signatureUrl:{type:"string",format:"uri",description:"URL to the signature image of the issuing authority should be a publicly accessible URL and transparent PNG or SVG format",example:"http://localhost:9876/signatures/cloud-native-foundation.png"}}},description:"List of issuing authorities for the certificate"},issuedDate:{type:"string",format:"date-time",description:"Date when the certificate was issued",example:"2023-10-01 12:00:00+00:00"},expirationDate:{type:"string",format:"date-time",description:"Date when the certificate expires. Dynamically calculated from issued_date and expires_in; not specified by instructors.",example:"2025-10-01 12:00:00+00:00"},expiresIn:{type:"integer",description:"Number of months after which the certificate expires",example:24,minimum:0}}}}}},400:{description:"Invalid request parameters"},401:{description:"Expired JWT token used or insufficient privilege",content:{"text/plain":{schema:{type:"string"}}}},404:{description:"Certificate not found"},500:{description:"Server error"}}}}},components:{responses:{400:{description:"Invalid request body or request param",content:{"text/plain":{schema:{type:"string"}}}},401:{description:"Expired JWT token used or insufficient privilege",content:{"text/plain":{schema:{type:"string"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error",content:{"text/plain":{schema:{type:"string"}}}}},securitySchemes:{jwt:{type:"http",scheme:"bearer",bearerFormat:"JWT"}},parameters:{id:{name:"id",in:"path",required:true,description:"The ID of the curricula",schema:{type:"string"}}},schemas:{AcademyCurriculaOrgId:{type:"string",description:"Organization ID that owns this learning path",example:"layer5","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"}},AcademyCurriculaBadgeId:{allOf:[{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}}],description:"ID of the badge to be awarded on completion of this curricula","x-oapi-codegen-extra-tags":{db:"badge_id",json:"badge_id"}},AcademyCurriculaInviteId:{allOf:[{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}}],description:"ID of the invite associated with this Curricula","x-oapi-codegen-extra-tags":{db:"invite_id",json:"invite_id"}},AcademyCurriculaWorkspaceId:{allOf:[{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}}],description:"ID of the workspace to which this Curricula belongs","x-oapi-codegen-extra-tags":{db:"workspace_id",json:"workspace_id"}},AcademyCurriculaCreatedAt:{allOf:[{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}],description:"When the Curricula item was created","x-oapi-codegen-extra-tags":{db:"created_at",json:"created_at"}},AcademyCurriculaUpdatedAt:{allOf:[{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}],description:"When the Curricula was last updated","x-go-type":"core.Time","x-oapi-codegen-extra-tags":{db:"updated_at",json:"updated_at"}},AcademyCurriculaDeletedAt:{allOf:[{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true}],"x-go-type":"core.NullTime","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deleted_at"}},AcademyCurriculaMetadata:{type:"object",description:"Additional metadata about the Curricula",additionalProperties:true,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata"},oneOf:[{"x-go-type":"CurriculaMetadata",type:"object",properties:{title:{type:"string",description:"Title of the learning path",example:"Mastering Kubernetes for Engineers",maxLength:500},description:{type:"string",description:"Short description of the curricula",example:"Learn how to configure your Kubernetes clusters and manage the lifecycle of your workloads",maxLength:5e3},detailedDescription:{type:"string",description:"Detailed description of the curricula",example:"This learning path covers everything from Kubernetes architecture to advanced deployment strategies, including hands-on labs and real-world scenarios.",maxLength:500},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},permalink:{type:"string",format:"uri",description:"Canonical URL for the learning path",example:"http://localhost:9876/academy/learning-paths/layer5/mastering-kubernetes-for-engineers/"},certificate:{"x-go-type":"Certificate",type:"object",required:["id","orgId","title","description","issuingAuthorities","issuedDate","recipientId","recipientName"],properties:{id:{type:"string",description:"Unique identifier for the certificate",example:"550e8400-e29b-41d4-a716-446655440000","x-go-name":"ID",maxLength:500,format:"uuid"},orgId:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},recipientId:{type:"string",description:"ID of the recipient (user) who received the certificate",example:"550e8400-e29b-41d4-a716-446655440001",maxLength:500,format:"uuid"},recipientName:{type:"string",description:"Name of the recipient (user) who received the certificate",example:"John Doe",maxLength:500},title:{type:"string",description:"Title of the certificate",example:"Kubernetes Expert Certification",maxLength:500},description:{type:"string",description:"Description of the certificate",example:"Awarded for successfully completing the Kubernetes Expert course",maxLength:5e3},issuingAuthorities:{type:"array",items:{"x-go-type":"CertificateIssuingAuthority",type:"object",required:["name","url"],properties:{name:{type:"string",description:"Name of the issuing authority",example:"Cloud Native Foundation",minLength:1,maxLength:255},role:{type:"string",description:"Role of the issuing authority",example:"COO",maxLength:500},signatureUrl:{type:"string",format:"uri",description:"URL to the signature image of the issuing authority should be a publicly accessible URL and transparent PNG or SVG format",example:"http://localhost:9876/signatures/cloud-native-foundation.png"}}},description:"List of issuing authorities for the certificate"},issuedDate:{type:"string",format:"date-time",description:"Date when the certificate was issued",example:"2023-10-01 12:00:00+00:00"},expirationDate:{type:"string",format:"date-time",description:"Date when the certificate expires. Dynamically calculated from issued_date and expires_in; not specified by instructors.",example:"2025-10-01 12:00:00+00:00"},expiresIn:{type:"integer",description:"Number of months after which the certificate expires",example:24,minimum:0}}},children:{type:"array",description:"List of children items in the top-level curricula",items:{"x-go-type":"ChildNode",type:"object",properties:{id:{type:"string",description:"Unique identifier for the course",example:"550e8400-e29b-41d4-a716-446655440002","x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},maxLength:500,format:"uuid"},title:{type:"string",description:"Title of the course",example:"Kubernetes Basics",maxLength:500},permalink:{type:"string",format:"uri",description:"URL to the course content",example:"http://localhost:9876/academy/learning-paths/layer5/intro-kubernetes-course/kubernetes/"},description:{type:"string",description:"Course description",example:"Learn the basics of Kubernetes",maxLength:5e3},weight:{type:"number",description:"A numeric value to determine the display order. A smaller number appears first. If not specified, items will be sorted alphabetically by title.",example:"eg 1 , 2",minimum:0},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},type:{"x-go-type":"ContentType",description:"Type of the content (e.g., learning-path, challenge, certification)",type:"string",enum:["learning-path","challenge","certification"]},children:{type:"array",description:"List of child nodes (sub-courses or modules)",items:{type:"object","x-go-type":"ChildNode"}}},required:["title","description","id","permalink"]}}},required:["title","description","permalink"]}]},AcademyCurriculaAccessExpiresAt:{allOf:[{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}],description:"Expiry time for curricula access","x-go-type":"*time.Time","x-oapi-codegen-extra-tags":{json:"access_expires_at",db:"access_expires_at"}},RegisterToAcademyContentRequest:{type:"object",required:["contentId","user_id"],properties:{contentId:{type:"string",description:"ID of the academy content to register for",maxLength:500,format:"uuid"},user_id:{type:"string",format:"uuid",description:"ID of the user registering for the content."},contentType:{type:"string",enum:["learning-path","challenge","certification"]}}},ContentType:{type:"string",enum:["learning-path","challenge","certification"]},Visibility:{type:"string",enum:["public","private"]},Level:{type:"string",enum:["beginner","intermediate","advanced"]},Status:{type:"string",enum:["ready","archived","not_ready"]},AcademyCurricula:{type:"object",additionalProperties:false,description:"AcademyCurricula entity schema.",required:["id","type","org_id","visibility","status","slug","created_at","updated_at","deleted_at","metadata","level"],properties:{id:{type:"string",description:"Id of the Curricula",example:"923458-3490394-934893","x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},maxLength:500,format:"uuid"},type:{"x-go-type":"ContentType","x-oapi-codegen-extra-tags":{db:"type"},type:"string",enum:["learning-path","challenge","certification"]},org_id:{type:"string",description:"Organization ID that owns this learning path",example:"layer5","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"}},visibility:{description:"Visibility of the Curricula","x-go-type":"Visibility","x-oapi-codegen-extra-tags":{db:"visibility",json:"visibility"},type:"string",enum:["public","private"]},status:{example:"ready",description:"Status of the Curricula","x-go-type":"Status","x-oapi-codegen-extra-tags":{db:"status",json:"status"},type:"string",enum:["ready","archived","not_ready"]},slug:{type:"string",description:"slug of the Curricula",example:"intro-kubernetes-course",maxLength:500},level:{description:"Level of the Curricula","x-go-type":"Level","x-oapi-codegen-extra-tags":{db:"level",json:"level"},type:"string",enum:["beginner","intermediate","advanced"]},badge_id:{type:"string",format:"uuid",description:"ID of the badge to be awarded on completion of this curricula","x-go-type":"core.Uuid","x-go-type-import":{path:"github.com/meshery/schemas/models/core",name:"core"},"x-oapi-codegen-extra-tags":{db:"badge_id",json:"badge_id"}},invite_id:{allOf:[{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}}],description:"ID of the invite associated with this Curricula","x-oapi-codegen-extra-tags":{db:"invite_id",json:"invite_id"}},workspace_id:{allOf:[{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}}],description:"ID of the workspace to which this Curricula belongs","x-oapi-codegen-extra-tags":{db:"workspace_id",json:"workspace_id"}},created_at:{allOf:[{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}],description:"When the Curricula item was created","x-oapi-codegen-extra-tags":{db:"created_at",json:"created_at"}},updated_at:{allOf:[{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}],description:"When the Curricula was last updated","x-go-type":"core.Time","x-oapi-codegen-extra-tags":{db:"updated_at",json:"updated_at"}},deleted_at:{allOf:[{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true}],"x-go-type":"core.NullTime","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deleted_at"}},metadata:{type:"object",description:"Additional metadata about the Curricula",additionalProperties:true,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata"},oneOf:[{"x-go-type":"CurriculaMetadata",type:"object",properties:{title:{type:"string",description:"Title of the learning path",example:"Mastering Kubernetes for Engineers",maxLength:500},description:{type:"string",description:"Short description of the curricula",example:"Learn how to configure your Kubernetes clusters and manage the lifecycle of your workloads",maxLength:5e3},detailedDescription:{type:"string",description:"Detailed description of the curricula",example:"This learning path covers everything from Kubernetes architecture to advanced deployment strategies, including hands-on labs and real-world scenarios.",maxLength:500},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},permalink:{type:"string",format:"uri",description:"Canonical URL for the learning path",example:"http://localhost:9876/academy/learning-paths/layer5/mastering-kubernetes-for-engineers/"},certificate:{"x-go-type":"Certificate",type:"object",required:["id","orgId","title","description","issuingAuthorities","issuedDate","recipientId","recipientName"],properties:{id:{type:"string",description:"Unique identifier for the certificate",example:"550e8400-e29b-41d4-a716-446655440000","x-go-name":"ID",maxLength:500,format:"uuid"},orgId:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},recipientId:{type:"string",description:"ID of the recipient (user) who received the certificate",example:"550e8400-e29b-41d4-a716-446655440001",maxLength:500,format:"uuid"},recipientName:{type:"string",description:"Name of the recipient (user) who received the certificate",example:"John Doe",maxLength:500},title:{type:"string",description:"Title of the certificate",example:"Kubernetes Expert Certification",maxLength:500},description:{type:"string",description:"Description of the certificate",example:"Awarded for successfully completing the Kubernetes Expert course",maxLength:5e3},issuingAuthorities:{type:"array",items:{"x-go-type":"CertificateIssuingAuthority",type:"object",required:["name","url"],properties:{name:{type:"string",description:"Name of the issuing authority",example:"Cloud Native Foundation",minLength:1,maxLength:255},role:{type:"string",description:"Role of the issuing authority",example:"COO",maxLength:500},signatureUrl:{type:"string",format:"uri",description:"URL to the signature image of the issuing authority should be a publicly accessible URL and transparent PNG or SVG format",example:"http://localhost:9876/signatures/cloud-native-foundation.png"}}},description:"List of issuing authorities for the certificate"},issuedDate:{type:"string",format:"date-time",description:"Date when the certificate was issued",example:"2023-10-01 12:00:00+00:00"},expirationDate:{type:"string",format:"date-time",description:"Date when the certificate expires. Dynamically calculated from issued_date and expires_in; not specified by instructors.",example:"2025-10-01 12:00:00+00:00"},expiresIn:{type:"integer",description:"Number of months after which the certificate expires",example:24,minimum:0}}},children:{type:"array",description:"List of children items in the top-level curricula",items:{"x-go-type":"ChildNode",type:"object",properties:{id:{type:"string",description:"Unique identifier for the course",example:"550e8400-e29b-41d4-a716-446655440002","x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},maxLength:500,format:"uuid"},title:{type:"string",description:"Title of the course",example:"Kubernetes Basics",maxLength:500},permalink:{type:"string",format:"uri",description:"URL to the course content",example:"http://localhost:9876/academy/learning-paths/layer5/intro-kubernetes-course/kubernetes/"},description:{type:"string",description:"Course description",example:"Learn the basics of Kubernetes",maxLength:5e3},weight:{type:"number",description:"A numeric value to determine the display order. A smaller number appears first. If not specified, items will be sorted alphabetically by title.",example:"eg 1 , 2",minimum:0},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},type:{"x-go-type":"ContentType",description:"Type of the content (e.g., learning-path, challenge, certification)",type:"string",enum:["learning-path","challenge","certification"]},children:{type:"array",description:"List of child nodes (sub-courses or modules)",items:{type:"object","x-go-type":"ChildNode"}}},required:["title","description","id","permalink"]}}},required:["title","description","permalink"]}]}}},SingleAcademyCurriculaResponse:{type:"object",allOf:[{type:"object",additionalProperties:false,description:"AcademyCurricula entity schema.",required:["id","type","org_id","visibility","status","slug","created_at","updated_at","deleted_at","metadata","level"],properties:{id:{type:"string",description:"Id of the Curricula",example:"923458-3490394-934893","x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},maxLength:500,format:"uuid"},type:{"x-go-type":"ContentType","x-oapi-codegen-extra-tags":{db:"type"},type:"string",enum:["learning-path","challenge","certification"]},org_id:{type:"string",description:"Organization ID that owns this learning path",example:"layer5","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"}},visibility:{description:"Visibility of the Curricula","x-go-type":"Visibility","x-oapi-codegen-extra-tags":{db:"visibility",json:"visibility"},type:"string",enum:["public","private"]},status:{example:"ready",description:"Status of the Curricula","x-go-type":"Status","x-oapi-codegen-extra-tags":{db:"status",json:"status"},type:"string",enum:["ready","archived","not_ready"]},slug:{type:"string",description:"slug of the Curricula",example:"intro-kubernetes-course",maxLength:500},level:{description:"Level of the Curricula","x-go-type":"Level","x-oapi-codegen-extra-tags":{db:"level",json:"level"},type:"string",enum:["beginner","intermediate","advanced"]},badge_id:{type:"string",format:"uuid",description:"ID of the badge to be awarded on completion of this curricula","x-go-type":"core.Uuid","x-go-type-import":{path:"github.com/meshery/schemas/models/core",name:"core"},"x-oapi-codegen-extra-tags":{db:"badge_id",json:"badge_id"}},invite_id:{allOf:[{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}}],description:"ID of the invite associated with this Curricula","x-oapi-codegen-extra-tags":{db:"invite_id",json:"invite_id"}},workspace_id:{allOf:[{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}}],description:"ID of the workspace to which this Curricula belongs","x-oapi-codegen-extra-tags":{db:"workspace_id",json:"workspace_id"}},created_at:{allOf:[{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}],description:"When the Curricula item was created","x-oapi-codegen-extra-tags":{db:"created_at",json:"created_at"}},updated_at:{allOf:[{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}],description:"When the Curricula was last updated","x-go-type":"core.Time","x-oapi-codegen-extra-tags":{db:"updated_at",json:"updated_at"}},deleted_at:{allOf:[{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true}],"x-go-type":"core.NullTime","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deleted_at"}},metadata:{type:"object",description:"Additional metadata about the Curricula",additionalProperties:true,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata"},oneOf:[{"x-go-type":"CurriculaMetadata",type:"object",properties:{title:{type:"string",description:"Title of the learning path",example:"Mastering Kubernetes for Engineers",maxLength:500},description:{type:"string",description:"Short description of the curricula",example:"Learn how to configure your Kubernetes clusters and manage the lifecycle of your workloads",maxLength:5e3},detailedDescription:{type:"string",description:"Detailed description of the curricula",example:"This learning path covers everything from Kubernetes architecture to advanced deployment strategies, including hands-on labs and real-world scenarios.",maxLength:500},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},permalink:{type:"string",format:"uri",description:"Canonical URL for the learning path",example:"http://localhost:9876/academy/learning-paths/layer5/mastering-kubernetes-for-engineers/"},certificate:{"x-go-type":"Certificate",type:"object",required:["id","orgId","title","description","issuingAuthorities","issuedDate","recipientId","recipientName"],properties:{id:{type:"string",description:"Unique identifier for the certificate",example:"550e8400-e29b-41d4-a716-446655440000","x-go-name":"ID",maxLength:500,format:"uuid"},orgId:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},recipientId:{type:"string",description:"ID of the recipient (user) who received the certificate",example:"550e8400-e29b-41d4-a716-446655440001",maxLength:500,format:"uuid"},recipientName:{type:"string",description:"Name of the recipient (user) who received the certificate",example:"John Doe",maxLength:500},title:{type:"string",description:"Title of the certificate",example:"Kubernetes Expert Certification",maxLength:500},description:{type:"string",description:"Description of the certificate",example:"Awarded for successfully completing the Kubernetes Expert course",maxLength:5e3},issuingAuthorities:{type:"array",items:{"x-go-type":"CertificateIssuingAuthority",type:"object",required:["name","url"],properties:{name:{type:"string",description:"Name of the issuing authority",example:"Cloud Native Foundation",minLength:1,maxLength:255},role:{type:"string",description:"Role of the issuing authority",example:"COO",maxLength:500},signatureUrl:{type:"string",format:"uri",description:"URL to the signature image of the issuing authority should be a publicly accessible URL and transparent PNG or SVG format",example:"http://localhost:9876/signatures/cloud-native-foundation.png"}}},description:"List of issuing authorities for the certificate"},issuedDate:{type:"string",format:"date-time",description:"Date when the certificate was issued",example:"2023-10-01 12:00:00+00:00"},expirationDate:{type:"string",format:"date-time",description:"Date when the certificate expires. Dynamically calculated from issued_date and expires_in; not specified by instructors.",example:"2025-10-01 12:00:00+00:00"},expiresIn:{type:"integer",description:"Number of months after which the certificate expires",example:24,minimum:0}}},children:{type:"array",description:"List of children items in the top-level curricula",items:{"x-go-type":"ChildNode",type:"object",properties:{id:{type:"string",description:"Unique identifier for the course",example:"550e8400-e29b-41d4-a716-446655440002","x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},maxLength:500,format:"uuid"},title:{type:"string",description:"Title of the course",example:"Kubernetes Basics",maxLength:500},permalink:{type:"string",format:"uri",description:"URL to the course content",example:"http://localhost:9876/academy/learning-paths/layer5/intro-kubernetes-course/kubernetes/"},description:{type:"string",description:"Course description",example:"Learn the basics of Kubernetes",maxLength:5e3},weight:{type:"number",description:"A numeric value to determine the display order. A smaller number appears first. If not specified, items will be sorted alphabetically by title.",example:"eg 1 , 2",minimum:0},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},type:{"x-go-type":"ContentType",description:"Type of the content (e.g., learning-path, challenge, certification)",type:"string",enum:["learning-path","challenge","certification"]},children:{type:"array",description:"List of child nodes (sub-courses or modules)",items:{type:"object","x-go-type":"ChildNode"}}},required:["title","description","id","permalink"]}}},required:["title","description","permalink"]}]}}},{type:"object",required:["registration_count"],properties:{registration_count:{type:"number",description:"Number of registrations associated with this curriculum.",minimum:0,"x-oapi-codegen-extra-tags":{db:"registration_count,omitempty",json:"registration_count,omitempty"}},invitation:{"x-go-type":"invitationv1beta2.Invitation","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta2/invitation",name:"invitationv1beta2"},type:"object",additionalProperties:false,description:"Invitation entity schema.",required:["id","owner_id","name","description","org_id","accepted_by","emails","roles","teams","status","created_at","updated_at","deleted_at"],properties:{id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-go-name":"ID"},owner_id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"owner_id",json:"owner_id"}},is_default:{type:"boolean",description:"Indicates whether the invitation is a default invitation (open invite), which can be used to assign users when signing up from fqdn or custom domain, a organization can only have one default invitation","x-oapi-codegen-extra-tags":{db:"is_default",json:"is_default"}},name:{type:"string",description:"Name of the invitation, which can be used to identify the invitation, required and cant be empty string,",minLength:1,maxLength:255},description:{type:"string",description:"Description of the invitation, which can be used to provide additional information about the invitation, null or empty string means the invitation does not have a description",maxLength:5e3},emails:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",pattern:"^([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-z]{2,}|@[a-zA-Z0-9.-]+\\.[a-z]{2,})$","x-go-type":"string",description:"Exact email address or the email address pattern for which the invitation is valid , null means the invitation is valid for all email addresses"},description:"The emails of the invitation."},org_id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"}},expires_at:{type:"string",format:"date-time",description:"Timestamp when the invitation expires, if applicable , null or empty string means the invitation does not expire","x-oapi-codegen-extra-tags":{db:"expires_at",json:"expires_at"}},quota:{type:"integer",description:"Quota for the invitation, which can be used to limit the number of users that can accept the invitation, null or empty string means the invitation does not have a quota",minimum:0},accepted_by:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string"},description:"List of user ids that have already accepted the invitation, null or empty string means the invitation has not been used yet","x-oapi-codegen-extra-tags":{db:"accepted_by",json:"accepted_by"}},roles:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",description:"Roles that the user will have when accepting the invitation, null or empty string means the invitation does not specify any roles"},description:"The roles of the invitation."},teams:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",description:"Teams that the user will be added to when accepting the invitation, null or empty string means the invitation does not specify any teams"},description:"The teams of the invitation."},status:{"x-go-type":"InvitationStatus",type:"string",enum:["enabled","disabled"],description:"Status of the invitation, where enabled means the invitation is active and can be used, disabled means the invitation is no longer valid and is temporarily inactive, disabled invitations can be re-enabled later."},created_at:{type:"string",format:"date-time",description:"Timestamp when the invitation was created","x-oapi-codegen-extra-tags":{db:"created_at",json:"created_at"}},updated_at:{type:"string",format:"date-time",description:"Timestamp when the invitation was last updated","x-oapi-codegen-extra-tags":{db:"updated_at",json:"updated_at"}},deleted_at:{type:"string",format:"date-time","x-go-type":"core.NullTime","x-go-type-import":{path:"github.com/meshery/schemas/models/core"},description:"Timestamp when the invitation was deleted, if applicable","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deleted_at"}}}}}}]},CreateAcademyCurriculaRequest:{type:"object",properties:{type:{description:"Type of the curricula","x-go-name":"Type","x-go-type":"ContentType","x-oapi-codegen-extra-tags":{json:"type"},type:"string",enum:["learning-path","challenge","certification"]},title:{type:"string",description:"Title of the curricula",example:"Introduction to Kubernetes","x-go-name":"Title","x-oapi-codegen-extra-tags":{json:"title"},maxLength:500},org_id:{type:"string",description:"Organization ID that owns this learning path",example:"layer5","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"}},workspace_id:{allOf:[{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}}],description:"ID of the workspace to which this Curricula belongs","x-oapi-codegen-extra-tags":{db:"workspace_id",json:"workspace_id"}},badge_id:{type:"string",format:"uuid",description:"ID of the badge to be awarded on completion of this curricula","x-go-type":"core.Uuid","x-go-type-import":{path:"github.com/meshery/schemas/models/core",name:"core"},"x-oapi-codegen-extra-tags":{db:"badge_id",json:"badge_id"}},team_id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-go-name":"TeamId","x-oapi-codegen-extra-tags":{json:"team_id",db:"team_id"}},access_expires_at:{allOf:[{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}],description:"Expiry time for curricula access","x-go-type":"*time.Time","x-oapi-codegen-extra-tags":{json:"access_expires_at",db:"access_expires_at"}},access_status:{description:"Current access status of the curricula","x-go-name":"AccessStatus","x-go-type":"invitationv1beta2.InvitationStatus","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta2/invitation",name:"invitationv1beta2"},"x-oapi-codegen-extra-tags":{json:"access_status",db:"access_status"},type:"string",enum:["enabled","disabled"]},metadata:{type:"object",description:"Additional metadata about the Curricula",additionalProperties:true,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata"},oneOf:[{"x-go-type":"CurriculaMetadata",type:"object",properties:{title:{type:"string",description:"Title of the learning path",example:"Mastering Kubernetes for Engineers",maxLength:500},description:{type:"string",description:"Short description of the curricula",example:"Learn how to configure your Kubernetes clusters and manage the lifecycle of your workloads",maxLength:5e3},detailedDescription:{type:"string",description:"Detailed description of the curricula",example:"This learning path covers everything from Kubernetes architecture to advanced deployment strategies, including hands-on labs and real-world scenarios.",maxLength:500},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},permalink:{type:"string",format:"uri",description:"Canonical URL for the learning path",example:"http://localhost:9876/academy/learning-paths/layer5/mastering-kubernetes-for-engineers/"},certificate:{"x-go-type":"Certificate",type:"object",required:["id","orgId","title","description","issuingAuthorities","issuedDate","recipientId","recipientName"],properties:{id:{type:"string",description:"Unique identifier for the certificate",example:"550e8400-e29b-41d4-a716-446655440000","x-go-name":"ID",maxLength:500,format:"uuid"},orgId:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},recipientId:{type:"string",description:"ID of the recipient (user) who received the certificate",example:"550e8400-e29b-41d4-a716-446655440001",maxLength:500,format:"uuid"},recipientName:{type:"string",description:"Name of the recipient (user) who received the certificate",example:"John Doe",maxLength:500},title:{type:"string",description:"Title of the certificate",example:"Kubernetes Expert Certification",maxLength:500},description:{type:"string",description:"Description of the certificate",example:"Awarded for successfully completing the Kubernetes Expert course",maxLength:5e3},issuingAuthorities:{type:"array",items:{"x-go-type":"CertificateIssuingAuthority",type:"object",required:["name","url"],properties:{name:{type:"string",description:"Name of the issuing authority",example:"Cloud Native Foundation",minLength:1,maxLength:255},role:{type:"string",description:"Role of the issuing authority",example:"COO",maxLength:500},signatureUrl:{type:"string",format:"uri",description:"URL to the signature image of the issuing authority should be a publicly accessible URL and transparent PNG or SVG format",example:"http://localhost:9876/signatures/cloud-native-foundation.png"}}},description:"List of issuing authorities for the certificate"},issuedDate:{type:"string",format:"date-time",description:"Date when the certificate was issued",example:"2023-10-01 12:00:00+00:00"},expirationDate:{type:"string",format:"date-time",description:"Date when the certificate expires. Dynamically calculated from issued_date and expires_in; not specified by instructors.",example:"2025-10-01 12:00:00+00:00"},expiresIn:{type:"integer",description:"Number of months after which the certificate expires",example:24,minimum:0}}},children:{type:"array",description:"List of children items in the top-level curricula",items:{"x-go-type":"ChildNode",type:"object",properties:{id:{type:"string",description:"Unique identifier for the course",example:"550e8400-e29b-41d4-a716-446655440002","x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},maxLength:500,format:"uuid"},title:{type:"string",description:"Title of the course",example:"Kubernetes Basics",maxLength:500},permalink:{type:"string",format:"uri",description:"URL to the course content",example:"http://localhost:9876/academy/learning-paths/layer5/intro-kubernetes-course/kubernetes/"},description:{type:"string",description:"Course description",example:"Learn the basics of Kubernetes",maxLength:5e3},weight:{type:"number",description:"A numeric value to determine the display order. A smaller number appears first. If not specified, items will be sorted alphabetically by title.",example:"eg 1 , 2",minimum:0},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},type:{"x-go-type":"ContentType",description:"Type of the content (e.g., learning-path, challenge, certification)",type:"string",enum:["learning-path","challenge","certification"]},children:{type:"array",description:"List of child nodes (sub-courses or modules)",items:{type:"object","x-go-type":"ChildNode"}}},required:["title","description","id","permalink"]}}},required:["title","description","permalink"]}]}},required:["type","title","org_id","workspace_id","team_id","access_status","metadata"]},AcademyCurriculaWithMetrics:{allOf:[{type:"object",additionalProperties:false,description:"AcademyCurricula entity schema.",required:["id","type","org_id","visibility","status","slug","created_at","updated_at","deleted_at","metadata","level"],properties:{id:{type:"string",description:"Id of the Curricula",example:"923458-3490394-934893","x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},maxLength:500,format:"uuid"},type:{"x-go-type":"ContentType","x-oapi-codegen-extra-tags":{db:"type"},type:"string",enum:["learning-path","challenge","certification"]},org_id:{type:"string",description:"Organization ID that owns this learning path",example:"layer5","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"}},visibility:{description:"Visibility of the Curricula","x-go-type":"Visibility","x-oapi-codegen-extra-tags":{db:"visibility",json:"visibility"},type:"string",enum:["public","private"]},status:{example:"ready",description:"Status of the Curricula","x-go-type":"Status","x-oapi-codegen-extra-tags":{db:"status",json:"status"},type:"string",enum:["ready","archived","not_ready"]},slug:{type:"string",description:"slug of the Curricula",example:"intro-kubernetes-course",maxLength:500},level:{description:"Level of the Curricula","x-go-type":"Level","x-oapi-codegen-extra-tags":{db:"level",json:"level"},type:"string",enum:["beginner","intermediate","advanced"]},badge_id:{type:"string",format:"uuid",description:"ID of the badge to be awarded on completion of this curricula","x-go-type":"core.Uuid","x-go-type-import":{path:"github.com/meshery/schemas/models/core",name:"core"},"x-oapi-codegen-extra-tags":{db:"badge_id",json:"badge_id"}},invite_id:{allOf:[{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}}],description:"ID of the invite associated with this Curricula","x-oapi-codegen-extra-tags":{db:"invite_id",json:"invite_id"}},workspace_id:{allOf:[{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}}],description:"ID of the workspace to which this Curricula belongs","x-oapi-codegen-extra-tags":{db:"workspace_id",json:"workspace_id"}},created_at:{allOf:[{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}],description:"When the Curricula item was created","x-oapi-codegen-extra-tags":{db:"created_at",json:"created_at"}},updated_at:{allOf:[{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}],description:"When the Curricula was last updated","x-go-type":"core.Time","x-oapi-codegen-extra-tags":{db:"updated_at",json:"updated_at"}},deleted_at:{allOf:[{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true}],"x-go-type":"core.NullTime","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deleted_at"}},metadata:{type:"object",description:"Additional metadata about the Curricula",additionalProperties:true,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata"},oneOf:[{"x-go-type":"CurriculaMetadata",type:"object",properties:{title:{type:"string",description:"Title of the learning path",example:"Mastering Kubernetes for Engineers",maxLength:500},description:{type:"string",description:"Short description of the curricula",example:"Learn how to configure your Kubernetes clusters and manage the lifecycle of your workloads",maxLength:5e3},detailedDescription:{type:"string",description:"Detailed description of the curricula",example:"This learning path covers everything from Kubernetes architecture to advanced deployment strategies, including hands-on labs and real-world scenarios.",maxLength:500},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},permalink:{type:"string",format:"uri",description:"Canonical URL for the learning path",example:"http://localhost:9876/academy/learning-paths/layer5/mastering-kubernetes-for-engineers/"},certificate:{"x-go-type":"Certificate",type:"object",required:["id","orgId","title","description","issuingAuthorities","issuedDate","recipientId","recipientName"],properties:{id:{type:"string",description:"Unique identifier for the certificate",example:"550e8400-e29b-41d4-a716-446655440000","x-go-name":"ID",maxLength:500,format:"uuid"},orgId:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},recipientId:{type:"string",description:"ID of the recipient (user) who received the certificate",example:"550e8400-e29b-41d4-a716-446655440001",maxLength:500,format:"uuid"},recipientName:{type:"string",description:"Name of the recipient (user) who received the certificate",example:"John Doe",maxLength:500},title:{type:"string",description:"Title of the certificate",example:"Kubernetes Expert Certification",maxLength:500},description:{type:"string",description:"Description of the certificate",example:"Awarded for successfully completing the Kubernetes Expert course",maxLength:5e3},issuingAuthorities:{type:"array",items:{"x-go-type":"CertificateIssuingAuthority",type:"object",required:["name","url"],properties:{name:{type:"string",description:"Name of the issuing authority",example:"Cloud Native Foundation",minLength:1,maxLength:255},role:{type:"string",description:"Role of the issuing authority",example:"COO",maxLength:500},signatureUrl:{type:"string",format:"uri",description:"URL to the signature image of the issuing authority should be a publicly accessible URL and transparent PNG or SVG format",example:"http://localhost:9876/signatures/cloud-native-foundation.png"}}},description:"List of issuing authorities for the certificate"},issuedDate:{type:"string",format:"date-time",description:"Date when the certificate was issued",example:"2023-10-01 12:00:00+00:00"},expirationDate:{type:"string",format:"date-time",description:"Date when the certificate expires. Dynamically calculated from issued_date and expires_in; not specified by instructors.",example:"2025-10-01 12:00:00+00:00"},expiresIn:{type:"integer",description:"Number of months after which the certificate expires",example:24,minimum:0}}},children:{type:"array",description:"List of children items in the top-level curricula",items:{"x-go-type":"ChildNode",type:"object",properties:{id:{type:"string",description:"Unique identifier for the course",example:"550e8400-e29b-41d4-a716-446655440002","x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},maxLength:500,format:"uuid"},title:{type:"string",description:"Title of the course",example:"Kubernetes Basics",maxLength:500},permalink:{type:"string",format:"uri",description:"URL to the course content",example:"http://localhost:9876/academy/learning-paths/layer5/intro-kubernetes-course/kubernetes/"},description:{type:"string",description:"Course description",example:"Learn the basics of Kubernetes",maxLength:5e3},weight:{type:"number",description:"A numeric value to determine the display order. A smaller number appears first. If not specified, items will be sorted alphabetically by title.",example:"eg 1 , 2",minimum:0},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},type:{"x-go-type":"ContentType",description:"Type of the content (e.g., learning-path, challenge, certification)",type:"string",enum:["learning-path","challenge","certification"]},children:{type:"array",description:"List of child nodes (sub-courses or modules)",items:{type:"object","x-go-type":"ChildNode"}}},required:["title","description","id","permalink"]}}},required:["title","description","permalink"]}]}}},{type:"object",required:["registration_count"],properties:{registration_count:{type:"number",description:"Number of registrations associated with this curriculum.",minimum:0,"x-oapi-codegen-extra-tags":{db:"registration_count,omitempty",json:"registration_count,omitempty"}}}}]},AcademyCurriculaListResponse:{type:"object",properties:{total:{type:"integer",description:"Total number of Curricula",example:7,minimum:0},data:{type:"array",items:{"x-go-type":"AcademyCurricula",type:"object",additionalProperties:false,description:"AcademyCurricula entity schema.",required:["id","type","org_id","visibility","status","slug","created_at","updated_at","deleted_at","metadata","level"],properties:{id:{type:"string",description:"Id of the Curricula",example:"923458-3490394-934893","x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},maxLength:500,format:"uuid"},type:{"x-go-type":"ContentType","x-oapi-codegen-extra-tags":{db:"type"},type:"string",enum:["learning-path","challenge","certification"]},org_id:{type:"string",description:"Organization ID that owns this learning path",example:"layer5","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"}},visibility:{description:"Visibility of the Curricula","x-go-type":"Visibility","x-oapi-codegen-extra-tags":{db:"visibility",json:"visibility"},type:"string",enum:["public","private"]},status:{example:"ready",description:"Status of the Curricula","x-go-type":"Status","x-oapi-codegen-extra-tags":{db:"status",json:"status"},type:"string",enum:["ready","archived","not_ready"]},slug:{type:"string",description:"slug of the Curricula",example:"intro-kubernetes-course",maxLength:500},level:{description:"Level of the Curricula","x-go-type":"Level","x-oapi-codegen-extra-tags":{db:"level",json:"level"},type:"string",enum:["beginner","intermediate","advanced"]},badge_id:{type:"string",format:"uuid",description:"ID of the badge to be awarded on completion of this curricula","x-go-type":"core.Uuid","x-go-type-import":{path:"github.com/meshery/schemas/models/core",name:"core"},"x-oapi-codegen-extra-tags":{db:"badge_id",json:"badge_id"}},invite_id:{allOf:[{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}}],description:"ID of the invite associated with this Curricula","x-oapi-codegen-extra-tags":{db:"invite_id",json:"invite_id"}},workspace_id:{allOf:[{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}}],description:"ID of the workspace to which this Curricula belongs","x-oapi-codegen-extra-tags":{db:"workspace_id",json:"workspace_id"}},created_at:{allOf:[{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}],description:"When the Curricula item was created","x-oapi-codegen-extra-tags":{db:"created_at",json:"created_at"}},updated_at:{allOf:[{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}],description:"When the Curricula was last updated","x-go-type":"core.Time","x-oapi-codegen-extra-tags":{db:"updated_at",json:"updated_at"}},deleted_at:{allOf:[{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true}],"x-go-type":"core.NullTime","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deleted_at"}},metadata:{type:"object",description:"Additional metadata about the Curricula",additionalProperties:true,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata"},oneOf:[{"x-go-type":"CurriculaMetadata",type:"object",properties:{title:{type:"string",description:"Title of the learning path",example:"Mastering Kubernetes for Engineers",maxLength:500},description:{type:"string",description:"Short description of the curricula",example:"Learn how to configure your Kubernetes clusters and manage the lifecycle of your workloads",maxLength:5e3},detailedDescription:{type:"string",description:"Detailed description of the curricula",example:"This learning path covers everything from Kubernetes architecture to advanced deployment strategies, including hands-on labs and real-world scenarios.",maxLength:500},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},permalink:{type:"string",format:"uri",description:"Canonical URL for the learning path",example:"http://localhost:9876/academy/learning-paths/layer5/mastering-kubernetes-for-engineers/"},certificate:{"x-go-type":"Certificate",type:"object",required:["id","orgId","title","description","issuingAuthorities","issuedDate","recipientId","recipientName"],properties:{id:{type:"string",description:"Unique identifier for the certificate",example:"550e8400-e29b-41d4-a716-446655440000","x-go-name":"ID",maxLength:500,format:"uuid"},orgId:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},recipientId:{type:"string",description:"ID of the recipient (user) who received the certificate",example:"550e8400-e29b-41d4-a716-446655440001",maxLength:500,format:"uuid"},recipientName:{type:"string",description:"Name of the recipient (user) who received the certificate",example:"John Doe",maxLength:500},title:{type:"string",description:"Title of the certificate",example:"Kubernetes Expert Certification",maxLength:500},description:{type:"string",description:"Description of the certificate",example:"Awarded for successfully completing the Kubernetes Expert course",maxLength:5e3},issuingAuthorities:{type:"array",items:{"x-go-type":"CertificateIssuingAuthority",type:"object",required:["name","url"],properties:{name:{type:"string",description:"Name of the issuing authority",example:"Cloud Native Foundation",minLength:1,maxLength:255},role:{type:"string",description:"Role of the issuing authority",example:"COO",maxLength:500},signatureUrl:{type:"string",format:"uri",description:"URL to the signature image of the issuing authority should be a publicly accessible URL and transparent PNG or SVG format",example:"http://localhost:9876/signatures/cloud-native-foundation.png"}}},description:"List of issuing authorities for the certificate"},issuedDate:{type:"string",format:"date-time",description:"Date when the certificate was issued",example:"2023-10-01 12:00:00+00:00"},expirationDate:{type:"string",format:"date-time",description:"Date when the certificate expires. Dynamically calculated from issued_date and expires_in; not specified by instructors.",example:"2025-10-01 12:00:00+00:00"},expiresIn:{type:"integer",description:"Number of months after which the certificate expires",example:24,minimum:0}}},children:{type:"array",description:"List of children items in the top-level curricula",items:{"x-go-type":"ChildNode",type:"object",properties:{id:{type:"string",description:"Unique identifier for the course",example:"550e8400-e29b-41d4-a716-446655440002","x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},maxLength:500,format:"uuid"},title:{type:"string",description:"Title of the course",example:"Kubernetes Basics",maxLength:500},permalink:{type:"string",format:"uri",description:"URL to the course content",example:"http://localhost:9876/academy/learning-paths/layer5/intro-kubernetes-course/kubernetes/"},description:{type:"string",description:"Course description",example:"Learn the basics of Kubernetes",maxLength:5e3},weight:{type:"number",description:"A numeric value to determine the display order. A smaller number appears first. If not specified, items will be sorted alphabetically by title.",example:"eg 1 , 2",minimum:0},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},type:{"x-go-type":"ContentType",description:"Type of the content (e.g., learning-path, challenge, certification)",type:"string",enum:["learning-path","challenge","certification"]},children:{type:"array",description:"List of child nodes (sub-courses or modules)",items:{type:"object","x-go-type":"ChildNode"}}},required:["title","description","id","permalink"]}}},required:["title","description","permalink"]}]}}},description:"The data of the academycurriculalistresponse."}},required:["total","data"]},AcademyCurriculaWithMetricsListResponse:{type:"object",properties:{total:{type:"integer",description:"Total number of Curricula",example:7,minimum:0},data:{type:"array",items:{"x-go-type":"AcademyCurriculaWithMetrics","x-go-type-skip-optional-pointer":true,allOf:[{type:"object",additionalProperties:false,description:"AcademyCurricula entity schema.",required:["id","type","org_id","visibility","status","slug","created_at","updated_at","deleted_at","metadata","level"],properties:{id:{type:"string",description:"Id of the Curricula",example:"923458-3490394-934893","x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},maxLength:500,format:"uuid"},type:{"x-go-type":"ContentType","x-oapi-codegen-extra-tags":{db:"type"},type:"string",enum:["learning-path","challenge","certification"]},org_id:{type:"string",description:"Organization ID that owns this learning path",example:"layer5","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"}},visibility:{description:"Visibility of the Curricula","x-go-type":"Visibility","x-oapi-codegen-extra-tags":{db:"visibility",json:"visibility"},type:"string",enum:["public","private"]},status:{example:"ready",description:"Status of the Curricula","x-go-type":"Status","x-oapi-codegen-extra-tags":{db:"status",json:"status"},type:"string",enum:["ready","archived","not_ready"]},slug:{type:"string",description:"slug of the Curricula",example:"intro-kubernetes-course",maxLength:500},level:{description:"Level of the Curricula","x-go-type":"Level","x-oapi-codegen-extra-tags":{db:"level",json:"level"},type:"string",enum:["beginner","intermediate","advanced"]},badge_id:{type:"string",format:"uuid",description:"ID of the badge to be awarded on completion of this curricula","x-go-type":"core.Uuid","x-go-type-import":{path:"github.com/meshery/schemas/models/core",name:"core"},"x-oapi-codegen-extra-tags":{db:"badge_id",json:"badge_id"}},invite_id:{allOf:[{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}}],description:"ID of the invite associated with this Curricula","x-oapi-codegen-extra-tags":{db:"invite_id",json:"invite_id"}},workspace_id:{allOf:[{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}}],description:"ID of the workspace to which this Curricula belongs","x-oapi-codegen-extra-tags":{db:"workspace_id",json:"workspace_id"}},created_at:{allOf:[{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}],description:"When the Curricula item was created","x-oapi-codegen-extra-tags":{db:"created_at",json:"created_at"}},updated_at:{allOf:[{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}],description:"When the Curricula was last updated","x-go-type":"core.Time","x-oapi-codegen-extra-tags":{db:"updated_at",json:"updated_at"}},deleted_at:{allOf:[{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true}],"x-go-type":"core.NullTime","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deleted_at"}},metadata:{type:"object",description:"Additional metadata about the Curricula",additionalProperties:true,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata"},oneOf:[{"x-go-type":"CurriculaMetadata",type:"object",properties:{title:{type:"string",description:"Title of the learning path",example:"Mastering Kubernetes for Engineers",maxLength:500},description:{type:"string",description:"Short description of the curricula",example:"Learn how to configure your Kubernetes clusters and manage the lifecycle of your workloads",maxLength:5e3},detailedDescription:{type:"string",description:"Detailed description of the curricula",example:"This learning path covers everything from Kubernetes architecture to advanced deployment strategies, including hands-on labs and real-world scenarios.",maxLength:500},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},permalink:{type:"string",format:"uri",description:"Canonical URL for the learning path",example:"http://localhost:9876/academy/learning-paths/layer5/mastering-kubernetes-for-engineers/"},certificate:{"x-go-type":"Certificate",type:"object",required:["id","orgId","title","description","issuingAuthorities","issuedDate","recipientId","recipientName"],properties:{id:{type:"string",description:"Unique identifier for the certificate",example:"550e8400-e29b-41d4-a716-446655440000","x-go-name":"ID",maxLength:500,format:"uuid"},orgId:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},recipientId:{type:"string",description:"ID of the recipient (user) who received the certificate",example:"550e8400-e29b-41d4-a716-446655440001",maxLength:500,format:"uuid"},recipientName:{type:"string",description:"Name of the recipient (user) who received the certificate",example:"John Doe",maxLength:500},title:{type:"string",description:"Title of the certificate",example:"Kubernetes Expert Certification",maxLength:500},description:{type:"string",description:"Description of the certificate",example:"Awarded for successfully completing the Kubernetes Expert course",maxLength:5e3},issuingAuthorities:{type:"array",items:{"x-go-type":"CertificateIssuingAuthority",type:"object",required:["name","url"],properties:{name:{type:"string",description:"Name of the issuing authority",example:"Cloud Native Foundation",minLength:1,maxLength:255},role:{type:"string",description:"Role of the issuing authority",example:"COO",maxLength:500},signatureUrl:{type:"string",format:"uri",description:"URL to the signature image of the issuing authority should be a publicly accessible URL and transparent PNG or SVG format",example:"http://localhost:9876/signatures/cloud-native-foundation.png"}}},description:"List of issuing authorities for the certificate"},issuedDate:{type:"string",format:"date-time",description:"Date when the certificate was issued",example:"2023-10-01 12:00:00+00:00"},expirationDate:{type:"string",format:"date-time",description:"Date when the certificate expires. Dynamically calculated from issued_date and expires_in; not specified by instructors.",example:"2025-10-01 12:00:00+00:00"},expiresIn:{type:"integer",description:"Number of months after which the certificate expires",example:24,minimum:0}}},children:{type:"array",description:"List of children items in the top-level curricula",items:{"x-go-type":"ChildNode",type:"object",properties:{id:{type:"string",description:"Unique identifier for the course",example:"550e8400-e29b-41d4-a716-446655440002","x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},maxLength:500,format:"uuid"},title:{type:"string",description:"Title of the course",example:"Kubernetes Basics",maxLength:500},permalink:{type:"string",format:"uri",description:"URL to the course content",example:"http://localhost:9876/academy/learning-paths/layer5/intro-kubernetes-course/kubernetes/"},description:{type:"string",description:"Course description",example:"Learn the basics of Kubernetes",maxLength:5e3},weight:{type:"number",description:"A numeric value to determine the display order. A smaller number appears first. If not specified, items will be sorted alphabetically by title.",example:"eg 1 , 2",minimum:0},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},type:{"x-go-type":"ContentType",description:"Type of the content (e.g., learning-path, challenge, certification)",type:"string",enum:["learning-path","challenge","certification"]},children:{type:"array",description:"List of child nodes (sub-courses or modules)",items:{type:"object","x-go-type":"ChildNode"}}},required:["title","description","id","permalink"]}}},required:["title","description","permalink"]}]}}},{type:"object",required:["registration_count"],properties:{registration_count:{type:"number",description:"Number of registrations associated with this curriculum.",minimum:0,"x-oapi-codegen-extra-tags":{db:"registration_count,omitempty",json:"registration_count,omitempty"}}}}]},description:"The data of the academycurriculawithmetricslistresponse."}},required:["total","data"]},ChallengeMetadata:{"x-go-type":"CurriculaMetadata",type:"object",properties:{title:{type:"string",description:"Title of the learning path",example:"Mastering Kubernetes for Engineers",maxLength:500},description:{type:"string",description:"Short description of the curricula",example:"Learn how to configure your Kubernetes clusters and manage the lifecycle of your workloads",maxLength:5e3},detailedDescription:{type:"string",description:"Detailed description of the curricula",example:"This learning path covers everything from Kubernetes architecture to advanced deployment strategies, including hands-on labs and real-world scenarios.",maxLength:500},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},permalink:{type:"string",format:"uri",description:"Canonical URL for the learning path",example:"http://localhost:9876/academy/learning-paths/layer5/mastering-kubernetes-for-engineers/"},certificate:{"x-go-type":"Certificate",type:"object",required:["id","orgId","title","description","issuingAuthorities","issuedDate","recipientId","recipientName"],properties:{id:{type:"string",description:"Unique identifier for the certificate",example:"550e8400-e29b-41d4-a716-446655440000","x-go-name":"ID",maxLength:500,format:"uuid"},orgId:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},recipientId:{type:"string",description:"ID of the recipient (user) who received the certificate",example:"550e8400-e29b-41d4-a716-446655440001",maxLength:500,format:"uuid"},recipientName:{type:"string",description:"Name of the recipient (user) who received the certificate",example:"John Doe",maxLength:500},title:{type:"string",description:"Title of the certificate",example:"Kubernetes Expert Certification",maxLength:500},description:{type:"string",description:"Description of the certificate",example:"Awarded for successfully completing the Kubernetes Expert course",maxLength:5e3},issuingAuthorities:{type:"array",items:{"x-go-type":"CertificateIssuingAuthority",type:"object",required:["name","url"],properties:{name:{type:"string",description:"Name of the issuing authority",example:"Cloud Native Foundation",minLength:1,maxLength:255},role:{type:"string",description:"Role of the issuing authority",example:"COO",maxLength:500},signatureUrl:{type:"string",format:"uri",description:"URL to the signature image of the issuing authority should be a publicly accessible URL and transparent PNG or SVG format",example:"http://localhost:9876/signatures/cloud-native-foundation.png"}}},description:"List of issuing authorities for the certificate"},issuedDate:{type:"string",format:"date-time",description:"Date when the certificate was issued",example:"2023-10-01 12:00:00+00:00"},expirationDate:{type:"string",format:"date-time",description:"Date when the certificate expires. Dynamically calculated from issued_date and expires_in; not specified by instructors.",example:"2025-10-01 12:00:00+00:00"},expiresIn:{type:"integer",description:"Number of months after which the certificate expires",example:24,minimum:0}}},children:{type:"array",description:"List of children items in the top-level curricula",items:{"x-go-type":"ChildNode",type:"object",properties:{id:{type:"string",description:"Unique identifier for the course",example:"550e8400-e29b-41d4-a716-446655440002","x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},maxLength:500,format:"uuid"},title:{type:"string",description:"Title of the course",example:"Kubernetes Basics",maxLength:500},permalink:{type:"string",format:"uri",description:"URL to the course content",example:"http://localhost:9876/academy/learning-paths/layer5/intro-kubernetes-course/kubernetes/"},description:{type:"string",description:"Course description",example:"Learn the basics of Kubernetes",maxLength:5e3},weight:{type:"number",description:"A numeric value to determine the display order. A smaller number appears first. If not specified, items will be sorted alphabetically by title.",example:"eg 1 , 2",minimum:0},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},type:{"x-go-type":"ContentType",description:"Type of the content (e.g., learning-path, challenge, certification)",type:"string",enum:["learning-path","challenge","certification"]},children:{type:"array",description:"List of child nodes (sub-courses or modules)",items:{type:"object","x-go-type":"ChildNode"}}},required:["title","description","id","permalink"]}}},required:["title","description","permalink"]},LearningPathMetadata:{"x-go-type":"CurriculaMetadata",type:"object",properties:{title:{type:"string",description:"Title of the learning path",example:"Mastering Kubernetes for Engineers",maxLength:500},description:{type:"string",description:"Short description of the curricula",example:"Learn how to configure your Kubernetes clusters and manage the lifecycle of your workloads",maxLength:5e3},detailedDescription:{type:"string",description:"Detailed description of the curricula",example:"This learning path covers everything from Kubernetes architecture to advanced deployment strategies, including hands-on labs and real-world scenarios.",maxLength:500},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},permalink:{type:"string",format:"uri",description:"Canonical URL for the learning path",example:"http://localhost:9876/academy/learning-paths/layer5/mastering-kubernetes-for-engineers/"},certificate:{"x-go-type":"Certificate",type:"object",required:["id","orgId","title","description","issuingAuthorities","issuedDate","recipientId","recipientName"],properties:{id:{type:"string",description:"Unique identifier for the certificate",example:"550e8400-e29b-41d4-a716-446655440000","x-go-name":"ID",maxLength:500,format:"uuid"},orgId:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},recipientId:{type:"string",description:"ID of the recipient (user) who received the certificate",example:"550e8400-e29b-41d4-a716-446655440001",maxLength:500,format:"uuid"},recipientName:{type:"string",description:"Name of the recipient (user) who received the certificate",example:"John Doe",maxLength:500},title:{type:"string",description:"Title of the certificate",example:"Kubernetes Expert Certification",maxLength:500},description:{type:"string",description:"Description of the certificate",example:"Awarded for successfully completing the Kubernetes Expert course",maxLength:5e3},issuingAuthorities:{type:"array",items:{"x-go-type":"CertificateIssuingAuthority",type:"object",required:["name","url"],properties:{name:{type:"string",description:"Name of the issuing authority",example:"Cloud Native Foundation",minLength:1,maxLength:255},role:{type:"string",description:"Role of the issuing authority",example:"COO",maxLength:500},signatureUrl:{type:"string",format:"uri",description:"URL to the signature image of the issuing authority should be a publicly accessible URL and transparent PNG or SVG format",example:"http://localhost:9876/signatures/cloud-native-foundation.png"}}},description:"List of issuing authorities for the certificate"},issuedDate:{type:"string",format:"date-time",description:"Date when the certificate was issued",example:"2023-10-01 12:00:00+00:00"},expirationDate:{type:"string",format:"date-time",description:"Date when the certificate expires. Dynamically calculated from issued_date and expires_in; not specified by instructors.",example:"2025-10-01 12:00:00+00:00"},expiresIn:{type:"integer",description:"Number of months after which the certificate expires",example:24,minimum:0}}},children:{type:"array",description:"List of children items in the top-level curricula",items:{"x-go-type":"ChildNode",type:"object",properties:{id:{type:"string",description:"Unique identifier for the course",example:"550e8400-e29b-41d4-a716-446655440002","x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},maxLength:500,format:"uuid"},title:{type:"string",description:"Title of the course",example:"Kubernetes Basics",maxLength:500},permalink:{type:"string",format:"uri",description:"URL to the course content",example:"http://localhost:9876/academy/learning-paths/layer5/intro-kubernetes-course/kubernetes/"},description:{type:"string",description:"Course description",example:"Learn the basics of Kubernetes",maxLength:5e3},weight:{type:"number",description:"A numeric value to determine the display order. A smaller number appears first. If not specified, items will be sorted alphabetically by title.",example:"eg 1 , 2",minimum:0},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},type:{"x-go-type":"ContentType",description:"Type of the content (e.g., learning-path, challenge, certification)",type:"string",enum:["learning-path","challenge","certification"]},children:{type:"array",description:"List of child nodes (sub-courses or modules)",items:{type:"object","x-go-type":"ChildNode"}}},required:["title","description","id","permalink"]}}},required:["title","description","permalink"]},CertificateIssuingAuthority:{type:"object",required:["name","url"],properties:{name:{type:"string",description:"Name of the issuing authority",example:"Cloud Native Foundation",minLength:1,maxLength:255},role:{type:"string",description:"Role of the issuing authority",example:"COO",maxLength:500},signatureUrl:{type:"string",format:"uri",description:"URL to the signature image of the issuing authority should be a publicly accessible URL and transparent PNG or SVG format",example:"http://localhost:9876/signatures/cloud-native-foundation.png"}}},Certificate:{type:"object",required:["id","orgId","title","description","issuingAuthorities","issuedDate","recipientId","recipientName"],properties:{id:{type:"string",description:"Unique identifier for the certificate",example:"550e8400-e29b-41d4-a716-446655440000","x-go-name":"ID",maxLength:500,format:"uuid"},orgId:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},recipientId:{type:"string",description:"ID of the recipient (user) who received the certificate",example:"550e8400-e29b-41d4-a716-446655440001",maxLength:500,format:"uuid"},recipientName:{type:"string",description:"Name of the recipient (user) who received the certificate",example:"John Doe",maxLength:500},title:{type:"string",description:"Title of the certificate",example:"Kubernetes Expert Certification",maxLength:500},description:{type:"string",description:"Description of the certificate",example:"Awarded for successfully completing the Kubernetes Expert course",maxLength:5e3},issuingAuthorities:{type:"array",items:{"x-go-type":"CertificateIssuingAuthority",type:"object",required:["name","url"],properties:{name:{type:"string",description:"Name of the issuing authority",example:"Cloud Native Foundation",minLength:1,maxLength:255},role:{type:"string",description:"Role of the issuing authority",example:"COO",maxLength:500},signatureUrl:{type:"string",format:"uri",description:"URL to the signature image of the issuing authority should be a publicly accessible URL and transparent PNG or SVG format",example:"http://localhost:9876/signatures/cloud-native-foundation.png"}}},description:"List of issuing authorities for the certificate"},issuedDate:{type:"string",format:"date-time",description:"Date when the certificate was issued",example:"2023-10-01 12:00:00+00:00"},expirationDate:{type:"string",format:"date-time",description:"Date when the certificate expires. Dynamically calculated from issued_date and expires_in; not specified by instructors.",example:"2025-10-01 12:00:00+00:00"},expiresIn:{type:"integer",description:"Number of months after which the certificate expires",example:24,minimum:0}}},CurriculaMetadata:{type:"object",properties:{title:{type:"string",description:"Title of the learning path",example:"Mastering Kubernetes for Engineers",maxLength:500},description:{type:"string",description:"Short description of the curricula",example:"Learn how to configure your Kubernetes clusters and manage the lifecycle of your workloads",maxLength:5e3},detailedDescription:{type:"string",description:"Detailed description of the curricula",example:"This learning path covers everything from Kubernetes architecture to advanced deployment strategies, including hands-on labs and real-world scenarios.",maxLength:500},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},permalink:{type:"string",format:"uri",description:"Canonical URL for the learning path",example:"http://localhost:9876/academy/learning-paths/layer5/mastering-kubernetes-for-engineers/"},certificate:{"x-go-type":"Certificate",type:"object",required:["id","orgId","title","description","issuingAuthorities","issuedDate","recipientId","recipientName"],properties:{id:{type:"string",description:"Unique identifier for the certificate",example:"550e8400-e29b-41d4-a716-446655440000","x-go-name":"ID",maxLength:500,format:"uuid"},orgId:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},recipientId:{type:"string",description:"ID of the recipient (user) who received the certificate",example:"550e8400-e29b-41d4-a716-446655440001",maxLength:500,format:"uuid"},recipientName:{type:"string",description:"Name of the recipient (user) who received the certificate",example:"John Doe",maxLength:500},title:{type:"string",description:"Title of the certificate",example:"Kubernetes Expert Certification",maxLength:500},description:{type:"string",description:"Description of the certificate",example:"Awarded for successfully completing the Kubernetes Expert course",maxLength:5e3},issuingAuthorities:{type:"array",items:{"x-go-type":"CertificateIssuingAuthority",type:"object",required:["name","url"],properties:{name:{type:"string",description:"Name of the issuing authority",example:"Cloud Native Foundation",minLength:1,maxLength:255},role:{type:"string",description:"Role of the issuing authority",example:"COO",maxLength:500},signatureUrl:{type:"string",format:"uri",description:"URL to the signature image of the issuing authority should be a publicly accessible URL and transparent PNG or SVG format",example:"http://localhost:9876/signatures/cloud-native-foundation.png"}}},description:"List of issuing authorities for the certificate"},issuedDate:{type:"string",format:"date-time",description:"Date when the certificate was issued",example:"2023-10-01 12:00:00+00:00"},expirationDate:{type:"string",format:"date-time",description:"Date when the certificate expires. Dynamically calculated from issued_date and expires_in; not specified by instructors.",example:"2025-10-01 12:00:00+00:00"},expiresIn:{type:"integer",description:"Number of months after which the certificate expires",example:24,minimum:0}}},children:{type:"array",description:"List of children items in the top-level curricula",items:{"x-go-type":"ChildNode",type:"object",properties:{id:{type:"string",description:"Unique identifier for the course",example:"550e8400-e29b-41d4-a716-446655440002","x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},maxLength:500,format:"uuid"},title:{type:"string",description:"Title of the course",example:"Kubernetes Basics",maxLength:500},permalink:{type:"string",format:"uri",description:"URL to the course content",example:"http://localhost:9876/academy/learning-paths/layer5/intro-kubernetes-course/kubernetes/"},description:{type:"string",description:"Course description",example:"Learn the basics of Kubernetes",maxLength:5e3},weight:{type:"number",description:"A numeric value to determine the display order. A smaller number appears first. If not specified, items will be sorted alphabetically by title.",example:"eg 1 , 2",minimum:0},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},type:{"x-go-type":"ContentType",description:"Type of the content (e.g., learning-path, challenge, certification)",type:"string",enum:["learning-path","challenge","certification"]},children:{type:"array",description:"List of child nodes (sub-courses or modules)",items:{type:"object","x-go-type":"ChildNode"}}},required:["title","description","id","permalink"]}}},required:["title","description","permalink"]},AcademyRegistrationStatus:{type:"string",enum:["registered","completed","failed","withdrawn"],description:"Status of the user's course registration","x-oapi-codegen-extra-tags":{db:"status"}},AcademyRegistration:{type:"object",required:["id","org_id","user_id","status","created_at","updated_at","content_id","certificate","metadata"],properties:{id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"}},org_id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"org_id"}},content_id:{type:"string",description:"ID of the course content","x-oapi-codegen-extra-tags":{db:"content_id"},maxLength:500,format:"uuid"},user_id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"user_id"}},status:{"x-go-type":"AcademyRegistrationStatus",description:"Status of the user's course registration","x-oapi-codegen-extra-tags":{db:"status"},type:"string",enum:["registered","completed","failed","withdrawn"]},updated_at:{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true,description:"When the registration was updated","x-oapi-codegen-extra-tags":{db:"updated_at"}},created_at:{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true,description:"When the registration was created","x-oapi-codegen-extra-tags":{db:"created_at"}},deleted_at:{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true},certificate:{"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,description:"Issued certificate for completing the curricula under registration","x-oapi-codegen-extra-tags":{db:"certificate"},type:"object",required:["id","orgId","title","description","issuingAuthorities","issuedDate","recipientId","recipientName"],properties:{id:{type:"string",description:"Unique identifier for the certificate",example:"550e8400-e29b-41d4-a716-446655440000","x-go-name":"ID",maxLength:500,format:"uuid"},orgId:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},recipientId:{type:"string",description:"ID of the recipient (user) who received the certificate",example:"550e8400-e29b-41d4-a716-446655440001",maxLength:500,format:"uuid"},recipientName:{type:"string",description:"Name of the recipient (user) who received the certificate",example:"John Doe",maxLength:500},title:{type:"string",description:"Title of the certificate",example:"Kubernetes Expert Certification",maxLength:500},description:{type:"string",description:"Description of the certificate",example:"Awarded for successfully completing the Kubernetes Expert course",maxLength:5e3},issuingAuthorities:{type:"array",items:{"x-go-type":"CertificateIssuingAuthority",type:"object",required:["name","url"],properties:{name:{type:"string",description:"Name of the issuing authority",example:"Cloud Native Foundation",minLength:1,maxLength:255},role:{type:"string",description:"Role of the issuing authority",example:"COO",maxLength:500},signatureUrl:{type:"string",format:"uri",description:"URL to the signature image of the issuing authority should be a publicly accessible URL and transparent PNG or SVG format",example:"http://localhost:9876/signatures/cloud-native-foundation.png"}}},description:"List of issuing authorities for the certificate"},issuedDate:{type:"string",format:"date-time",description:"Date when the certificate was issued",example:"2023-10-01 12:00:00+00:00"},expirationDate:{type:"string",format:"date-time",description:"Date when the certificate expires. Dynamically calculated from issued_date and expires_in; not specified by instructors.",example:"2025-10-01 12:00:00+00:00"},expiresIn:{type:"integer",description:"Number of months after which the certificate expires",example:24,minimum:0}}},metadata:{type:"object",description:"Additional metadata about the registration",additionalProperties:true,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"metadata"}}}},AllTestSubmissionsForCurricula:{type:"object",description:"Test submissions made by the user (map of test IDs to Submissions)",additionalProperties:{type:"array",description:"Test submissions made by the user (array of QuizEvaluationResult)",items:{type:"object",required:["score","passed","totalMarks","passPercentage","quiz","attemptedAt","attempts","percentageScored","correctSubmissions"],properties:{score:{type:"integer",description:"The score of the quizevaluationresult.",minimum:0},passed:{type:"boolean",description:"The passed of the quizevaluationresult."},percentageScored:{type:"number",format:"float",description:"The percentage scored of the quizevaluationresult.",minimum:0},totalMarks:{type:"integer",description:"The total marks of the quizevaluationresult.",minimum:0},passPercentage:{type:"number",format:"float",description:"The pass percentage of the quizevaluationresult.",minimum:0},correctSubmissions:{type:"object",additionalProperties:{type:"boolean"},description:"The correct submissions of the quizevaluationresult."},quiz:{"x-go-type":"Quiz","x-generate-db-helpers":true,type:"object",required:["id","title","org_id","description","slug","relPermalink","permalink","type","section","layout","date","final","lastmod","draft","filePath","passPercentage","timeLimit","maxAttempts","questions","totalQuestions","totalQuestionsInBank","totalQuestionSets","totalMarks","prerequisites","nextPage"],properties:{id:{type:"string","x-go-name":"ID","x-oapi-codegen-extra-tags":{json:"id"},description:"Quiz ID.",maxLength:500,format:"uuid"},org_id:{type:"string",description:"Organization ID that owns this quiz",example:"layer5","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"},maxLength:500,format:"uuid"},final:{type:"boolean",description:"Indicates if the quiz is final . i.e this quiz will used to evaluate the completion of parent section eg course , module , learning path",example:true},title:{type:"string",description:"The title of the quiz.",maxLength:500},description:{type:"string",description:"Description of the quiz.",maxLength:5e3},slug:{type:"string",description:"The slug of the quiz.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the quiz.",maxLength:500},permalink:{type:"string",description:"The permalink of the quiz.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255},section:{type:"string",description:"The section of the quiz.",maxLength:500},layout:{type:"string",description:"The layout of the quiz.",maxLength:500},date:{type:"string",format:"date",description:"The date of the quiz."},lastmod:{type:"string",format:"date",description:"The lastmod of the quiz."},draft:{type:"boolean",description:"The draft of the quiz."},filePath:{type:"string",description:"The file path of the quiz.",maxLength:500},passPercentage:{type:"number",format:"float",description:"The pass percentage of the quiz.",minimum:0},timeLimit:{description:"Time limit for the quiz in minutes. A value of 0 indicates no time limit.",type:"integer",minimum:0},maxAttempts:{description:"Maximum number of attempts allowed for the quiz. A value of 0 indicates unlimited attempts.",type:"integer",minimum:0},questions:{type:"array",items:{"x-go-type":"Question",type:"object",required:["id","text","type","marks","options","correctAnswer"],properties:{id:{type:"string",description:"Question ID.",maxLength:500,format:"uuid"},text:{type:"string",description:"The text of the question.",maxLength:500},type:{"x-go-type":"QuestionType",type:"string","x-enum-varnames":["QuestionTypeMultipleAnswers","QuestionTypeSingleAnswer","QuestionTypeShortAnswer","QuestionTypeEssay"],enum:["multiple-answers","single-answer","short-answer","essay"]},marks:{type:"integer",description:"The marks of the question.",minimum:0},multipleAnswers:{type:"boolean",description:"The multiple answers of the question."},options:{type:"array",items:{"x-go-type":"QuestionOption",type:"object",required:["id","text","isCorrect"],properties:{id:{type:"string",description:"QuestionOption ID.",maxLength:500,format:"uuid"},text:{type:"string",description:"The text of the questionoption.",maxLength:500},isCorrect:{type:"boolean",description:"The is correct of the questionoption."}}},description:"The options of the question."},correctAnswer:{type:"string",description:"The correct answer of the question.",maxLength:500}}},description:"The questions of the quiz."},totalQuestions:{type:"integer",description:"The total questions of the quiz.",minimum:0},totalQuestionsInBank:{type:"integer",description:"The total questions in bank of the quiz.",minimum:0},totalQuestionSets:{type:"integer",description:"The total question sets of the quiz.",minimum:0},totalMarks:{type:"integer",description:"The total marks of the quiz.",minimum:0},prerequisites:{type:"array",items:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}},description:"The prerequisites of the quiz."},parent:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}},nextPage:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}}}},attemptedAt:{type:"string",format:"date-time",description:"The attempted at of the quizevaluationresult."},attempts:{type:"integer",description:"The attempts of the quizevaluationresult.",minimum:0}}},"x-go-type":"TestSubmissions"}},TestSubmissions:{type:"array",description:"Test submissions made by the user (array of QuizEvaluationResult)",items:{type:"object",required:["score","passed","totalMarks","passPercentage","quiz","attemptedAt","attempts","percentageScored","correctSubmissions"],properties:{score:{type:"integer",description:"The score of the quizevaluationresult.",minimum:0},passed:{type:"boolean",description:"The passed of the quizevaluationresult."},percentageScored:{type:"number",format:"float",description:"The percentage scored of the quizevaluationresult.",minimum:0},totalMarks:{type:"integer",description:"The total marks of the quizevaluationresult.",minimum:0},passPercentage:{type:"number",format:"float",description:"The pass percentage of the quizevaluationresult.",minimum:0},correctSubmissions:{type:"object",additionalProperties:{type:"boolean"},description:"The correct submissions of the quizevaluationresult."},quiz:{"x-go-type":"Quiz","x-generate-db-helpers":true,type:"object",required:["id","title","org_id","description","slug","relPermalink","permalink","type","section","layout","date","final","lastmod","draft","filePath","passPercentage","timeLimit","maxAttempts","questions","totalQuestions","totalQuestionsInBank","totalQuestionSets","totalMarks","prerequisites","nextPage"],properties:{id:{type:"string","x-go-name":"ID","x-oapi-codegen-extra-tags":{json:"id"},description:"Quiz ID.",maxLength:500,format:"uuid"},org_id:{type:"string",description:"Organization ID that owns this quiz",example:"layer5","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"},maxLength:500,format:"uuid"},final:{type:"boolean",description:"Indicates if the quiz is final . i.e this quiz will used to evaluate the completion of parent section eg course , module , learning path",example:true},title:{type:"string",description:"The title of the quiz.",maxLength:500},description:{type:"string",description:"Description of the quiz.",maxLength:5e3},slug:{type:"string",description:"The slug of the quiz.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the quiz.",maxLength:500},permalink:{type:"string",description:"The permalink of the quiz.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255},section:{type:"string",description:"The section of the quiz.",maxLength:500},layout:{type:"string",description:"The layout of the quiz.",maxLength:500},date:{type:"string",format:"date",description:"The date of the quiz."},lastmod:{type:"string",format:"date",description:"The lastmod of the quiz."},draft:{type:"boolean",description:"The draft of the quiz."},filePath:{type:"string",description:"The file path of the quiz.",maxLength:500},passPercentage:{type:"number",format:"float",description:"The pass percentage of the quiz.",minimum:0},timeLimit:{description:"Time limit for the quiz in minutes. A value of 0 indicates no time limit.",type:"integer",minimum:0},maxAttempts:{description:"Maximum number of attempts allowed for the quiz. A value of 0 indicates unlimited attempts.",type:"integer",minimum:0},questions:{type:"array",items:{"x-go-type":"Question",type:"object",required:["id","text","type","marks","options","correctAnswer"],properties:{id:{type:"string",description:"Question ID.",maxLength:500,format:"uuid"},text:{type:"string",description:"The text of the question.",maxLength:500},type:{"x-go-type":"QuestionType",type:"string","x-enum-varnames":["QuestionTypeMultipleAnswers","QuestionTypeSingleAnswer","QuestionTypeShortAnswer","QuestionTypeEssay"],enum:["multiple-answers","single-answer","short-answer","essay"]},marks:{type:"integer",description:"The marks of the question.",minimum:0},multipleAnswers:{type:"boolean",description:"The multiple answers of the question."},options:{type:"array",items:{"x-go-type":"QuestionOption",type:"object",required:["id","text","isCorrect"],properties:{id:{type:"string",description:"QuestionOption ID.",maxLength:500,format:"uuid"},text:{type:"string",description:"The text of the questionoption.",maxLength:500},isCorrect:{type:"boolean",description:"The is correct of the questionoption."}}},description:"The options of the question."},correctAnswer:{type:"string",description:"The correct answer of the question.",maxLength:500}}},description:"The questions of the quiz."},totalQuestions:{type:"integer",description:"The total questions of the quiz.",minimum:0},totalQuestionsInBank:{type:"integer",description:"The total questions in bank of the quiz.",minimum:0},totalQuestionSets:{type:"integer",description:"The total question sets of the quiz.",minimum:0},totalMarks:{type:"integer",description:"The total marks of the quiz.",minimum:0},prerequisites:{type:"array",items:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}},description:"The prerequisites of the quiz."},parent:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}},nextPage:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}}}},attemptedAt:{type:"string",format:"date-time",description:"The attempted at of the quizevaluationresult."},attempts:{type:"integer",description:"The attempts of the quizevaluationresult.",minimum:0}}}},ChildNode:{type:"object",properties:{id:{type:"string",description:"Unique identifier for the course",example:"550e8400-e29b-41d4-a716-446655440002","x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},maxLength:500,format:"uuid"},title:{type:"string",description:"Title of the course",example:"Kubernetes Basics",maxLength:500},permalink:{type:"string",format:"uri",description:"URL to the course content",example:"http://localhost:9876/academy/learning-paths/layer5/intro-kubernetes-course/kubernetes/"},description:{type:"string",description:"Course description",example:"Learn the basics of Kubernetes",maxLength:5e3},weight:{type:"number",description:"A numeric value to determine the display order. A smaller number appears first. If not specified, items will be sorted alphabetically by title.",example:"eg 1 , 2",minimum:0},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},type:{"x-go-type":"ContentType",description:"Type of the content (e.g., learning-path, challenge, certification)",type:"string",enum:["learning-path","challenge","certification"]},children:{type:"array",description:"List of child nodes (sub-courses or modules)",items:{type:"object","x-go-type":"ChildNode"}}},required:["title","description","id","permalink"]},AcademyRegistrationsListResponse:{type:"object",properties:{total:{type:"integer",description:"Total number of learning paths",example:7,minimum:0},data:{type:"array",items:{type:"object",required:["id","org_id","user_id","status","created_at","updated_at","content_id","certificate","metadata"],properties:{id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"}},org_id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"org_id"}},content_id:{type:"string",description:"ID of the course content","x-oapi-codegen-extra-tags":{db:"content_id"},maxLength:500,format:"uuid"},user_id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"user_id"}},status:{"x-go-type":"AcademyRegistrationStatus",description:"Status of the user's course registration","x-oapi-codegen-extra-tags":{db:"status"},type:"string",enum:["registered","completed","failed","withdrawn"]},updated_at:{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true,description:"When the registration was updated","x-oapi-codegen-extra-tags":{db:"updated_at"}},created_at:{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true,description:"When the registration was created","x-oapi-codegen-extra-tags":{db:"created_at"}},deleted_at:{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true},certificate:{"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,description:"Issued certificate for completing the curricula under registration","x-oapi-codegen-extra-tags":{db:"certificate"},type:"object",required:["id","orgId","title","description","issuingAuthorities","issuedDate","recipientId","recipientName"],properties:{id:{type:"string",description:"Unique identifier for the certificate",example:"550e8400-e29b-41d4-a716-446655440000","x-go-name":"ID",maxLength:500,format:"uuid"},orgId:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},recipientId:{type:"string",description:"ID of the recipient (user) who received the certificate",example:"550e8400-e29b-41d4-a716-446655440001",maxLength:500,format:"uuid"},recipientName:{type:"string",description:"Name of the recipient (user) who received the certificate",example:"John Doe",maxLength:500},title:{type:"string",description:"Title of the certificate",example:"Kubernetes Expert Certification",maxLength:500},description:{type:"string",description:"Description of the certificate",example:"Awarded for successfully completing the Kubernetes Expert course",maxLength:5e3},issuingAuthorities:{type:"array",items:{"x-go-type":"CertificateIssuingAuthority",type:"object",required:["name","url"],properties:{name:{type:"string",description:"Name of the issuing authority",example:"Cloud Native Foundation",minLength:1,maxLength:255},role:{type:"string",description:"Role of the issuing authority",example:"COO",maxLength:500},signatureUrl:{type:"string",format:"uri",description:"URL to the signature image of the issuing authority should be a publicly accessible URL and transparent PNG or SVG format",example:"http://localhost:9876/signatures/cloud-native-foundation.png"}}},description:"List of issuing authorities for the certificate"},issuedDate:{type:"string",format:"date-time",description:"Date when the certificate was issued",example:"2023-10-01 12:00:00+00:00"},expirationDate:{type:"string",format:"date-time",description:"Date when the certificate expires. Dynamically calculated from issued_date and expires_in; not specified by instructors.",example:"2025-10-01 12:00:00+00:00"},expiresIn:{type:"integer",description:"Number of months after which the certificate expires",example:24,minimum:0}}},metadata:{type:"object",description:"Additional metadata about the registration",additionalProperties:true,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"metadata"}}},"x-go-type":"AcademyRegistration"},description:"The data of the academyregistrationslistresponse."}},required:["total","data"]},CurriculaCurrentItemData:{type:"object",required:["id","lastOpened","contentType"],properties:{id:{type:"string",description:"CurriculaCurrentItemData ID.",maxLength:500,format:"uuid"},lastOpened:{type:"string",format:"date-time",description:"The last opened of the curriculacurrentitemdata."},contentType:{type:"string",enum:["learning-path","challenge","certification"],"x-go-type":"ContentType"}}},CurriculaProgressTracker:{type:"object",required:["currentItem","grades","timeSpent","completed","completedItems"],properties:{currentItem:{type:"object",additionalProperties:{"x-go-type":"CurriculaCurrentItemData",type:"object",required:["id","lastOpened","contentType"],properties:{id:{type:"string",description:"CurriculaCurrentItemData ID.",maxLength:500,format:"uuid"},lastOpened:{type:"string",format:"date-time",description:"The last opened of the curriculacurrentitemdata."},contentType:{type:"string",enum:["learning-path","challenge","certification"],"x-go-type":"ContentType"}}},description:"The current item of the curriculaprogresstracker."},grades:{type:"object",additionalProperties:{"x-go-type":"QuizEvaluationResult",type:"object",required:["score","passed","totalMarks","passPercentage","quiz","attemptedAt","attempts","percentageScored","correctSubmissions"],properties:{score:{type:"integer",description:"The score of the quizevaluationresult.",minimum:0},passed:{type:"boolean",description:"The passed of the quizevaluationresult."},percentageScored:{type:"number",format:"float",description:"The percentage scored of the quizevaluationresult.",minimum:0},totalMarks:{type:"integer",description:"The total marks of the quizevaluationresult.",minimum:0},passPercentage:{type:"number",format:"float",description:"The pass percentage of the quizevaluationresult.",minimum:0},correctSubmissions:{type:"object",additionalProperties:{type:"boolean"},description:"The correct submissions of the quizevaluationresult."},quiz:{"x-go-type":"Quiz","x-generate-db-helpers":true,type:"object",required:["id","title","org_id","description","slug","relPermalink","permalink","type","section","layout","date","final","lastmod","draft","filePath","passPercentage","timeLimit","maxAttempts","questions","totalQuestions","totalQuestionsInBank","totalQuestionSets","totalMarks","prerequisites","nextPage"],properties:{id:{type:"string","x-go-name":"ID","x-oapi-codegen-extra-tags":{json:"id"},description:"Quiz ID.",maxLength:500,format:"uuid"},org_id:{type:"string",description:"Organization ID that owns this quiz",example:"layer5","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"},maxLength:500,format:"uuid"},final:{type:"boolean",description:"Indicates if the quiz is final . i.e this quiz will used to evaluate the completion of parent section eg course , module , learning path",example:true},title:{type:"string",description:"The title of the quiz.",maxLength:500},description:{type:"string",description:"Description of the quiz.",maxLength:5e3},slug:{type:"string",description:"The slug of the quiz.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the quiz.",maxLength:500},permalink:{type:"string",description:"The permalink of the quiz.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255},section:{type:"string",description:"The section of the quiz.",maxLength:500},layout:{type:"string",description:"The layout of the quiz.",maxLength:500},date:{type:"string",format:"date",description:"The date of the quiz."},lastmod:{type:"string",format:"date",description:"The lastmod of the quiz."},draft:{type:"boolean",description:"The draft of the quiz."},filePath:{type:"string",description:"The file path of the quiz.",maxLength:500},passPercentage:{type:"number",format:"float",description:"The pass percentage of the quiz.",minimum:0},timeLimit:{description:"Time limit for the quiz in minutes. A value of 0 indicates no time limit.",type:"integer",minimum:0},maxAttempts:{description:"Maximum number of attempts allowed for the quiz. A value of 0 indicates unlimited attempts.",type:"integer",minimum:0},questions:{type:"array",items:{"x-go-type":"Question",type:"object",required:["id","text","type","marks","options","correctAnswer"],properties:{id:{type:"string",description:"Question ID.",maxLength:500,format:"uuid"},text:{type:"string",description:"The text of the question.",maxLength:500},type:{"x-go-type":"QuestionType",type:"string","x-enum-varnames":["QuestionTypeMultipleAnswers","QuestionTypeSingleAnswer","QuestionTypeShortAnswer","QuestionTypeEssay"],enum:["multiple-answers","single-answer","short-answer","essay"]},marks:{type:"integer",description:"The marks of the question.",minimum:0},multipleAnswers:{type:"boolean",description:"The multiple answers of the question."},options:{type:"array",items:{"x-go-type":"QuestionOption",type:"object",required:["id","text","isCorrect"],properties:{id:{type:"string",description:"QuestionOption ID.",maxLength:500,format:"uuid"},text:{type:"string",description:"The text of the questionoption.",maxLength:500},isCorrect:{type:"boolean",description:"The is correct of the questionoption."}}},description:"The options of the question."},correctAnswer:{type:"string",description:"The correct answer of the question.",maxLength:500}}},description:"The questions of the quiz."},totalQuestions:{type:"integer",description:"The total questions of the quiz.",minimum:0},totalQuestionsInBank:{type:"integer",description:"The total questions in bank of the quiz.",minimum:0},totalQuestionSets:{type:"integer",description:"The total question sets of the quiz.",minimum:0},totalMarks:{type:"integer",description:"The total marks of the quiz.",minimum:0},prerequisites:{type:"array",items:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}},description:"The prerequisites of the quiz."},parent:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}},nextPage:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}}}},attemptedAt:{type:"string",format:"date-time",description:"The attempted at of the quizevaluationresult."},attempts:{type:"integer",description:"The attempts of the quizevaluationresult.",minimum:0}}},description:"The grades of the curriculaprogresstracker."},timeSpent:{type:"integer",description:"Total time spent in seconds",minimum:0},completedItems:{type:"object",description:"Items that have been completed (map of item IDs to item data)",additionalProperties:{"x-go-type":"ProgressItemCompleted",type:"object",required:["completedAt","itemData"],properties:{completedAt:{type:"string",format:"date-time",description:"Timestamp when the item was completed"},itemData:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}}}}},completed:{type:"string",format:"date-time","x-go-type":"core.NullTime",description:"The completed of the curriculaprogresstracker."}}},ProgressItemCompleted:{type:"object",required:["completedAt","itemData"],properties:{completedAt:{type:"string",format:"date-time",description:"Timestamp when the item was completed"},itemData:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}}}},UpdateCurrentItemRequest:{type:"object",properties:{contentType:{type:"string",enum:["learning-path","challenge","certification"],"x-go-type":"ContentType"},itemData:{"x-go-type":"CurriculaCurrentItemData",type:"object",required:["id","lastOpened","contentType"],properties:{id:{type:"string",description:"CurriculaCurrentItemData ID.",maxLength:500,format:"uuid"},lastOpened:{type:"string",format:"date-time",description:"The last opened of the curriculacurrentitemdata."},contentType:{type:"string",enum:["learning-path","challenge","certification"],"x-go-type":"ContentType"}}}},required:["contentType","itemData"]},ErrorResponse:{type:"object",properties:{error:{type:"string",description:"The error of the errorresponse.",maxLength:500},details:{type:"string",description:"The details of the errorresponse.",maxLength:500}}},Quiz:{"x-generate-db-helpers":true,type:"object",required:["id","title","org_id","description","slug","relPermalink","permalink","type","section","layout","date","final","lastmod","draft","filePath","passPercentage","timeLimit","maxAttempts","questions","totalQuestions","totalQuestionsInBank","totalQuestionSets","totalMarks","prerequisites","nextPage"],properties:{id:{type:"string","x-go-name":"ID","x-oapi-codegen-extra-tags":{json:"id"},description:"Quiz ID.",maxLength:500,format:"uuid"},org_id:{type:"string",description:"Organization ID that owns this quiz",example:"layer5","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"},maxLength:500,format:"uuid"},final:{type:"boolean",description:"Indicates if the quiz is final . i.e this quiz will used to evaluate the completion of parent section eg course , module , learning path",example:true},title:{type:"string",description:"The title of the quiz.",maxLength:500},description:{type:"string",description:"Description of the quiz.",maxLength:5e3},slug:{type:"string",description:"The slug of the quiz.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the quiz.",maxLength:500},permalink:{type:"string",description:"The permalink of the quiz.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255},section:{type:"string",description:"The section of the quiz.",maxLength:500},layout:{type:"string",description:"The layout of the quiz.",maxLength:500},date:{type:"string",format:"date",description:"The date of the quiz."},lastmod:{type:"string",format:"date",description:"The lastmod of the quiz."},draft:{type:"boolean",description:"The draft of the quiz."},filePath:{type:"string",description:"The file path of the quiz.",maxLength:500},passPercentage:{type:"number",format:"float",description:"The pass percentage of the quiz.",minimum:0},timeLimit:{description:"Time limit for the quiz in minutes. A value of 0 indicates no time limit.",type:"integer",minimum:0},maxAttempts:{description:"Maximum number of attempts allowed for the quiz. A value of 0 indicates unlimited attempts.",type:"integer",minimum:0},questions:{type:"array",items:{"x-go-type":"Question",type:"object",required:["id","text","type","marks","options","correctAnswer"],properties:{id:{type:"string",description:"Question ID.",maxLength:500,format:"uuid"},text:{type:"string",description:"The text of the question.",maxLength:500},type:{"x-go-type":"QuestionType",type:"string","x-enum-varnames":["QuestionTypeMultipleAnswers","QuestionTypeSingleAnswer","QuestionTypeShortAnswer","QuestionTypeEssay"],enum:["multiple-answers","single-answer","short-answer","essay"]},marks:{type:"integer",description:"The marks of the question.",minimum:0},multipleAnswers:{type:"boolean",description:"The multiple answers of the question."},options:{type:"array",items:{"x-go-type":"QuestionOption",type:"object",required:["id","text","isCorrect"],properties:{id:{type:"string",description:"QuestionOption ID.",maxLength:500,format:"uuid"},text:{type:"string",description:"The text of the questionoption.",maxLength:500},isCorrect:{type:"boolean",description:"The is correct of the questionoption."}}},description:"The options of the question."},correctAnswer:{type:"string",description:"The correct answer of the question.",maxLength:500}}},description:"The questions of the quiz."},totalQuestions:{type:"integer",description:"The total questions of the quiz.",minimum:0},totalQuestionsInBank:{type:"integer",description:"The total questions in bank of the quiz.",minimum:0},totalQuestionSets:{type:"integer",description:"The total question sets of the quiz.",minimum:0},totalMarks:{type:"integer",description:"The total marks of the quiz.",minimum:0},prerequisites:{type:"array",items:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}},description:"The prerequisites of the quiz."},parent:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}},nextPage:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}}}},Parent:{type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}},QuestionType:{type:"string","x-enum-varnames":["QuestionTypeMultipleAnswers","QuestionTypeSingleAnswer","QuestionTypeShortAnswer","QuestionTypeEssay"],enum:["multiple-answers","single-answer","short-answer","essay"]},Question:{type:"object",required:["id","text","type","marks","options","correctAnswer"],properties:{id:{type:"string",description:"Question ID.",maxLength:500,format:"uuid"},text:{type:"string",description:"The text of the question.",maxLength:500},type:{"x-go-type":"QuestionType",type:"string","x-enum-varnames":["QuestionTypeMultipleAnswers","QuestionTypeSingleAnswer","QuestionTypeShortAnswer","QuestionTypeEssay"],enum:["multiple-answers","single-answer","short-answer","essay"]},marks:{type:"integer",description:"The marks of the question.",minimum:0},multipleAnswers:{type:"boolean",description:"The multiple answers of the question."},options:{type:"array",items:{"x-go-type":"QuestionOption",type:"object",required:["id","text","isCorrect"],properties:{id:{type:"string",description:"QuestionOption ID.",maxLength:500,format:"uuid"},text:{type:"string",description:"The text of the questionoption.",maxLength:500},isCorrect:{type:"boolean",description:"The is correct of the questionoption."}}},description:"The options of the question."},correctAnswer:{type:"string",description:"The correct answer of the question.",maxLength:500}}},QuestionOption:{type:"object",required:["id","text","isCorrect"],properties:{id:{type:"string",description:"QuestionOption ID.",maxLength:500,format:"uuid"},text:{type:"string",description:"The text of the questionoption.",maxLength:500},isCorrect:{type:"boolean",description:"The is correct of the questionoption."}}},StartTestRequest:{type:"object",required:["testAbsPath","registrationId"],properties:{testAbsPath:{type:"string",description:"The test abs path of the starttestrequest.",maxLength:500},registrationId:{type:"string",description:"ID of the associated registration.",maxLength:500,format:"uuid"}}},QuizSubmission:{type:"object",required:["quizAbsPath","registrationId","testSessionId","user_id","answers"],properties:{testSessionId:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},quizAbsPath:{type:"string",description:"The quiz abs path of the quizsubmission.",maxLength:500},registrationId:{type:"string",description:"ID of the associated registration.",maxLength:500,format:"uuid"},user_id:{type:"string",description:"ID of the user who owns or created this resource.",maxLength:500,format:"uuid"},answers:{type:"array",items:{"x-go-type":"SubmittedAnswer",type:"object",required:["questionId","selectedOptionId","answerText"],properties:{questionId:{type:"string",description:"ID of the associated question.",maxLength:500,format:"uuid"},selectedOptionId:{type:"object",additionalProperties:{type:"boolean"},description:"Map of selected option IDs to a boolean value indicating if it was selected."},answerText:{type:"string",description:"The answer text of the submittedanswer.",maxLength:500}}},description:"The answers of the quizsubmission."}}},SubmittedAnswer:{type:"object",required:["questionId","selectedOptionId","answerText"],properties:{questionId:{type:"string",description:"ID of the associated question.",maxLength:500,format:"uuid"},selectedOptionId:{type:"object",additionalProperties:{type:"boolean"},description:"Map of selected option IDs to a boolean value indicating if it was selected."},answerText:{type:"string",description:"The answer text of the submittedanswer.",maxLength:500}}},TestSubmissionStatus:{type:"string",enum:["not-attempted","failed","passed"],"x-enum-varnames":["TestSubmissionStatusNotAttempted","TestSubmissionStatusFailed","TestSubmissionStatusPassed"]},TestSubmission:{type:"object",required:["id","registration_id","test_abs_path","user_id","created_at","status","test"],properties:{id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"}},registration_id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"registration_id",json:"registration_id"}},test_abs_path:{type:"string","x-oapi-codegen-extra-tags":{db:"test_abs_path"},description:"The test abs path of the testsubmission.",maxLength:500},user_id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"user_id"}},created_at:{description:"When the submission was created or started",type:"string",format:"date-time","x-oapi-codegen-extra-tags":{db:"created_at"}},updated_at:{description:"When the submission was last updated",type:"string",format:"date-time","x-oapi-codegen-extra-tags":{db:"updated_at"}},deleted_at:{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true},submitted_at:{type:"string",format:"date-time","x-oapi-codegen-extra-tags":{db:"submitted_at"},description:"The submitted at of the testsubmission."},submission_data:{type:"object",required:["quizAbsPath","registrationId","testSessionId","user_id","answers"],properties:{testSessionId:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},quizAbsPath:{type:"string",description:"The quiz abs path of the quizsubmission.",maxLength:500},registrationId:{type:"string",description:"ID of the associated registration.",maxLength:500,format:"uuid"},user_id:{type:"string",description:"ID of the user who owns or created this resource.",maxLength:500,format:"uuid"},answers:{type:"array",items:{"x-go-type":"SubmittedAnswer",type:"object",required:["questionId","selectedOptionId","answerText"],properties:{questionId:{type:"string",description:"ID of the associated question.",maxLength:500,format:"uuid"},selectedOptionId:{type:"object",additionalProperties:{type:"boolean"},description:"Map of selected option IDs to a boolean value indicating if it was selected."},answerText:{type:"string",description:"The answer text of the submittedanswer.",maxLength:500}}},description:"The answers of the quizsubmission."}},"x-go-type":"QuizSubmission","x-oapi-codegen-extra-tags":{db:"submission_data"}},expires_at:{type:"string",description:"Expiry time for the test submission ( based on the time limit of the test )",format:"date-time","x-oapi-codegen-extra-tags":{db:"expires_at"}},status:{"x-go-type":"TestSubmissionStatus",type:"string",enum:["not-attempted","failed","passed"],"x-enum-varnames":["TestSubmissionStatusNotAttempted","TestSubmissionStatusFailed","TestSubmissionStatusPassed"]},result:{type:"object",required:["score","passed","totalMarks","passPercentage","quiz","attemptedAt","attempts","percentageScored","correctSubmissions"],properties:{score:{type:"integer",description:"The score of the quizevaluationresult.",minimum:0},passed:{type:"boolean",description:"The passed of the quizevaluationresult."},percentageScored:{type:"number",format:"float",description:"The percentage scored of the quizevaluationresult.",minimum:0},totalMarks:{type:"integer",description:"The total marks of the quizevaluationresult.",minimum:0},passPercentage:{type:"number",format:"float",description:"The pass percentage of the quizevaluationresult.",minimum:0},correctSubmissions:{type:"object",additionalProperties:{type:"boolean"},description:"The correct submissions of the quizevaluationresult."},quiz:{"x-go-type":"Quiz","x-generate-db-helpers":true,type:"object",required:["id","title","org_id","description","slug","relPermalink","permalink","type","section","layout","date","final","lastmod","draft","filePath","passPercentage","timeLimit","maxAttempts","questions","totalQuestions","totalQuestionsInBank","totalQuestionSets","totalMarks","prerequisites","nextPage"],properties:{id:{type:"string","x-go-name":"ID","x-oapi-codegen-extra-tags":{json:"id"},description:"Quiz ID.",maxLength:500,format:"uuid"},org_id:{type:"string",description:"Organization ID that owns this quiz",example:"layer5","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"},maxLength:500,format:"uuid"},final:{type:"boolean",description:"Indicates if the quiz is final . i.e this quiz will used to evaluate the completion of parent section eg course , module , learning path",example:true},title:{type:"string",description:"The title of the quiz.",maxLength:500},description:{type:"string",description:"Description of the quiz.",maxLength:5e3},slug:{type:"string",description:"The slug of the quiz.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the quiz.",maxLength:500},permalink:{type:"string",description:"The permalink of the quiz.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255},section:{type:"string",description:"The section of the quiz.",maxLength:500},layout:{type:"string",description:"The layout of the quiz.",maxLength:500},date:{type:"string",format:"date",description:"The date of the quiz."},lastmod:{type:"string",format:"date",description:"The lastmod of the quiz."},draft:{type:"boolean",description:"The draft of the quiz."},filePath:{type:"string",description:"The file path of the quiz.",maxLength:500},passPercentage:{type:"number",format:"float",description:"The pass percentage of the quiz.",minimum:0},timeLimit:{description:"Time limit for the quiz in minutes. A value of 0 indicates no time limit.",type:"integer",minimum:0},maxAttempts:{description:"Maximum number of attempts allowed for the quiz. A value of 0 indicates unlimited attempts.",type:"integer",minimum:0},questions:{type:"array",items:{"x-go-type":"Question",type:"object",required:["id","text","type","marks","options","correctAnswer"],properties:{id:{type:"string",description:"Question ID.",maxLength:500,format:"uuid"},text:{type:"string",description:"The text of the question.",maxLength:500},type:{"x-go-type":"QuestionType",type:"string","x-enum-varnames":["QuestionTypeMultipleAnswers","QuestionTypeSingleAnswer","QuestionTypeShortAnswer","QuestionTypeEssay"],enum:["multiple-answers","single-answer","short-answer","essay"]},marks:{type:"integer",description:"The marks of the question.",minimum:0},multipleAnswers:{type:"boolean",description:"The multiple answers of the question."},options:{type:"array",items:{"x-go-type":"QuestionOption",type:"object",required:["id","text","isCorrect"],properties:{id:{type:"string",description:"QuestionOption ID.",maxLength:500,format:"uuid"},text:{type:"string",description:"The text of the questionoption.",maxLength:500},isCorrect:{type:"boolean",description:"The is correct of the questionoption."}}},description:"The options of the question."},correctAnswer:{type:"string",description:"The correct answer of the question.",maxLength:500}}},description:"The questions of the quiz."},totalQuestions:{type:"integer",description:"The total questions of the quiz.",minimum:0},totalQuestionsInBank:{type:"integer",description:"The total questions in bank of the quiz.",minimum:0},totalQuestionSets:{type:"integer",description:"The total question sets of the quiz.",minimum:0},totalMarks:{type:"integer",description:"The total marks of the quiz.",minimum:0},prerequisites:{type:"array",items:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}},description:"The prerequisites of the quiz."},parent:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}},nextPage:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}}}},attemptedAt:{type:"string",format:"date-time",description:"The attempted at of the quizevaluationresult."},attempts:{type:"integer",description:"The attempts of the quizevaluationresult.",minimum:0}},"x-go-type":"QuizEvaluationResult","x-oapi-codegen-extra-tags":{db:"result"}},test:{"x-generate-db-helpers":true,type:"object",required:["id","title","org_id","description","slug","relPermalink","permalink","type","section","layout","date","final","lastmod","draft","filePath","passPercentage","timeLimit","maxAttempts","questions","totalQuestions","totalQuestionsInBank","totalQuestionSets","totalMarks","prerequisites","nextPage"],properties:{id:{type:"string","x-go-name":"ID","x-oapi-codegen-extra-tags":{json:"id"},description:"Quiz ID.",maxLength:500,format:"uuid"},org_id:{type:"string",description:"Organization ID that owns this quiz",example:"layer5","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"},maxLength:500,format:"uuid"},final:{type:"boolean",description:"Indicates if the quiz is final . i.e this quiz will used to evaluate the completion of parent section eg course , module , learning path",example:true},title:{type:"string",description:"The title of the quiz.",maxLength:500},description:{type:"string",description:"Description of the quiz.",maxLength:5e3},slug:{type:"string",description:"The slug of the quiz.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the quiz.",maxLength:500},permalink:{type:"string",description:"The permalink of the quiz.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255},section:{type:"string",description:"The section of the quiz.",maxLength:500},layout:{type:"string",description:"The layout of the quiz.",maxLength:500},date:{type:"string",format:"date",description:"The date of the quiz."},lastmod:{type:"string",format:"date",description:"The lastmod of the quiz."},draft:{type:"boolean",description:"The draft of the quiz."},filePath:{type:"string",description:"The file path of the quiz.",maxLength:500},passPercentage:{type:"number",format:"float",description:"The pass percentage of the quiz.",minimum:0},timeLimit:{description:"Time limit for the quiz in minutes. A value of 0 indicates no time limit.",type:"integer",minimum:0},maxAttempts:{description:"Maximum number of attempts allowed for the quiz. A value of 0 indicates unlimited attempts.",type:"integer",minimum:0},questions:{type:"array",items:{"x-go-type":"Question",type:"object",required:["id","text","type","marks","options","correctAnswer"],properties:{id:{type:"string",description:"Question ID.",maxLength:500,format:"uuid"},text:{type:"string",description:"The text of the question.",maxLength:500},type:{"x-go-type":"QuestionType",type:"string","x-enum-varnames":["QuestionTypeMultipleAnswers","QuestionTypeSingleAnswer","QuestionTypeShortAnswer","QuestionTypeEssay"],enum:["multiple-answers","single-answer","short-answer","essay"]},marks:{type:"integer",description:"The marks of the question.",minimum:0},multipleAnswers:{type:"boolean",description:"The multiple answers of the question."},options:{type:"array",items:{"x-go-type":"QuestionOption",type:"object",required:["id","text","isCorrect"],properties:{id:{type:"string",description:"QuestionOption ID.",maxLength:500,format:"uuid"},text:{type:"string",description:"The text of the questionoption.",maxLength:500},isCorrect:{type:"boolean",description:"The is correct of the questionoption."}}},description:"The options of the question."},correctAnswer:{type:"string",description:"The correct answer of the question.",maxLength:500}}},description:"The questions of the quiz."},totalQuestions:{type:"integer",description:"The total questions of the quiz.",minimum:0},totalQuestionsInBank:{type:"integer",description:"The total questions in bank of the quiz.",minimum:0},totalQuestionSets:{type:"integer",description:"The total question sets of the quiz.",minimum:0},totalMarks:{type:"integer",description:"The total marks of the quiz.",minimum:0},prerequisites:{type:"array",items:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}},description:"The prerequisites of the quiz."},parent:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}},nextPage:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}}},"x-go-type":"Quiz"}}},QuizEvaluationResult:{type:"object",required:["score","passed","totalMarks","passPercentage","quiz","attemptedAt","attempts","percentageScored","correctSubmissions"],properties:{score:{type:"integer",description:"The score of the quizevaluationresult.",minimum:0},passed:{type:"boolean",description:"The passed of the quizevaluationresult."},percentageScored:{type:"number",format:"float",description:"The percentage scored of the quizevaluationresult.",minimum:0},totalMarks:{type:"integer",description:"The total marks of the quizevaluationresult.",minimum:0},passPercentage:{type:"number",format:"float",description:"The pass percentage of the quizevaluationresult.",minimum:0},correctSubmissions:{type:"object",additionalProperties:{type:"boolean"},description:"The correct submissions of the quizevaluationresult."},quiz:{"x-go-type":"Quiz","x-generate-db-helpers":true,type:"object",required:["id","title","org_id","description","slug","relPermalink","permalink","type","section","layout","date","final","lastmod","draft","filePath","passPercentage","timeLimit","maxAttempts","questions","totalQuestions","totalQuestionsInBank","totalQuestionSets","totalMarks","prerequisites","nextPage"],properties:{id:{type:"string","x-go-name":"ID","x-oapi-codegen-extra-tags":{json:"id"},description:"Quiz ID.",maxLength:500,format:"uuid"},org_id:{type:"string",description:"Organization ID that owns this quiz",example:"layer5","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"},maxLength:500,format:"uuid"},final:{type:"boolean",description:"Indicates if the quiz is final . i.e this quiz will used to evaluate the completion of parent section eg course , module , learning path",example:true},title:{type:"string",description:"The title of the quiz.",maxLength:500},description:{type:"string",description:"Description of the quiz.",maxLength:5e3},slug:{type:"string",description:"The slug of the quiz.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the quiz.",maxLength:500},permalink:{type:"string",description:"The permalink of the quiz.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255},section:{type:"string",description:"The section of the quiz.",maxLength:500},layout:{type:"string",description:"The layout of the quiz.",maxLength:500},date:{type:"string",format:"date",description:"The date of the quiz."},lastmod:{type:"string",format:"date",description:"The lastmod of the quiz."},draft:{type:"boolean",description:"The draft of the quiz."},filePath:{type:"string",description:"The file path of the quiz.",maxLength:500},passPercentage:{type:"number",format:"float",description:"The pass percentage of the quiz.",minimum:0},timeLimit:{description:"Time limit for the quiz in minutes. A value of 0 indicates no time limit.",type:"integer",minimum:0},maxAttempts:{description:"Maximum number of attempts allowed for the quiz. A value of 0 indicates unlimited attempts.",type:"integer",minimum:0},questions:{type:"array",items:{"x-go-type":"Question",type:"object",required:["id","text","type","marks","options","correctAnswer"],properties:{id:{type:"string",description:"Question ID.",maxLength:500,format:"uuid"},text:{type:"string",description:"The text of the question.",maxLength:500},type:{"x-go-type":"QuestionType",type:"string","x-enum-varnames":["QuestionTypeMultipleAnswers","QuestionTypeSingleAnswer","QuestionTypeShortAnswer","QuestionTypeEssay"],enum:["multiple-answers","single-answer","short-answer","essay"]},marks:{type:"integer",description:"The marks of the question.",minimum:0},multipleAnswers:{type:"boolean",description:"The multiple answers of the question."},options:{type:"array",items:{"x-go-type":"QuestionOption",type:"object",required:["id","text","isCorrect"],properties:{id:{type:"string",description:"QuestionOption ID.",maxLength:500,format:"uuid"},text:{type:"string",description:"The text of the questionoption.",maxLength:500},isCorrect:{type:"boolean",description:"The is correct of the questionoption."}}},description:"The options of the question."},correctAnswer:{type:"string",description:"The correct answer of the question.",maxLength:500}}},description:"The questions of the quiz."},totalQuestions:{type:"integer",description:"The total questions of the quiz.",minimum:0},totalQuestionsInBank:{type:"integer",description:"The total questions in bank of the quiz.",minimum:0},totalQuestionSets:{type:"integer",description:"The total question sets of the quiz.",minimum:0},totalMarks:{type:"integer",description:"The total marks of the quiz.",minimum:0},prerequisites:{type:"array",items:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}},description:"The prerequisites of the quiz."},parent:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}},nextPage:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}}}},attemptedAt:{type:"string",format:"date-time",description:"The attempted at of the quizevaluationresult."},attempts:{type:"integer",description:"The attempts of the quizevaluationresult.",minimum:0}}},UserRegistration:{type:"object",required:["curricula_title","curricula_type","curricula_permalink","registration_id","status","user_id","user_email","user_last_name","user_first_name","user_avatar_url","total_count"],properties:{curricula_title:{type:"string",description:"Title of the curricula","x-oapi-codegen-extra-tags":{db:"curricula_title"},maxLength:500},curricula_type:{type:"string",enum:["learning-path","challenge","certification"],description:"Type of the curricula","x-go-type":"ContentType","x-oapi-codegen-extra-tags":{db:"curricula_type"}},curricula_permalink:{type:"string",description:"Permalink of the curricula","x-oapi-codegen-extra-tags":{db:"curricula_permalink"},maxLength:500},registration_id:{type:"string",format:"uuid",description:"Unique ID of the registration","x-oapi-codegen-extra-tags":{db:"registration_id"}},status:{description:"Registration status","x-go-type":"AcademyRegistrationStatus","x-oapi-codegen-extra-tags":{db:"status"},type:"string",enum:["registered","completed","failed","withdrawn"]},created_at:{type:"string",format:"date-time",description:"When the registration was created","x-oapi-codegen-extra-tags":{db:"created_at"}},user_id:{type:"string",format:"uuid",description:"ID of the user","x-oapi-codegen-extra-tags":{db:"user_id"}},user_first_name:{type:"string",description:"First name of the user","x-oapi-codegen-extra-tags":{db:"user_first_name"},maxLength:500},user_last_name:{type:"string",description:"Last name of the user","x-oapi-codegen-extra-tags":{db:"user_last_name"},maxLength:500},user_email:{type:"string",format:"email",description:"Email of the user","x-oapi-codegen-extra-tags":{db:"user_email"}},user_avatar_url:{type:"string",format:"uri",description:"Avatar URL of the user","x-oapi-codegen-extra-tags":{db:"user_avatar_url"}},total_count:{type:"integer",format:"int64",description:"Total count for pagination","x-oapi-codegen-extra-tags":{db:"total_count"},minimum:0}}},CurriculaRegistrationsFilter:{type:"object",required:["pagesize","page","contentType","status"],properties:{pagesize:{type:"integer",description:"The pagesize of the curricularegistrationsfilter.",minimum:1},page:{type:"integer",description:"Current page number of the result set.",minimum:0},contentType:{type:"array",items:{type:"string"},description:"The content type of the curricularegistrationsfilter."},status:{type:"array",items:{type:"string"},description:"Current status of the resource."}}},CurriculaRegistrationsResponse:{type:"object",required:["data","total_count","page_size","page"],properties:{data:{type:"array",items:{"x-go-type":"UserRegistration",type:"object",required:["curricula_title","curricula_type","curricula_permalink","registration_id","status","user_id","user_email","user_last_name","user_first_name","user_avatar_url","total_count"],properties:{curricula_title:{type:"string",description:"Title of the curricula","x-oapi-codegen-extra-tags":{db:"curricula_title"},maxLength:500},curricula_type:{type:"string",enum:["learning-path","challenge","certification"],description:"Type of the curricula","x-go-type":"ContentType","x-oapi-codegen-extra-tags":{db:"curricula_type"}},curricula_permalink:{type:"string",description:"Permalink of the curricula","x-oapi-codegen-extra-tags":{db:"curricula_permalink"},maxLength:500},registration_id:{type:"string",format:"uuid",description:"Unique ID of the registration","x-oapi-codegen-extra-tags":{db:"registration_id"}},status:{description:"Registration status","x-go-type":"AcademyRegistrationStatus","x-oapi-codegen-extra-tags":{db:"status"},type:"string",enum:["registered","completed","failed","withdrawn"]},created_at:{type:"string",format:"date-time",description:"When the registration was created","x-oapi-codegen-extra-tags":{db:"created_at"}},user_id:{type:"string",format:"uuid",description:"ID of the user","x-oapi-codegen-extra-tags":{db:"user_id"}},user_first_name:{type:"string",description:"First name of the user","x-oapi-codegen-extra-tags":{db:"user_first_name"},maxLength:500},user_last_name:{type:"string",description:"Last name of the user","x-oapi-codegen-extra-tags":{db:"user_last_name"},maxLength:500},user_email:{type:"string",format:"email",description:"Email of the user","x-oapi-codegen-extra-tags":{db:"user_email"}},user_avatar_url:{type:"string",format:"uri",description:"Avatar URL of the user","x-oapi-codegen-extra-tags":{db:"user_avatar_url"}},total_count:{type:"integer",format:"int64",description:"Total count for pagination","x-oapi-codegen-extra-tags":{db:"total_count"},minimum:0}}},description:"The data of the curricularegistrationsresponse."},total_count:{type:"integer",format:"int64",description:"Total number of items available.",minimum:0},page_size:{type:"integer",description:"Number of items per page.",minimum:1},page:{type:"integer",description:"Current page number of the result set.",minimum:0}}},UpdateCurrentItemProgressResponse:{type:"object",properties:{message:{type:"string",description:"The message of the updatecurrentitemprogressresponse.",maxLength:500},progressTracker:{type:"object",required:["currentItem","grades","timeSpent","completed","completedItems"],properties:{currentItem:{type:"object",additionalProperties:{"x-go-type":"CurriculaCurrentItemData",type:"object",required:["id","lastOpened","contentType"],properties:{id:{type:"string",description:"CurriculaCurrentItemData ID.",maxLength:500,format:"uuid"},lastOpened:{type:"string",format:"date-time",description:"The last opened of the curriculacurrentitemdata."},contentType:{type:"string",enum:["learning-path","challenge","certification"],"x-go-type":"ContentType"}}},description:"The current item of the curriculaprogresstracker."},grades:{type:"object",additionalProperties:{"x-go-type":"QuizEvaluationResult",type:"object",required:["score","passed","totalMarks","passPercentage","quiz","attemptedAt","attempts","percentageScored","correctSubmissions"],properties:{score:{type:"integer",description:"The score of the quizevaluationresult.",minimum:0},passed:{type:"boolean",description:"The passed of the quizevaluationresult."},percentageScored:{type:"number",format:"float",description:"The percentage scored of the quizevaluationresult.",minimum:0},totalMarks:{type:"integer",description:"The total marks of the quizevaluationresult.",minimum:0},passPercentage:{type:"number",format:"float",description:"The pass percentage of the quizevaluationresult.",minimum:0},correctSubmissions:{type:"object",additionalProperties:{type:"boolean"},description:"The correct submissions of the quizevaluationresult."},quiz:{"x-go-type":"Quiz","x-generate-db-helpers":true,type:"object",required:["id","title","org_id","description","slug","relPermalink","permalink","type","section","layout","date","final","lastmod","draft","filePath","passPercentage","timeLimit","maxAttempts","questions","totalQuestions","totalQuestionsInBank","totalQuestionSets","totalMarks","prerequisites","nextPage"],properties:{id:{type:"string","x-go-name":"ID","x-oapi-codegen-extra-tags":{json:"id"},description:"Quiz ID.",maxLength:500,format:"uuid"},org_id:{type:"string",description:"Organization ID that owns this quiz",example:"layer5","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"},maxLength:500,format:"uuid"},final:{type:"boolean",description:"Indicates if the quiz is final . i.e this quiz will used to evaluate the completion of parent section eg course , module , learning path",example:true},title:{type:"string",description:"The title of the quiz.",maxLength:500},description:{type:"string",description:"Description of the quiz.",maxLength:5e3},slug:{type:"string",description:"The slug of the quiz.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the quiz.",maxLength:500},permalink:{type:"string",description:"The permalink of the quiz.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255},section:{type:"string",description:"The section of the quiz.",maxLength:500},layout:{type:"string",description:"The layout of the quiz.",maxLength:500},date:{type:"string",format:"date",description:"The date of the quiz."},lastmod:{type:"string",format:"date",description:"The lastmod of the quiz."},draft:{type:"boolean",description:"The draft of the quiz."},filePath:{type:"string",description:"The file path of the quiz.",maxLength:500},passPercentage:{type:"number",format:"float",description:"The pass percentage of the quiz.",minimum:0},timeLimit:{description:"Time limit for the quiz in minutes. A value of 0 indicates no time limit.",type:"integer",minimum:0},maxAttempts:{description:"Maximum number of attempts allowed for the quiz. A value of 0 indicates unlimited attempts.",type:"integer",minimum:0},questions:{type:"array",items:{"x-go-type":"Question",type:"object",required:["id","text","type","marks","options","correctAnswer"],properties:{id:{type:"string",description:"Question ID.",maxLength:500,format:"uuid"},text:{type:"string",description:"The text of the question.",maxLength:500},type:{"x-go-type":"QuestionType",type:"string","x-enum-varnames":["QuestionTypeMultipleAnswers","QuestionTypeSingleAnswer","QuestionTypeShortAnswer","QuestionTypeEssay"],enum:["multiple-answers","single-answer","short-answer","essay"]},marks:{type:"integer",description:"The marks of the question.",minimum:0},multipleAnswers:{type:"boolean",description:"The multiple answers of the question."},options:{type:"array",items:{"x-go-type":"QuestionOption",type:"object",required:["id","text","isCorrect"],properties:{id:{type:"string",description:"QuestionOption ID.",maxLength:500,format:"uuid"},text:{type:"string",description:"The text of the questionoption.",maxLength:500},isCorrect:{type:"boolean",description:"The is correct of the questionoption."}}},description:"The options of the question."},correctAnswer:{type:"string",description:"The correct answer of the question.",maxLength:500}}},description:"The questions of the quiz."},totalQuestions:{type:"integer",description:"The total questions of the quiz.",minimum:0},totalQuestionsInBank:{type:"integer",description:"The total questions in bank of the quiz.",minimum:0},totalQuestionSets:{type:"integer",description:"The total question sets of the quiz.",minimum:0},totalMarks:{type:"integer",description:"The total marks of the quiz.",minimum:0},prerequisites:{type:"array",items:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}},description:"The prerequisites of the quiz."},parent:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}},nextPage:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}}}},attemptedAt:{type:"string",format:"date-time",description:"The attempted at of the quizevaluationresult."},attempts:{type:"integer",description:"The attempts of the quizevaluationresult.",minimum:0}}},description:"The grades of the curriculaprogresstracker."},timeSpent:{type:"integer",description:"Total time spent in seconds",minimum:0},completedItems:{type:"object",description:"Items that have been completed (map of item IDs to item data)",additionalProperties:{"x-go-type":"ProgressItemCompleted",type:"object",required:["completedAt","itemData"],properties:{completedAt:{type:"string",format:"date-time",description:"Timestamp when the item was completed"},itemData:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}}}}},completed:{type:"string",format:"date-time","x-go-type":"core.NullTime",description:"The completed of the curriculaprogresstracker."}}},registrationId:{type:"string",description:"ID of the associated registration.",maxLength:500,format:"uuid"},contentType:{type:"string",enum:["learning-path","challenge","certification"]},itemData:{type:"object",required:["id","lastOpened","contentType"],properties:{id:{type:"string",description:"CurriculaCurrentItemData ID.",maxLength:500,format:"uuid"},lastOpened:{type:"string",format:"date-time",description:"The last opened of the curriculacurrentitemdata."},contentType:{type:"string",enum:["learning-path","challenge","certification"],"x-go-type":"ContentType"}}}}}}}},t=e;
1
+ 'use strict';var e={openapi:"3.0.0",info:{title:"Academy API",description:"OpenAPI schema for Meshery Academy content and curriculum management.","x-deprecated":true,"x-superseded-by":"v1beta3",version:"v1beta2",contact:{name:"Meshery Maintainers",email:"maintainers@meshery.io",url:"https://meshery.io"},license:{name:"Apache 2.0",url:"https://www.apache.org/licenses/LICENSE-2.0.html"}},security:[{jwt:[]}],tags:[{name:"Academy",description:"Operations related to Meshery Academy content and curriculum"}],paths:{"/api/academy/curricula/registered":{get:{"x-internal":["cloud"],tags:["Academy"],operationId:"getMyAcademyCurricula",summary:"Get academy content",description:"Returns a list of academy content registered by the user with optional filtering.",parameters:[{name:"contentType",in:"query",description:"Filter content by content types",required:false,style:"form",explode:true,schema:{type:"array",items:{type:"string"}}},{name:"orgId",in:"query",description:"Filter content by organization IDs",required:false,style:"form",explode:true,schema:{type:"array",items:{type:"string"}}}],responses:{200:{description:"A list of content with total count",content:{"application/json":{schema:{type:"object",properties:{total:{type:"integer",description:"Total number of Curricula",example:7,minimum:0},data:{type:"array",items:{"x-go-type":"AcademyCurricula",type:"object",additionalProperties:false,description:"AcademyCurricula entity schema.",required:["id","type","org_id","visibility","status","slug","created_at","updated_at","deleted_at","metadata","level"],properties:{id:{type:"string",description:"Id of the Curricula",example:"923458-3490394-934893","x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},maxLength:500,format:"uuid"},type:{"x-go-type":"ContentType","x-oapi-codegen-extra-tags":{db:"type"},type:"string",enum:["learning-path","challenge","certification"]},org_id:{type:"string",description:"Organization ID that owns this learning path",example:"layer5","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"}},visibility:{description:"Visibility of the Curricula","x-go-type":"Visibility","x-oapi-codegen-extra-tags":{db:"visibility",json:"visibility"},type:"string",enum:["public","private"]},status:{example:"ready",description:"Status of the Curricula","x-go-type":"Status","x-oapi-codegen-extra-tags":{db:"status",json:"status"},type:"string",enum:["ready","archived","not_ready"]},slug:{type:"string",description:"slug of the Curricula",example:"intro-kubernetes-course",maxLength:500},level:{description:"Level of the Curricula","x-go-type":"Level","x-oapi-codegen-extra-tags":{db:"level",json:"level"},type:"string",enum:["beginner","intermediate","advanced"]},badge_id:{type:"string",format:"uuid",description:"ID of the badge to be awarded on completion of this curricula","x-go-type":"core.Uuid","x-go-type-import":{path:"github.com/meshery/schemas/models/core",name:"core"},"x-oapi-codegen-extra-tags":{db:"badge_id",json:"badge_id"}},invite_id:{allOf:[{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}}],description:"ID of the invite associated with this Curricula","x-oapi-codegen-extra-tags":{db:"invite_id",json:"invite_id"}},workspace_id:{allOf:[{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}}],description:"ID of the workspace to which this Curricula belongs","x-oapi-codegen-extra-tags":{db:"workspace_id",json:"workspace_id"}},created_at:{allOf:[{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}],description:"When the Curricula item was created","x-oapi-codegen-extra-tags":{db:"created_at",json:"created_at"}},updated_at:{allOf:[{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}],description:"When the Curricula was last updated","x-go-type":"core.Time","x-oapi-codegen-extra-tags":{db:"updated_at",json:"updated_at"}},deleted_at:{allOf:[{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true}],"x-go-type":"core.NullTime","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deleted_at"}},metadata:{type:"object",description:"Additional metadata about the Curricula",additionalProperties:true,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata"},oneOf:[{"x-go-type":"CurriculaMetadata",type:"object",properties:{title:{type:"string",description:"Title of the learning path",example:"Mastering Kubernetes for Engineers",maxLength:500},description:{type:"string",description:"Short description of the curricula",example:"Learn how to configure your Kubernetes clusters and manage the lifecycle of your workloads",maxLength:5e3},detailedDescription:{type:"string",description:"Detailed description of the curricula",example:"This learning path covers everything from Kubernetes architecture to advanced deployment strategies, including hands-on labs and real-world scenarios.",maxLength:500},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},permalink:{type:"string",format:"uri",description:"Canonical URL for the learning path",example:"http://localhost:9876/academy/learning-paths/layer5/mastering-kubernetes-for-engineers/"},certificate:{"x-go-type":"Certificate",type:"object",required:["id","orgId","title","description","issuingAuthorities","issuedDate","recipientId","recipientName"],properties:{id:{type:"string",description:"Unique identifier for the certificate",example:"550e8400-e29b-41d4-a716-446655440000","x-go-name":"ID",maxLength:500,format:"uuid"},orgId:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},recipientId:{type:"string",description:"ID of the recipient (user) who received the certificate",example:"550e8400-e29b-41d4-a716-446655440001",maxLength:500,format:"uuid"},recipientName:{type:"string",description:"Name of the recipient (user) who received the certificate",example:"John Doe",maxLength:500},title:{type:"string",description:"Title of the certificate",example:"Kubernetes Expert Certification",maxLength:500},description:{type:"string",description:"Description of the certificate",example:"Awarded for successfully completing the Kubernetes Expert course",maxLength:5e3},issuingAuthorities:{type:"array",items:{"x-go-type":"CertificateIssuingAuthority",type:"object",required:["name","url"],properties:{name:{type:"string",description:"Name of the issuing authority",example:"Cloud Native Foundation",minLength:1,maxLength:255},role:{type:"string",description:"Role of the issuing authority",example:"COO",maxLength:500},signatureUrl:{type:"string",format:"uri",description:"URL to the signature image of the issuing authority should be a publicly accessible URL and transparent PNG or SVG format",example:"http://localhost:9876/signatures/cloud-native-foundation.png"}}},description:"List of issuing authorities for the certificate"},issuedDate:{type:"string",format:"date-time",description:"Date when the certificate was issued",example:"2023-10-01 12:00:00+00:00"},expirationDate:{type:"string",format:"date-time",description:"Date when the certificate expires. Dynamically calculated from issued_date and expires_in; not specified by instructors.",example:"2025-10-01 12:00:00+00:00"},expiresIn:{type:"integer",description:"Number of months after which the certificate expires",example:24,minimum:0}}},children:{type:"array",description:"List of children items in the top-level curricula",items:{"x-go-type":"ChildNode",type:"object",properties:{id:{type:"string",description:"Unique identifier for the course",example:"550e8400-e29b-41d4-a716-446655440002","x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},maxLength:500,format:"uuid"},title:{type:"string",description:"Title of the course",example:"Kubernetes Basics",maxLength:500},permalink:{type:"string",format:"uri",description:"URL to the course content",example:"http://localhost:9876/academy/learning-paths/layer5/intro-kubernetes-course/kubernetes/"},description:{type:"string",description:"Course description",example:"Learn the basics of Kubernetes",maxLength:5e3},weight:{type:"number",description:"A numeric value to determine the display order. A smaller number appears first. If not specified, items will be sorted alphabetically by title.",example:"eg 1 , 2",minimum:0},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},type:{"x-go-type":"ContentType",description:"Type of the content (e.g., learning-path, challenge, certification)",type:"string",enum:["learning-path","challenge","certification"]},children:{type:"array",description:"List of child nodes (sub-courses or modules)",items:{type:"object","x-go-type":"ChildNode"}}},required:["title","description","id","permalink"]}}},required:["title","description","permalink"]}]}}},description:"The data of the academycurriculalistresponse."}},required:["total","data"]}}}},400:{description:"Invalid request parameters"},401:{description:"Expired JWT token used or insufficient privilege",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Server error"}}}},"/api/academy/curricula":{post:{"x-internal":["cloud"],tags:["Academy"],operationId:"createAcademyCurricula",summary:"Create a new academy curricula",description:"Creates a new academy curricula with the provided details.",requestBody:{required:true,content:{"application/json":{schema:{type:"object",properties:{type:{description:"Type of the curricula","x-go-name":"Type","x-go-type":"ContentType","x-oapi-codegen-extra-tags":{json:"type"},type:"string",enum:["learning-path","challenge","certification"]},title:{type:"string",description:"Title of the curricula",example:"Introduction to Kubernetes","x-go-name":"Title","x-oapi-codegen-extra-tags":{json:"title"},maxLength:500},org_id:{type:"string",description:"Organization ID that owns this learning path",example:"layer5","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"}},workspace_id:{allOf:[{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}}],description:"ID of the workspace to which this Curricula belongs","x-oapi-codegen-extra-tags":{db:"workspace_id",json:"workspace_id"}},badge_id:{type:"string",format:"uuid",description:"ID of the badge to be awarded on completion of this curricula","x-go-type":"core.Uuid","x-go-type-import":{path:"github.com/meshery/schemas/models/core",name:"core"},"x-oapi-codegen-extra-tags":{db:"badge_id",json:"badge_id"}},team_id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-go-name":"TeamId","x-oapi-codegen-extra-tags":{json:"team_id",db:"team_id"}},access_expires_at:{allOf:[{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}],description:"Expiry time for curricula access","x-go-type":"*time.Time","x-oapi-codegen-extra-tags":{json:"access_expires_at",db:"access_expires_at"}},access_status:{description:"Current access status of the curricula","x-go-name":"AccessStatus","x-go-type":"invitationv1beta2.InvitationStatus","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta2/invitation",name:"invitationv1beta2"},"x-oapi-codegen-extra-tags":{json:"access_status",db:"access_status"},type:"string",enum:["enabled","disabled"]},metadata:{type:"object",description:"Additional metadata about the Curricula",additionalProperties:true,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata"},oneOf:[{"x-go-type":"CurriculaMetadata",type:"object",properties:{title:{type:"string",description:"Title of the learning path",example:"Mastering Kubernetes for Engineers",maxLength:500},description:{type:"string",description:"Short description of the curricula",example:"Learn how to configure your Kubernetes clusters and manage the lifecycle of your workloads",maxLength:5e3},detailedDescription:{type:"string",description:"Detailed description of the curricula",example:"This learning path covers everything from Kubernetes architecture to advanced deployment strategies, including hands-on labs and real-world scenarios.",maxLength:500},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},permalink:{type:"string",format:"uri",description:"Canonical URL for the learning path",example:"http://localhost:9876/academy/learning-paths/layer5/mastering-kubernetes-for-engineers/"},certificate:{"x-go-type":"Certificate",type:"object",required:["id","orgId","title","description","issuingAuthorities","issuedDate","recipientId","recipientName"],properties:{id:{type:"string",description:"Unique identifier for the certificate",example:"550e8400-e29b-41d4-a716-446655440000","x-go-name":"ID",maxLength:500,format:"uuid"},orgId:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},recipientId:{type:"string",description:"ID of the recipient (user) who received the certificate",example:"550e8400-e29b-41d4-a716-446655440001",maxLength:500,format:"uuid"},recipientName:{type:"string",description:"Name of the recipient (user) who received the certificate",example:"John Doe",maxLength:500},title:{type:"string",description:"Title of the certificate",example:"Kubernetes Expert Certification",maxLength:500},description:{type:"string",description:"Description of the certificate",example:"Awarded for successfully completing the Kubernetes Expert course",maxLength:5e3},issuingAuthorities:{type:"array",items:{"x-go-type":"CertificateIssuingAuthority",type:"object",required:["name","url"],properties:{name:{type:"string",description:"Name of the issuing authority",example:"Cloud Native Foundation",minLength:1,maxLength:255},role:{type:"string",description:"Role of the issuing authority",example:"COO",maxLength:500},signatureUrl:{type:"string",format:"uri",description:"URL to the signature image of the issuing authority should be a publicly accessible URL and transparent PNG or SVG format",example:"http://localhost:9876/signatures/cloud-native-foundation.png"}}},description:"List of issuing authorities for the certificate"},issuedDate:{type:"string",format:"date-time",description:"Date when the certificate was issued",example:"2023-10-01 12:00:00+00:00"},expirationDate:{type:"string",format:"date-time",description:"Date when the certificate expires. Dynamically calculated from issued_date and expires_in; not specified by instructors.",example:"2025-10-01 12:00:00+00:00"},expiresIn:{type:"integer",description:"Number of months after which the certificate expires",example:24,minimum:0}}},children:{type:"array",description:"List of children items in the top-level curricula",items:{"x-go-type":"ChildNode",type:"object",properties:{id:{type:"string",description:"Unique identifier for the course",example:"550e8400-e29b-41d4-a716-446655440002","x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},maxLength:500,format:"uuid"},title:{type:"string",description:"Title of the course",example:"Kubernetes Basics",maxLength:500},permalink:{type:"string",format:"uri",description:"URL to the course content",example:"http://localhost:9876/academy/learning-paths/layer5/intro-kubernetes-course/kubernetes/"},description:{type:"string",description:"Course description",example:"Learn the basics of Kubernetes",maxLength:5e3},weight:{type:"number",description:"A numeric value to determine the display order. A smaller number appears first. If not specified, items will be sorted alphabetically by title.",example:"eg 1 , 2",minimum:0},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},type:{"x-go-type":"ContentType",description:"Type of the content (e.g., learning-path, challenge, certification)",type:"string",enum:["learning-path","challenge","certification"]},children:{type:"array",description:"List of child nodes (sub-courses or modules)",items:{type:"object","x-go-type":"ChildNode"}}},required:["title","description","id","permalink"]}}},required:["title","description","permalink"]}]}},required:["type","title","org_id","workspace_id","team_id","access_status","metadata"]}}}},responses:{201:{description:"created the curricula",content:{"application/json":{schema:{type:"object",additionalProperties:false,description:"AcademyCurricula entity schema.",required:["id","type","org_id","visibility","status","slug","created_at","updated_at","deleted_at","metadata","level"],properties:{id:{type:"string",description:"Id of the Curricula",example:"923458-3490394-934893","x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},maxLength:500,format:"uuid"},type:{"x-go-type":"ContentType","x-oapi-codegen-extra-tags":{db:"type"},type:"string",enum:["learning-path","challenge","certification"]},org_id:{type:"string",description:"Organization ID that owns this learning path",example:"layer5","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"}},visibility:{description:"Visibility of the Curricula","x-go-type":"Visibility","x-oapi-codegen-extra-tags":{db:"visibility",json:"visibility"},type:"string",enum:["public","private"]},status:{example:"ready",description:"Status of the Curricula","x-go-type":"Status","x-oapi-codegen-extra-tags":{db:"status",json:"status"},type:"string",enum:["ready","archived","not_ready"]},slug:{type:"string",description:"slug of the Curricula",example:"intro-kubernetes-course",maxLength:500},level:{description:"Level of the Curricula","x-go-type":"Level","x-oapi-codegen-extra-tags":{db:"level",json:"level"},type:"string",enum:["beginner","intermediate","advanced"]},badge_id:{type:"string",format:"uuid",description:"ID of the badge to be awarded on completion of this curricula","x-go-type":"core.Uuid","x-go-type-import":{path:"github.com/meshery/schemas/models/core",name:"core"},"x-oapi-codegen-extra-tags":{db:"badge_id",json:"badge_id"}},invite_id:{allOf:[{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}}],description:"ID of the invite associated with this Curricula","x-oapi-codegen-extra-tags":{db:"invite_id",json:"invite_id"}},workspace_id:{allOf:[{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}}],description:"ID of the workspace to which this Curricula belongs","x-oapi-codegen-extra-tags":{db:"workspace_id",json:"workspace_id"}},created_at:{allOf:[{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}],description:"When the Curricula item was created","x-oapi-codegen-extra-tags":{db:"created_at",json:"created_at"}},updated_at:{allOf:[{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}],description:"When the Curricula was last updated","x-go-type":"core.Time","x-oapi-codegen-extra-tags":{db:"updated_at",json:"updated_at"}},deleted_at:{allOf:[{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true}],"x-go-type":"core.NullTime","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deleted_at"}},metadata:{type:"object",description:"Additional metadata about the Curricula",additionalProperties:true,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata"},oneOf:[{"x-go-type":"CurriculaMetadata",type:"object",properties:{title:{type:"string",description:"Title of the learning path",example:"Mastering Kubernetes for Engineers",maxLength:500},description:{type:"string",description:"Short description of the curricula",example:"Learn how to configure your Kubernetes clusters and manage the lifecycle of your workloads",maxLength:5e3},detailedDescription:{type:"string",description:"Detailed description of the curricula",example:"This learning path covers everything from Kubernetes architecture to advanced deployment strategies, including hands-on labs and real-world scenarios.",maxLength:500},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},permalink:{type:"string",format:"uri",description:"Canonical URL for the learning path",example:"http://localhost:9876/academy/learning-paths/layer5/mastering-kubernetes-for-engineers/"},certificate:{"x-go-type":"Certificate",type:"object",required:["id","orgId","title","description","issuingAuthorities","issuedDate","recipientId","recipientName"],properties:{id:{type:"string",description:"Unique identifier for the certificate",example:"550e8400-e29b-41d4-a716-446655440000","x-go-name":"ID",maxLength:500,format:"uuid"},orgId:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},recipientId:{type:"string",description:"ID of the recipient (user) who received the certificate",example:"550e8400-e29b-41d4-a716-446655440001",maxLength:500,format:"uuid"},recipientName:{type:"string",description:"Name of the recipient (user) who received the certificate",example:"John Doe",maxLength:500},title:{type:"string",description:"Title of the certificate",example:"Kubernetes Expert Certification",maxLength:500},description:{type:"string",description:"Description of the certificate",example:"Awarded for successfully completing the Kubernetes Expert course",maxLength:5e3},issuingAuthorities:{type:"array",items:{"x-go-type":"CertificateIssuingAuthority",type:"object",required:["name","url"],properties:{name:{type:"string",description:"Name of the issuing authority",example:"Cloud Native Foundation",minLength:1,maxLength:255},role:{type:"string",description:"Role of the issuing authority",example:"COO",maxLength:500},signatureUrl:{type:"string",format:"uri",description:"URL to the signature image of the issuing authority should be a publicly accessible URL and transparent PNG or SVG format",example:"http://localhost:9876/signatures/cloud-native-foundation.png"}}},description:"List of issuing authorities for the certificate"},issuedDate:{type:"string",format:"date-time",description:"Date when the certificate was issued",example:"2023-10-01 12:00:00+00:00"},expirationDate:{type:"string",format:"date-time",description:"Date when the certificate expires. Dynamically calculated from issued_date and expires_in; not specified by instructors.",example:"2025-10-01 12:00:00+00:00"},expiresIn:{type:"integer",description:"Number of months after which the certificate expires",example:24,minimum:0}}},children:{type:"array",description:"List of children items in the top-level curricula",items:{"x-go-type":"ChildNode",type:"object",properties:{id:{type:"string",description:"Unique identifier for the course",example:"550e8400-e29b-41d4-a716-446655440002","x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},maxLength:500,format:"uuid"},title:{type:"string",description:"Title of the course",example:"Kubernetes Basics",maxLength:500},permalink:{type:"string",format:"uri",description:"URL to the course content",example:"http://localhost:9876/academy/learning-paths/layer5/intro-kubernetes-course/kubernetes/"},description:{type:"string",description:"Course description",example:"Learn the basics of Kubernetes",maxLength:5e3},weight:{type:"number",description:"A numeric value to determine the display order. A smaller number appears first. If not specified, items will be sorted alphabetically by title.",example:"eg 1 , 2",minimum:0},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},type:{"x-go-type":"ContentType",description:"Type of the content (e.g., learning-path, challenge, certification)",type:"string",enum:["learning-path","challenge","certification"]},children:{type:"array",description:"List of child nodes (sub-courses or modules)",items:{type:"object","x-go-type":"ChildNode"}}},required:["title","description","id","permalink"]}}},required:["title","description","permalink"]}]}}}}}},400:{description:"Invalid request parameters"},401:{description:"Expired JWT token used or insufficient privilege",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Server error"}}},get:{"x-internal":["cloud"],tags:["Academy"],operationId:"getAcademyCurricula",summary:"Get academy content",description:"Returns a list of academy content with optional filtering.",parameters:[{name:"contentType",in:"query",description:"Filter content by content types",required:false,style:"form",explode:true,schema:{type:"array",items:{type:"string"}}},{name:"visibility",in:"query",description:"Filter content by visibility (public/private)",required:false,style:"form",explode:true,schema:{type:"array",items:{type:"string"}}},{name:"level",in:"query",description:"Filter content by difficulty level",required:false,style:"form",explode:true,schema:{type:"array",items:{type:"string"}}},{name:"orgId",in:"query",description:"Filter content by organization IDs",required:false,style:"form",explode:true,schema:{type:"array",items:{type:"string"}}},{name:"category",in:"query",description:"Filter content by categories",required:false,style:"form",explode:true,schema:{type:"array",items:{type:"string"}}},{name:"status",in:"query",description:"Filter by registration status",required:false,style:"form",explode:true,schema:{type:"array",items:{type:"string"}}},{name:"search",in:"query",description:"Search content by title",required:false,schema:{type:"string"}},{name:"sort",in:"query",description:"Sort results by a specific field (e.g., title, createdAt)",required:false,schema:{type:"string"}},{name:"order",in:"query",description:"Order of sorting (asc or desc)",required:false,schema:{type:"string",enum:["asc","desc"]}},{name:"pagesize",in:"query",description:"Number of results per page",required:false,schema:{type:"integer"}},{name:"page",in:"query",description:"Page number",required:false,schema:{type:"integer"}}],responses:{200:{description:"A list of content with total count",content:{"application/json":{schema:{type:"object",properties:{total:{type:"integer",description:"Total number of Curricula",example:7,minimum:0},data:{type:"array",items:{"x-go-type":"AcademyCurriculaWithMetrics","x-go-type-skip-optional-pointer":true,allOf:[{type:"object",additionalProperties:false,description:"AcademyCurricula entity schema.",required:["id","type","org_id","visibility","status","slug","created_at","updated_at","deleted_at","metadata","level"],properties:{id:{type:"string",description:"Id of the Curricula",example:"923458-3490394-934893","x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},maxLength:500,format:"uuid"},type:{"x-go-type":"ContentType","x-oapi-codegen-extra-tags":{db:"type"},type:"string",enum:["learning-path","challenge","certification"]},org_id:{type:"string",description:"Organization ID that owns this learning path",example:"layer5","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"}},visibility:{description:"Visibility of the Curricula","x-go-type":"Visibility","x-oapi-codegen-extra-tags":{db:"visibility",json:"visibility"},type:"string",enum:["public","private"]},status:{example:"ready",description:"Status of the Curricula","x-go-type":"Status","x-oapi-codegen-extra-tags":{db:"status",json:"status"},type:"string",enum:["ready","archived","not_ready"]},slug:{type:"string",description:"slug of the Curricula",example:"intro-kubernetes-course",maxLength:500},level:{description:"Level of the Curricula","x-go-type":"Level","x-oapi-codegen-extra-tags":{db:"level",json:"level"},type:"string",enum:["beginner","intermediate","advanced"]},badge_id:{type:"string",format:"uuid",description:"ID of the badge to be awarded on completion of this curricula","x-go-type":"core.Uuid","x-go-type-import":{path:"github.com/meshery/schemas/models/core",name:"core"},"x-oapi-codegen-extra-tags":{db:"badge_id",json:"badge_id"}},invite_id:{allOf:[{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}}],description:"ID of the invite associated with this Curricula","x-oapi-codegen-extra-tags":{db:"invite_id",json:"invite_id"}},workspace_id:{allOf:[{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}}],description:"ID of the workspace to which this Curricula belongs","x-oapi-codegen-extra-tags":{db:"workspace_id",json:"workspace_id"}},created_at:{allOf:[{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}],description:"When the Curricula item was created","x-oapi-codegen-extra-tags":{db:"created_at",json:"created_at"}},updated_at:{allOf:[{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}],description:"When the Curricula was last updated","x-go-type":"core.Time","x-oapi-codegen-extra-tags":{db:"updated_at",json:"updated_at"}},deleted_at:{allOf:[{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true}],"x-go-type":"core.NullTime","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deleted_at"}},metadata:{type:"object",description:"Additional metadata about the Curricula",additionalProperties:true,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata"},oneOf:[{"x-go-type":"CurriculaMetadata",type:"object",properties:{title:{type:"string",description:"Title of the learning path",example:"Mastering Kubernetes for Engineers",maxLength:500},description:{type:"string",description:"Short description of the curricula",example:"Learn how to configure your Kubernetes clusters and manage the lifecycle of your workloads",maxLength:5e3},detailedDescription:{type:"string",description:"Detailed description of the curricula",example:"This learning path covers everything from Kubernetes architecture to advanced deployment strategies, including hands-on labs and real-world scenarios.",maxLength:500},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},permalink:{type:"string",format:"uri",description:"Canonical URL for the learning path",example:"http://localhost:9876/academy/learning-paths/layer5/mastering-kubernetes-for-engineers/"},certificate:{"x-go-type":"Certificate",type:"object",required:["id","orgId","title","description","issuingAuthorities","issuedDate","recipientId","recipientName"],properties:{id:{type:"string",description:"Unique identifier for the certificate",example:"550e8400-e29b-41d4-a716-446655440000","x-go-name":"ID",maxLength:500,format:"uuid"},orgId:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},recipientId:{type:"string",description:"ID of the recipient (user) who received the certificate",example:"550e8400-e29b-41d4-a716-446655440001",maxLength:500,format:"uuid"},recipientName:{type:"string",description:"Name of the recipient (user) who received the certificate",example:"John Doe",maxLength:500},title:{type:"string",description:"Title of the certificate",example:"Kubernetes Expert Certification",maxLength:500},description:{type:"string",description:"Description of the certificate",example:"Awarded for successfully completing the Kubernetes Expert course",maxLength:5e3},issuingAuthorities:{type:"array",items:{"x-go-type":"CertificateIssuingAuthority",type:"object",required:["name","url"],properties:{name:{type:"string",description:"Name of the issuing authority",example:"Cloud Native Foundation",minLength:1,maxLength:255},role:{type:"string",description:"Role of the issuing authority",example:"COO",maxLength:500},signatureUrl:{type:"string",format:"uri",description:"URL to the signature image of the issuing authority should be a publicly accessible URL and transparent PNG or SVG format",example:"http://localhost:9876/signatures/cloud-native-foundation.png"}}},description:"List of issuing authorities for the certificate"},issuedDate:{type:"string",format:"date-time",description:"Date when the certificate was issued",example:"2023-10-01 12:00:00+00:00"},expirationDate:{type:"string",format:"date-time",description:"Date when the certificate expires. Dynamically calculated from issued_date and expires_in; not specified by instructors.",example:"2025-10-01 12:00:00+00:00"},expiresIn:{type:"integer",description:"Number of months after which the certificate expires",example:24,minimum:0}}},children:{type:"array",description:"List of children items in the top-level curricula",items:{"x-go-type":"ChildNode",type:"object",properties:{id:{type:"string",description:"Unique identifier for the course",example:"550e8400-e29b-41d4-a716-446655440002","x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},maxLength:500,format:"uuid"},title:{type:"string",description:"Title of the course",example:"Kubernetes Basics",maxLength:500},permalink:{type:"string",format:"uri",description:"URL to the course content",example:"http://localhost:9876/academy/learning-paths/layer5/intro-kubernetes-course/kubernetes/"},description:{type:"string",description:"Course description",example:"Learn the basics of Kubernetes",maxLength:5e3},weight:{type:"number",description:"A numeric value to determine the display order. A smaller number appears first. If not specified, items will be sorted alphabetically by title.",example:"eg 1 , 2",minimum:0},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},type:{"x-go-type":"ContentType",description:"Type of the content (e.g., learning-path, challenge, certification)",type:"string",enum:["learning-path","challenge","certification"]},children:{type:"array",description:"List of child nodes (sub-courses or modules)",items:{type:"object","x-go-type":"ChildNode"}}},required:["title","description","id","permalink"]}}},required:["title","description","permalink"]}]}}},{type:"object",required:["registration_count"],properties:{registration_count:{type:"number",description:"Number of registrations associated with this curriculum.",minimum:0,"x-oapi-codegen-extra-tags":{db:"registration_count,omitempty",json:"registration_count,omitempty"}}}}]},description:"The data of the academycurriculawithmetricslistresponse."}},required:["total","data"]}}}},400:{description:"Invalid request parameters"},401:{description:"Expired JWT token used or insufficient privilege",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Server error"}}}},"/api/academy/{type}/{orgId}/{slug}":{get:{"x-internal":["cloud"],tags:["Academy"],operationId:"getAcademyContent",summary:"Get a single learning path",description:"Returns a learning path identified by type, orgId, and slug.",parameters:[{name:"type",in:"path",required:true,schema:{type:"string"}},{name:"orgId",in:"path",required:true,schema:{type:"string"}},{name:"slug",in:"path",required:true,schema:{type:"string"}}],responses:{200:{description:"A single academy content",content:{"application/json":{schema:{type:"object",additionalProperties:false,description:"AcademyCurricula entity schema.",required:["id","type","org_id","visibility","status","slug","created_at","updated_at","deleted_at","metadata","level"],properties:{id:{type:"string",description:"Id of the Curricula",example:"923458-3490394-934893","x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},maxLength:500,format:"uuid"},type:{"x-go-type":"ContentType","x-oapi-codegen-extra-tags":{db:"type"},type:"string",enum:["learning-path","challenge","certification"]},org_id:{type:"string",description:"Organization ID that owns this learning path",example:"layer5","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"}},visibility:{description:"Visibility of the Curricula","x-go-type":"Visibility","x-oapi-codegen-extra-tags":{db:"visibility",json:"visibility"},type:"string",enum:["public","private"]},status:{example:"ready",description:"Status of the Curricula","x-go-type":"Status","x-oapi-codegen-extra-tags":{db:"status",json:"status"},type:"string",enum:["ready","archived","not_ready"]},slug:{type:"string",description:"slug of the Curricula",example:"intro-kubernetes-course",maxLength:500},level:{description:"Level of the Curricula","x-go-type":"Level","x-oapi-codegen-extra-tags":{db:"level",json:"level"},type:"string",enum:["beginner","intermediate","advanced"]},badge_id:{type:"string",format:"uuid",description:"ID of the badge to be awarded on completion of this curricula","x-go-type":"core.Uuid","x-go-type-import":{path:"github.com/meshery/schemas/models/core",name:"core"},"x-oapi-codegen-extra-tags":{db:"badge_id",json:"badge_id"}},invite_id:{allOf:[{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}}],description:"ID of the invite associated with this Curricula","x-oapi-codegen-extra-tags":{db:"invite_id",json:"invite_id"}},workspace_id:{allOf:[{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}}],description:"ID of the workspace to which this Curricula belongs","x-oapi-codegen-extra-tags":{db:"workspace_id",json:"workspace_id"}},created_at:{allOf:[{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}],description:"When the Curricula item was created","x-oapi-codegen-extra-tags":{db:"created_at",json:"created_at"}},updated_at:{allOf:[{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}],description:"When the Curricula was last updated","x-go-type":"core.Time","x-oapi-codegen-extra-tags":{db:"updated_at",json:"updated_at"}},deleted_at:{allOf:[{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true}],"x-go-type":"core.NullTime","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deleted_at"}},metadata:{type:"object",description:"Additional metadata about the Curricula",additionalProperties:true,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata"},oneOf:[{"x-go-type":"CurriculaMetadata",type:"object",properties:{title:{type:"string",description:"Title of the learning path",example:"Mastering Kubernetes for Engineers",maxLength:500},description:{type:"string",description:"Short description of the curricula",example:"Learn how to configure your Kubernetes clusters and manage the lifecycle of your workloads",maxLength:5e3},detailedDescription:{type:"string",description:"Detailed description of the curricula",example:"This learning path covers everything from Kubernetes architecture to advanced deployment strategies, including hands-on labs and real-world scenarios.",maxLength:500},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},permalink:{type:"string",format:"uri",description:"Canonical URL for the learning path",example:"http://localhost:9876/academy/learning-paths/layer5/mastering-kubernetes-for-engineers/"},certificate:{"x-go-type":"Certificate",type:"object",required:["id","orgId","title","description","issuingAuthorities","issuedDate","recipientId","recipientName"],properties:{id:{type:"string",description:"Unique identifier for the certificate",example:"550e8400-e29b-41d4-a716-446655440000","x-go-name":"ID",maxLength:500,format:"uuid"},orgId:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},recipientId:{type:"string",description:"ID of the recipient (user) who received the certificate",example:"550e8400-e29b-41d4-a716-446655440001",maxLength:500,format:"uuid"},recipientName:{type:"string",description:"Name of the recipient (user) who received the certificate",example:"John Doe",maxLength:500},title:{type:"string",description:"Title of the certificate",example:"Kubernetes Expert Certification",maxLength:500},description:{type:"string",description:"Description of the certificate",example:"Awarded for successfully completing the Kubernetes Expert course",maxLength:5e3},issuingAuthorities:{type:"array",items:{"x-go-type":"CertificateIssuingAuthority",type:"object",required:["name","url"],properties:{name:{type:"string",description:"Name of the issuing authority",example:"Cloud Native Foundation",minLength:1,maxLength:255},role:{type:"string",description:"Role of the issuing authority",example:"COO",maxLength:500},signatureUrl:{type:"string",format:"uri",description:"URL to the signature image of the issuing authority should be a publicly accessible URL and transparent PNG or SVG format",example:"http://localhost:9876/signatures/cloud-native-foundation.png"}}},description:"List of issuing authorities for the certificate"},issuedDate:{type:"string",format:"date-time",description:"Date when the certificate was issued",example:"2023-10-01 12:00:00+00:00"},expirationDate:{type:"string",format:"date-time",description:"Date when the certificate expires. Dynamically calculated from issued_date and expires_in; not specified by instructors.",example:"2025-10-01 12:00:00+00:00"},expiresIn:{type:"integer",description:"Number of months after which the certificate expires",example:24,minimum:0}}},children:{type:"array",description:"List of children items in the top-level curricula",items:{"x-go-type":"ChildNode",type:"object",properties:{id:{type:"string",description:"Unique identifier for the course",example:"550e8400-e29b-41d4-a716-446655440002","x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},maxLength:500,format:"uuid"},title:{type:"string",description:"Title of the course",example:"Kubernetes Basics",maxLength:500},permalink:{type:"string",format:"uri",description:"URL to the course content",example:"http://localhost:9876/academy/learning-paths/layer5/intro-kubernetes-course/kubernetes/"},description:{type:"string",description:"Course description",example:"Learn the basics of Kubernetes",maxLength:5e3},weight:{type:"number",description:"A numeric value to determine the display order. A smaller number appears first. If not specified, items will be sorted alphabetically by title.",example:"eg 1 , 2",minimum:0},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},type:{"x-go-type":"ContentType",description:"Type of the content (e.g., learning-path, challenge, certification)",type:"string",enum:["learning-path","challenge","certification"]},children:{type:"array",description:"List of child nodes (sub-courses or modules)",items:{type:"object","x-go-type":"ChildNode"}}},required:["title","description","id","permalink"]}}},required:["title","description","permalink"]}]}}}}}},400:{description:"Invalid request parameters"},401:{description:"Expired JWT token used or insufficient privilege",content:{"text/plain":{schema:{type:"string"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Server error"}}}},"/api/academy/register":{post:{"x-internal":["cloud"],tags:["Academy"],summary:"Register a user to academy content",operationId:"registerToAcademyContent",requestBody:{required:true,content:{"application/json":{schema:{type:"object",required:["contentId","user_id"],properties:{contentId:{type:"string",description:"ID of the academy content to register for",maxLength:500,format:"uuid"},user_id:{type:"string",format:"uuid",description:"ID of the user registering for the content."},contentType:{type:"string",enum:["learning-path","challenge","certification"]}}}}}},responses:{201:{description:"registered content",content:{"application/json":{schema:{type:"object",required:["id","org_id","user_id","status","created_at","updated_at","content_id","certificate","metadata"],properties:{id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"}},org_id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"org_id"}},content_id:{type:"string",description:"ID of the course content","x-oapi-codegen-extra-tags":{db:"content_id"},maxLength:500,format:"uuid"},user_id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"user_id"}},status:{"x-go-type":"AcademyRegistrationStatus",description:"Status of the user's course registration","x-oapi-codegen-extra-tags":{db:"status"},type:"string",enum:["registered","completed","failed","withdrawn"]},updated_at:{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true,description:"When the registration was updated","x-oapi-codegen-extra-tags":{db:"updated_at"}},created_at:{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true,description:"When the registration was created","x-oapi-codegen-extra-tags":{db:"created_at"}},deleted_at:{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true},certificate:{"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,description:"Issued certificate for completing the curricula under registration","x-oapi-codegen-extra-tags":{db:"certificate"},type:"object",required:["id","orgId","title","description","issuingAuthorities","issuedDate","recipientId","recipientName"],properties:{id:{type:"string",description:"Unique identifier for the certificate",example:"550e8400-e29b-41d4-a716-446655440000","x-go-name":"ID",maxLength:500,format:"uuid"},orgId:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},recipientId:{type:"string",description:"ID of the recipient (user) who received the certificate",example:"550e8400-e29b-41d4-a716-446655440001",maxLength:500,format:"uuid"},recipientName:{type:"string",description:"Name of the recipient (user) who received the certificate",example:"John Doe",maxLength:500},title:{type:"string",description:"Title of the certificate",example:"Kubernetes Expert Certification",maxLength:500},description:{type:"string",description:"Description of the certificate",example:"Awarded for successfully completing the Kubernetes Expert course",maxLength:5e3},issuingAuthorities:{type:"array",items:{"x-go-type":"CertificateIssuingAuthority",type:"object",required:["name","url"],properties:{name:{type:"string",description:"Name of the issuing authority",example:"Cloud Native Foundation",minLength:1,maxLength:255},role:{type:"string",description:"Role of the issuing authority",example:"COO",maxLength:500},signatureUrl:{type:"string",format:"uri",description:"URL to the signature image of the issuing authority should be a publicly accessible URL and transparent PNG or SVG format",example:"http://localhost:9876/signatures/cloud-native-foundation.png"}}},description:"List of issuing authorities for the certificate"},issuedDate:{type:"string",format:"date-time",description:"Date when the certificate was issued",example:"2023-10-01 12:00:00+00:00"},expirationDate:{type:"string",format:"date-time",description:"Date when the certificate expires. Dynamically calculated from issued_date and expires_in; not specified by instructors.",example:"2025-10-01 12:00:00+00:00"},expiresIn:{type:"integer",description:"Number of months after which the certificate expires",example:24,minimum:0}}},metadata:{type:"object",description:"Additional metadata about the registration",additionalProperties:true,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"metadata"}}}}}}},400:{description:"Invalid request parameters"},401:{description:"Expired JWT token used or insufficient privilege",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Server error"}}}},"/api/academy/curricula/registrations/{id}/withdraw":{post:{"x-internal":["cloud"],tags:["Academy"],summary:"Withdraw a user from academy content",operationId:"withdrawFromAcademyContent",parameters:[{name:"id",in:"path",required:true,description:"The ID of the curricula",schema:{type:"string"}}],responses:{200:{description:"registered content",content:{"application/json":{schema:{type:"object",required:["id","org_id","user_id","status","created_at","updated_at","content_id","certificate","metadata"],properties:{id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"}},org_id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"org_id"}},content_id:{type:"string",description:"ID of the course content","x-oapi-codegen-extra-tags":{db:"content_id"},maxLength:500,format:"uuid"},user_id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"user_id"}},status:{"x-go-type":"AcademyRegistrationStatus",description:"Status of the user's course registration","x-oapi-codegen-extra-tags":{db:"status"},type:"string",enum:["registered","completed","failed","withdrawn"]},updated_at:{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true,description:"When the registration was updated","x-oapi-codegen-extra-tags":{db:"updated_at"}},created_at:{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true,description:"When the registration was created","x-oapi-codegen-extra-tags":{db:"created_at"}},deleted_at:{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true},certificate:{"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,description:"Issued certificate for completing the curricula under registration","x-oapi-codegen-extra-tags":{db:"certificate"},type:"object",required:["id","orgId","title","description","issuingAuthorities","issuedDate","recipientId","recipientName"],properties:{id:{type:"string",description:"Unique identifier for the certificate",example:"550e8400-e29b-41d4-a716-446655440000","x-go-name":"ID",maxLength:500,format:"uuid"},orgId:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},recipientId:{type:"string",description:"ID of the recipient (user) who received the certificate",example:"550e8400-e29b-41d4-a716-446655440001",maxLength:500,format:"uuid"},recipientName:{type:"string",description:"Name of the recipient (user) who received the certificate",example:"John Doe",maxLength:500},title:{type:"string",description:"Title of the certificate",example:"Kubernetes Expert Certification",maxLength:500},description:{type:"string",description:"Description of the certificate",example:"Awarded for successfully completing the Kubernetes Expert course",maxLength:5e3},issuingAuthorities:{type:"array",items:{"x-go-type":"CertificateIssuingAuthority",type:"object",required:["name","url"],properties:{name:{type:"string",description:"Name of the issuing authority",example:"Cloud Native Foundation",minLength:1,maxLength:255},role:{type:"string",description:"Role of the issuing authority",example:"COO",maxLength:500},signatureUrl:{type:"string",format:"uri",description:"URL to the signature image of the issuing authority should be a publicly accessible URL and transparent PNG or SVG format",example:"http://localhost:9876/signatures/cloud-native-foundation.png"}}},description:"List of issuing authorities for the certificate"},issuedDate:{type:"string",format:"date-time",description:"Date when the certificate was issued",example:"2023-10-01 12:00:00+00:00"},expirationDate:{type:"string",format:"date-time",description:"Date when the certificate expires. Dynamically calculated from issued_date and expires_in; not specified by instructors.",example:"2025-10-01 12:00:00+00:00"},expiresIn:{type:"integer",description:"Number of months after which the certificate expires",example:24,minimum:0}}},metadata:{type:"object",description:"Additional metadata about the registration",additionalProperties:true,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"metadata"}}}}}}},400:{description:"Invalid request parameters"},401:{description:"Expired JWT token used or insufficient privilege",content:{"text/plain":{schema:{type:"string"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Server error"}}}},"/api/academy/curricula/{id}":{put:{"x-internal":["cloud"],tags:["Academy"],operationId:"updateAcademyCurriculaById",summary:"Update an existing academy curricula by ID",description:"Updates the details of an existing academy curricula identified by its ID.",parameters:[{name:"id",in:"path",required:true,description:"The ID of the curricula",schema:{type:"string"}}],requestBody:{required:true,content:{"application/json":{schema:{type:"object",properties:{type:{description:"Type of the curricula","x-go-name":"Type","x-go-type":"ContentType","x-oapi-codegen-extra-tags":{json:"type"},type:"string",enum:["learning-path","challenge","certification"]},title:{type:"string",description:"Title of the curricula",example:"Introduction to Kubernetes","x-go-name":"Title","x-oapi-codegen-extra-tags":{json:"title"},maxLength:500},org_id:{type:"string",description:"Organization ID that owns this learning path",example:"layer5","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"}},workspace_id:{allOf:[{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}}],description:"ID of the workspace to which this Curricula belongs","x-oapi-codegen-extra-tags":{db:"workspace_id",json:"workspace_id"}},badge_id:{type:"string",format:"uuid",description:"ID of the badge to be awarded on completion of this curricula","x-go-type":"core.Uuid","x-go-type-import":{path:"github.com/meshery/schemas/models/core",name:"core"},"x-oapi-codegen-extra-tags":{db:"badge_id",json:"badge_id"}},team_id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-go-name":"TeamId","x-oapi-codegen-extra-tags":{json:"team_id",db:"team_id"}},access_expires_at:{allOf:[{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}],description:"Expiry time for curricula access","x-go-type":"*time.Time","x-oapi-codegen-extra-tags":{json:"access_expires_at",db:"access_expires_at"}},access_status:{description:"Current access status of the curricula","x-go-name":"AccessStatus","x-go-type":"invitationv1beta2.InvitationStatus","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta2/invitation",name:"invitationv1beta2"},"x-oapi-codegen-extra-tags":{json:"access_status",db:"access_status"},type:"string",enum:["enabled","disabled"]},metadata:{type:"object",description:"Additional metadata about the Curricula",additionalProperties:true,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata"},oneOf:[{"x-go-type":"CurriculaMetadata",type:"object",properties:{title:{type:"string",description:"Title of the learning path",example:"Mastering Kubernetes for Engineers",maxLength:500},description:{type:"string",description:"Short description of the curricula",example:"Learn how to configure your Kubernetes clusters and manage the lifecycle of your workloads",maxLength:5e3},detailedDescription:{type:"string",description:"Detailed description of the curricula",example:"This learning path covers everything from Kubernetes architecture to advanced deployment strategies, including hands-on labs and real-world scenarios.",maxLength:500},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},permalink:{type:"string",format:"uri",description:"Canonical URL for the learning path",example:"http://localhost:9876/academy/learning-paths/layer5/mastering-kubernetes-for-engineers/"},certificate:{"x-go-type":"Certificate",type:"object",required:["id","orgId","title","description","issuingAuthorities","issuedDate","recipientId","recipientName"],properties:{id:{type:"string",description:"Unique identifier for the certificate",example:"550e8400-e29b-41d4-a716-446655440000","x-go-name":"ID",maxLength:500,format:"uuid"},orgId:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},recipientId:{type:"string",description:"ID of the recipient (user) who received the certificate",example:"550e8400-e29b-41d4-a716-446655440001",maxLength:500,format:"uuid"},recipientName:{type:"string",description:"Name of the recipient (user) who received the certificate",example:"John Doe",maxLength:500},title:{type:"string",description:"Title of the certificate",example:"Kubernetes Expert Certification",maxLength:500},description:{type:"string",description:"Description of the certificate",example:"Awarded for successfully completing the Kubernetes Expert course",maxLength:5e3},issuingAuthorities:{type:"array",items:{"x-go-type":"CertificateIssuingAuthority",type:"object",required:["name","url"],properties:{name:{type:"string",description:"Name of the issuing authority",example:"Cloud Native Foundation",minLength:1,maxLength:255},role:{type:"string",description:"Role of the issuing authority",example:"COO",maxLength:500},signatureUrl:{type:"string",format:"uri",description:"URL to the signature image of the issuing authority should be a publicly accessible URL and transparent PNG or SVG format",example:"http://localhost:9876/signatures/cloud-native-foundation.png"}}},description:"List of issuing authorities for the certificate"},issuedDate:{type:"string",format:"date-time",description:"Date when the certificate was issued",example:"2023-10-01 12:00:00+00:00"},expirationDate:{type:"string",format:"date-time",description:"Date when the certificate expires. Dynamically calculated from issued_date and expires_in; not specified by instructors.",example:"2025-10-01 12:00:00+00:00"},expiresIn:{type:"integer",description:"Number of months after which the certificate expires",example:24,minimum:0}}},children:{type:"array",description:"List of children items in the top-level curricula",items:{"x-go-type":"ChildNode",type:"object",properties:{id:{type:"string",description:"Unique identifier for the course",example:"550e8400-e29b-41d4-a716-446655440002","x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},maxLength:500,format:"uuid"},title:{type:"string",description:"Title of the course",example:"Kubernetes Basics",maxLength:500},permalink:{type:"string",format:"uri",description:"URL to the course content",example:"http://localhost:9876/academy/learning-paths/layer5/intro-kubernetes-course/kubernetes/"},description:{type:"string",description:"Course description",example:"Learn the basics of Kubernetes",maxLength:5e3},weight:{type:"number",description:"A numeric value to determine the display order. A smaller number appears first. If not specified, items will be sorted alphabetically by title.",example:"eg 1 , 2",minimum:0},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},type:{"x-go-type":"ContentType",description:"Type of the content (e.g., learning-path, challenge, certification)",type:"string",enum:["learning-path","challenge","certification"]},children:{type:"array",description:"List of child nodes (sub-courses or modules)",items:{type:"object","x-go-type":"ChildNode"}}},required:["title","description","id","permalink"]}}},required:["title","description","permalink"]}]}},required:["type","title","org_id","workspace_id","team_id","access_status","metadata"]}}}},responses:{200:{description:"updated the curricula",content:{"application/json":{schema:{type:"object",allOf:[{type:"object",additionalProperties:false,description:"AcademyCurricula entity schema.",required:["id","type","org_id","visibility","status","slug","created_at","updated_at","deleted_at","metadata","level"],properties:{id:{type:"string",description:"Id of the Curricula",example:"923458-3490394-934893","x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},maxLength:500,format:"uuid"},type:{"x-go-type":"ContentType","x-oapi-codegen-extra-tags":{db:"type"},type:"string",enum:["learning-path","challenge","certification"]},org_id:{type:"string",description:"Organization ID that owns this learning path",example:"layer5","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"}},visibility:{description:"Visibility of the Curricula","x-go-type":"Visibility","x-oapi-codegen-extra-tags":{db:"visibility",json:"visibility"},type:"string",enum:["public","private"]},status:{example:"ready",description:"Status of the Curricula","x-go-type":"Status","x-oapi-codegen-extra-tags":{db:"status",json:"status"},type:"string",enum:["ready","archived","not_ready"]},slug:{type:"string",description:"slug of the Curricula",example:"intro-kubernetes-course",maxLength:500},level:{description:"Level of the Curricula","x-go-type":"Level","x-oapi-codegen-extra-tags":{db:"level",json:"level"},type:"string",enum:["beginner","intermediate","advanced"]},badge_id:{type:"string",format:"uuid",description:"ID of the badge to be awarded on completion of this curricula","x-go-type":"core.Uuid","x-go-type-import":{path:"github.com/meshery/schemas/models/core",name:"core"},"x-oapi-codegen-extra-tags":{db:"badge_id",json:"badge_id"}},invite_id:{allOf:[{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}}],description:"ID of the invite associated with this Curricula","x-oapi-codegen-extra-tags":{db:"invite_id",json:"invite_id"}},workspace_id:{allOf:[{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}}],description:"ID of the workspace to which this Curricula belongs","x-oapi-codegen-extra-tags":{db:"workspace_id",json:"workspace_id"}},created_at:{allOf:[{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}],description:"When the Curricula item was created","x-oapi-codegen-extra-tags":{db:"created_at",json:"created_at"}},updated_at:{allOf:[{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}],description:"When the Curricula was last updated","x-go-type":"core.Time","x-oapi-codegen-extra-tags":{db:"updated_at",json:"updated_at"}},deleted_at:{allOf:[{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true}],"x-go-type":"core.NullTime","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deleted_at"}},metadata:{type:"object",description:"Additional metadata about the Curricula",additionalProperties:true,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata"},oneOf:[{"x-go-type":"CurriculaMetadata",type:"object",properties:{title:{type:"string",description:"Title of the learning path",example:"Mastering Kubernetes for Engineers",maxLength:500},description:{type:"string",description:"Short description of the curricula",example:"Learn how to configure your Kubernetes clusters and manage the lifecycle of your workloads",maxLength:5e3},detailedDescription:{type:"string",description:"Detailed description of the curricula",example:"This learning path covers everything from Kubernetes architecture to advanced deployment strategies, including hands-on labs and real-world scenarios.",maxLength:500},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},permalink:{type:"string",format:"uri",description:"Canonical URL for the learning path",example:"http://localhost:9876/academy/learning-paths/layer5/mastering-kubernetes-for-engineers/"},certificate:{"x-go-type":"Certificate",type:"object",required:["id","orgId","title","description","issuingAuthorities","issuedDate","recipientId","recipientName"],properties:{id:{type:"string",description:"Unique identifier for the certificate",example:"550e8400-e29b-41d4-a716-446655440000","x-go-name":"ID",maxLength:500,format:"uuid"},orgId:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},recipientId:{type:"string",description:"ID of the recipient (user) who received the certificate",example:"550e8400-e29b-41d4-a716-446655440001",maxLength:500,format:"uuid"},recipientName:{type:"string",description:"Name of the recipient (user) who received the certificate",example:"John Doe",maxLength:500},title:{type:"string",description:"Title of the certificate",example:"Kubernetes Expert Certification",maxLength:500},description:{type:"string",description:"Description of the certificate",example:"Awarded for successfully completing the Kubernetes Expert course",maxLength:5e3},issuingAuthorities:{type:"array",items:{"x-go-type":"CertificateIssuingAuthority",type:"object",required:["name","url"],properties:{name:{type:"string",description:"Name of the issuing authority",example:"Cloud Native Foundation",minLength:1,maxLength:255},role:{type:"string",description:"Role of the issuing authority",example:"COO",maxLength:500},signatureUrl:{type:"string",format:"uri",description:"URL to the signature image of the issuing authority should be a publicly accessible URL and transparent PNG or SVG format",example:"http://localhost:9876/signatures/cloud-native-foundation.png"}}},description:"List of issuing authorities for the certificate"},issuedDate:{type:"string",format:"date-time",description:"Date when the certificate was issued",example:"2023-10-01 12:00:00+00:00"},expirationDate:{type:"string",format:"date-time",description:"Date when the certificate expires. Dynamically calculated from issued_date and expires_in; not specified by instructors.",example:"2025-10-01 12:00:00+00:00"},expiresIn:{type:"integer",description:"Number of months after which the certificate expires",example:24,minimum:0}}},children:{type:"array",description:"List of children items in the top-level curricula",items:{"x-go-type":"ChildNode",type:"object",properties:{id:{type:"string",description:"Unique identifier for the course",example:"550e8400-e29b-41d4-a716-446655440002","x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},maxLength:500,format:"uuid"},title:{type:"string",description:"Title of the course",example:"Kubernetes Basics",maxLength:500},permalink:{type:"string",format:"uri",description:"URL to the course content",example:"http://localhost:9876/academy/learning-paths/layer5/intro-kubernetes-course/kubernetes/"},description:{type:"string",description:"Course description",example:"Learn the basics of Kubernetes",maxLength:5e3},weight:{type:"number",description:"A numeric value to determine the display order. A smaller number appears first. If not specified, items will be sorted alphabetically by title.",example:"eg 1 , 2",minimum:0},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},type:{"x-go-type":"ContentType",description:"Type of the content (e.g., learning-path, challenge, certification)",type:"string",enum:["learning-path","challenge","certification"]},children:{type:"array",description:"List of child nodes (sub-courses or modules)",items:{type:"object","x-go-type":"ChildNode"}}},required:["title","description","id","permalink"]}}},required:["title","description","permalink"]}]}}},{type:"object",required:["registration_count"],properties:{registration_count:{type:"number",description:"Number of registrations associated with this curriculum.",minimum:0,"x-oapi-codegen-extra-tags":{db:"registration_count,omitempty",json:"registration_count,omitempty"}},invitation:{"x-go-type":"invitationv1beta2.Invitation","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta2/invitation",name:"invitationv1beta2"},type:"object",additionalProperties:false,description:"Invitation entity schema.",required:["id","owner_id","name","description","org_id","accepted_by","emails","roles","teams","status","created_at","updated_at","deleted_at"],properties:{id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-go-name":"ID"},owner_id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"owner_id",json:"owner_id"}},is_default:{type:"boolean",description:"Indicates whether the invitation is a default invitation (open invite), which can be used to assign users when signing up from fqdn or custom domain, a organization can only have one default invitation","x-oapi-codegen-extra-tags":{db:"is_default",json:"is_default"}},name:{type:"string",description:"Name of the invitation, which can be used to identify the invitation, required and cant be empty string,",minLength:1,maxLength:255},description:{type:"string",description:"Description of the invitation, which can be used to provide additional information about the invitation, null or empty string means the invitation does not have a description",maxLength:5e3},emails:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",pattern:"^([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-z]{2,}|@[a-zA-Z0-9.-]+\\.[a-z]{2,})$","x-go-type":"string",description:"Exact email address or the email address pattern for which the invitation is valid , null means the invitation is valid for all email addresses"},description:"The emails of the invitation."},org_id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"}},expires_at:{type:"string",format:"date-time",description:"Timestamp when the invitation expires, if applicable , null or empty string means the invitation does not expire","x-oapi-codegen-extra-tags":{db:"expires_at",json:"expires_at"}},quota:{type:"integer",description:"Quota for the invitation, which can be used to limit the number of users that can accept the invitation, null or empty string means the invitation does not have a quota",minimum:0},accepted_by:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string"},description:"List of user ids that have already accepted the invitation, null or empty string means the invitation has not been used yet","x-oapi-codegen-extra-tags":{db:"accepted_by",json:"accepted_by"}},roles:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",description:"Roles that the user will have when accepting the invitation, null or empty string means the invitation does not specify any roles"},description:"The roles of the invitation."},teams:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",description:"Teams that the user will be added to when accepting the invitation, null or empty string means the invitation does not specify any teams"},description:"The teams of the invitation."},status:{"x-go-type":"InvitationStatus",type:"string",enum:["enabled","disabled"],description:"Status of the invitation, where enabled means the invitation is active and can be used, disabled means the invitation is no longer valid and is temporarily inactive, disabled invitations can be re-enabled later."},created_at:{type:"string",format:"date-time",description:"Timestamp when the invitation was created","x-oapi-codegen-extra-tags":{db:"created_at",json:"created_at"}},updated_at:{type:"string",format:"date-time",description:"Timestamp when the invitation was last updated","x-oapi-codegen-extra-tags":{db:"updated_at",json:"updated_at"}},deleted_at:{type:"string",format:"date-time","x-go-type":"core.NullTime","x-go-type-import":{path:"github.com/meshery/schemas/models/core"},description:"Timestamp when the invitation was deleted, if applicable","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deleted_at"}}}}}}]}}}},400:{description:"Invalid request parameters"},401:{description:"Expired JWT token used or insufficient privilege",content:{"text/plain":{schema:{type:"string"}}}},404:{description:"Curricula not found"},500:{description:"Server error"}}},delete:{"x-internal":["cloud"],tags:["Academy"],operationId:"deleteAcademyCurriculaById",summary:"Delete an academy curricula by ID",description:"Deletes an existing academy curricula identified by its ID.",parameters:[{name:"id",in:"path",required:true,description:"The ID of the curricula",schema:{type:"string"}}],responses:{204:{description:"Curricula deleted"},400:{description:"Invalid request parameters"},401:{description:"Expired JWT token used or insufficient privilege",content:{"text/plain":{schema:{type:"string"}}}},404:{description:"Curricula not found"},500:{description:"Server error"}}},get:{"x-internal":["cloud"],tags:["Academy"],operationId:"getAcademyCurriculaById",summary:"Get a single academy curricula by ID",description:"Returns a single academy curricula identified by its ID.",parameters:[{name:"id",in:"path",required:true,description:"The ID of the curricula",schema:{type:"string"}}],responses:{200:{description:"A single curricula",content:{"application/json":{schema:{type:"object",allOf:[{type:"object",additionalProperties:false,description:"AcademyCurricula entity schema.",required:["id","type","org_id","visibility","status","slug","created_at","updated_at","deleted_at","metadata","level"],properties:{id:{type:"string",description:"Id of the Curricula",example:"923458-3490394-934893","x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},maxLength:500,format:"uuid"},type:{"x-go-type":"ContentType","x-oapi-codegen-extra-tags":{db:"type"},type:"string",enum:["learning-path","challenge","certification"]},org_id:{type:"string",description:"Organization ID that owns this learning path",example:"layer5","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"}},visibility:{description:"Visibility of the Curricula","x-go-type":"Visibility","x-oapi-codegen-extra-tags":{db:"visibility",json:"visibility"},type:"string",enum:["public","private"]},status:{example:"ready",description:"Status of the Curricula","x-go-type":"Status","x-oapi-codegen-extra-tags":{db:"status",json:"status"},type:"string",enum:["ready","archived","not_ready"]},slug:{type:"string",description:"slug of the Curricula",example:"intro-kubernetes-course",maxLength:500},level:{description:"Level of the Curricula","x-go-type":"Level","x-oapi-codegen-extra-tags":{db:"level",json:"level"},type:"string",enum:["beginner","intermediate","advanced"]},badge_id:{type:"string",format:"uuid",description:"ID of the badge to be awarded on completion of this curricula","x-go-type":"core.Uuid","x-go-type-import":{path:"github.com/meshery/schemas/models/core",name:"core"},"x-oapi-codegen-extra-tags":{db:"badge_id",json:"badge_id"}},invite_id:{allOf:[{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}}],description:"ID of the invite associated with this Curricula","x-oapi-codegen-extra-tags":{db:"invite_id",json:"invite_id"}},workspace_id:{allOf:[{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}}],description:"ID of the workspace to which this Curricula belongs","x-oapi-codegen-extra-tags":{db:"workspace_id",json:"workspace_id"}},created_at:{allOf:[{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}],description:"When the Curricula item was created","x-oapi-codegen-extra-tags":{db:"created_at",json:"created_at"}},updated_at:{allOf:[{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}],description:"When the Curricula was last updated","x-go-type":"core.Time","x-oapi-codegen-extra-tags":{db:"updated_at",json:"updated_at"}},deleted_at:{allOf:[{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true}],"x-go-type":"core.NullTime","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deleted_at"}},metadata:{type:"object",description:"Additional metadata about the Curricula",additionalProperties:true,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata"},oneOf:[{"x-go-type":"CurriculaMetadata",type:"object",properties:{title:{type:"string",description:"Title of the learning path",example:"Mastering Kubernetes for Engineers",maxLength:500},description:{type:"string",description:"Short description of the curricula",example:"Learn how to configure your Kubernetes clusters and manage the lifecycle of your workloads",maxLength:5e3},detailedDescription:{type:"string",description:"Detailed description of the curricula",example:"This learning path covers everything from Kubernetes architecture to advanced deployment strategies, including hands-on labs and real-world scenarios.",maxLength:500},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},permalink:{type:"string",format:"uri",description:"Canonical URL for the learning path",example:"http://localhost:9876/academy/learning-paths/layer5/mastering-kubernetes-for-engineers/"},certificate:{"x-go-type":"Certificate",type:"object",required:["id","orgId","title","description","issuingAuthorities","issuedDate","recipientId","recipientName"],properties:{id:{type:"string",description:"Unique identifier for the certificate",example:"550e8400-e29b-41d4-a716-446655440000","x-go-name":"ID",maxLength:500,format:"uuid"},orgId:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},recipientId:{type:"string",description:"ID of the recipient (user) who received the certificate",example:"550e8400-e29b-41d4-a716-446655440001",maxLength:500,format:"uuid"},recipientName:{type:"string",description:"Name of the recipient (user) who received the certificate",example:"John Doe",maxLength:500},title:{type:"string",description:"Title of the certificate",example:"Kubernetes Expert Certification",maxLength:500},description:{type:"string",description:"Description of the certificate",example:"Awarded for successfully completing the Kubernetes Expert course",maxLength:5e3},issuingAuthorities:{type:"array",items:{"x-go-type":"CertificateIssuingAuthority",type:"object",required:["name","url"],properties:{name:{type:"string",description:"Name of the issuing authority",example:"Cloud Native Foundation",minLength:1,maxLength:255},role:{type:"string",description:"Role of the issuing authority",example:"COO",maxLength:500},signatureUrl:{type:"string",format:"uri",description:"URL to the signature image of the issuing authority should be a publicly accessible URL and transparent PNG or SVG format",example:"http://localhost:9876/signatures/cloud-native-foundation.png"}}},description:"List of issuing authorities for the certificate"},issuedDate:{type:"string",format:"date-time",description:"Date when the certificate was issued",example:"2023-10-01 12:00:00+00:00"},expirationDate:{type:"string",format:"date-time",description:"Date when the certificate expires. Dynamically calculated from issued_date and expires_in; not specified by instructors.",example:"2025-10-01 12:00:00+00:00"},expiresIn:{type:"integer",description:"Number of months after which the certificate expires",example:24,minimum:0}}},children:{type:"array",description:"List of children items in the top-level curricula",items:{"x-go-type":"ChildNode",type:"object",properties:{id:{type:"string",description:"Unique identifier for the course",example:"550e8400-e29b-41d4-a716-446655440002","x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},maxLength:500,format:"uuid"},title:{type:"string",description:"Title of the course",example:"Kubernetes Basics",maxLength:500},permalink:{type:"string",format:"uri",description:"URL to the course content",example:"http://localhost:9876/academy/learning-paths/layer5/intro-kubernetes-course/kubernetes/"},description:{type:"string",description:"Course description",example:"Learn the basics of Kubernetes",maxLength:5e3},weight:{type:"number",description:"A numeric value to determine the display order. A smaller number appears first. If not specified, items will be sorted alphabetically by title.",example:"eg 1 , 2",minimum:0},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},type:{"x-go-type":"ContentType",description:"Type of the content (e.g., learning-path, challenge, certification)",type:"string",enum:["learning-path","challenge","certification"]},children:{type:"array",description:"List of child nodes (sub-courses or modules)",items:{type:"object","x-go-type":"ChildNode"}}},required:["title","description","id","permalink"]}}},required:["title","description","permalink"]}]}}},{type:"object",required:["registration_count"],properties:{registration_count:{type:"number",description:"Number of registrations associated with this curriculum.",minimum:0,"x-oapi-codegen-extra-tags":{db:"registration_count,omitempty",json:"registration_count,omitempty"}},invitation:{"x-go-type":"invitationv1beta2.Invitation","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta2/invitation",name:"invitationv1beta2"},type:"object",additionalProperties:false,description:"Invitation entity schema.",required:["id","owner_id","name","description","org_id","accepted_by","emails","roles","teams","status","created_at","updated_at","deleted_at"],properties:{id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-go-name":"ID"},owner_id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"owner_id",json:"owner_id"}},is_default:{type:"boolean",description:"Indicates whether the invitation is a default invitation (open invite), which can be used to assign users when signing up from fqdn or custom domain, a organization can only have one default invitation","x-oapi-codegen-extra-tags":{db:"is_default",json:"is_default"}},name:{type:"string",description:"Name of the invitation, which can be used to identify the invitation, required and cant be empty string,",minLength:1,maxLength:255},description:{type:"string",description:"Description of the invitation, which can be used to provide additional information about the invitation, null or empty string means the invitation does not have a description",maxLength:5e3},emails:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",pattern:"^([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-z]{2,}|@[a-zA-Z0-9.-]+\\.[a-z]{2,})$","x-go-type":"string",description:"Exact email address or the email address pattern for which the invitation is valid , null means the invitation is valid for all email addresses"},description:"The emails of the invitation."},org_id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"}},expires_at:{type:"string",format:"date-time",description:"Timestamp when the invitation expires, if applicable , null or empty string means the invitation does not expire","x-oapi-codegen-extra-tags":{db:"expires_at",json:"expires_at"}},quota:{type:"integer",description:"Quota for the invitation, which can be used to limit the number of users that can accept the invitation, null or empty string means the invitation does not have a quota",minimum:0},accepted_by:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string"},description:"List of user ids that have already accepted the invitation, null or empty string means the invitation has not been used yet","x-oapi-codegen-extra-tags":{db:"accepted_by",json:"accepted_by"}},roles:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",description:"Roles that the user will have when accepting the invitation, null or empty string means the invitation does not specify any roles"},description:"The roles of the invitation."},teams:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",description:"Teams that the user will be added to when accepting the invitation, null or empty string means the invitation does not specify any teams"},description:"The teams of the invitation."},status:{"x-go-type":"InvitationStatus",type:"string",enum:["enabled","disabled"],description:"Status of the invitation, where enabled means the invitation is active and can be used, disabled means the invitation is no longer valid and is temporarily inactive, disabled invitations can be re-enabled later."},created_at:{type:"string",format:"date-time",description:"Timestamp when the invitation was created","x-oapi-codegen-extra-tags":{db:"created_at",json:"created_at"}},updated_at:{type:"string",format:"date-time",description:"Timestamp when the invitation was last updated","x-oapi-codegen-extra-tags":{db:"updated_at",json:"updated_at"}},deleted_at:{type:"string",format:"date-time","x-go-type":"core.NullTime","x-go-type-import":{path:"github.com/meshery/schemas/models/core"},description:"Timestamp when the invitation was deleted, if applicable","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deleted_at"}}}}}}]}}}},400:{description:"Invalid request parameters"},401:{description:"Expired JWT token used or insufficient privilege",content:{"text/plain":{schema:{type:"string"}}}},404:{description:"Curricula not found"},500:{description:"Server error"}}}},"/api/academy/registrations/{contentId}":{get:{tags:["Academy"],"x-internal":["cloud"],summary:"Get registration information for academy content",description:"Returns registration data for a specific content item, optionally filtered by status.",parameters:[{name:"contentId",in:"path",required:true,description:"The ID of the content to retrieve registration data for",schema:{type:"string"}},{name:"status",in:"query",required:false,description:"Filter registrations by status (e.g., registered, completed)",schema:{type:"string"}}],responses:{200:{description:"Registration data for the specified content",content:{"application/json":{schema:{type:"object",required:["id","org_id","user_id","status","created_at","updated_at","content_id","certificate","metadata"],properties:{id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"}},org_id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"org_id"}},content_id:{type:"string",description:"ID of the course content","x-oapi-codegen-extra-tags":{db:"content_id"},maxLength:500,format:"uuid"},user_id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"user_id"}},status:{"x-go-type":"AcademyRegistrationStatus",description:"Status of the user's course registration","x-oapi-codegen-extra-tags":{db:"status"},type:"string",enum:["registered","completed","failed","withdrawn"]},updated_at:{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true,description:"When the registration was updated","x-oapi-codegen-extra-tags":{db:"updated_at"}},created_at:{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true,description:"When the registration was created","x-oapi-codegen-extra-tags":{db:"created_at"}},deleted_at:{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true},certificate:{"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,description:"Issued certificate for completing the curricula under registration","x-oapi-codegen-extra-tags":{db:"certificate"},type:"object",required:["id","orgId","title","description","issuingAuthorities","issuedDate","recipientId","recipientName"],properties:{id:{type:"string",description:"Unique identifier for the certificate",example:"550e8400-e29b-41d4-a716-446655440000","x-go-name":"ID",maxLength:500,format:"uuid"},orgId:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},recipientId:{type:"string",description:"ID of the recipient (user) who received the certificate",example:"550e8400-e29b-41d4-a716-446655440001",maxLength:500,format:"uuid"},recipientName:{type:"string",description:"Name of the recipient (user) who received the certificate",example:"John Doe",maxLength:500},title:{type:"string",description:"Title of the certificate",example:"Kubernetes Expert Certification",maxLength:500},description:{type:"string",description:"Description of the certificate",example:"Awarded for successfully completing the Kubernetes Expert course",maxLength:5e3},issuingAuthorities:{type:"array",items:{"x-go-type":"CertificateIssuingAuthority",type:"object",required:["name","url"],properties:{name:{type:"string",description:"Name of the issuing authority",example:"Cloud Native Foundation",minLength:1,maxLength:255},role:{type:"string",description:"Role of the issuing authority",example:"COO",maxLength:500},signatureUrl:{type:"string",format:"uri",description:"URL to the signature image of the issuing authority should be a publicly accessible URL and transparent PNG or SVG format",example:"http://localhost:9876/signatures/cloud-native-foundation.png"}}},description:"List of issuing authorities for the certificate"},issuedDate:{type:"string",format:"date-time",description:"Date when the certificate was issued",example:"2023-10-01 12:00:00+00:00"},expirationDate:{type:"string",format:"date-time",description:"Date when the certificate expires. Dynamically calculated from issued_date and expires_in; not specified by instructors.",example:"2025-10-01 12:00:00+00:00"},expiresIn:{type:"integer",description:"Number of months after which the certificate expires",example:24,minimum:0}}},metadata:{type:"object",description:"Additional metadata about the registration",additionalProperties:true,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"metadata"}}}}}}},400:{description:"Invalid request parameters"},401:{description:"Expired JWT token used or insufficient privilege",content:{"text/plain":{schema:{type:"string"}}}},404:{description:"Content not found"},500:{description:"Server error"}}}},"/api/academy/registrations/{registrationId}/progress-tracker/update-current-item":{post:{tags:["Academy"],"x-internal":["cloud"],operationId:"updateCurrentItemInProgressTracker",summary:"Update the current item in the progress tracker",parameters:[{name:"registrationId",in:"path",required:true,schema:{type:"string"},description:"The ID of the registration"}],requestBody:{required:true,content:{"application/json":{schema:{type:"object",properties:{contentType:{type:"string",enum:["learning-path","challenge","certification"],"x-go-type":"ContentType"},itemData:{"x-go-type":"CurriculaCurrentItemData",type:"object",required:["id","lastOpened","contentType"],properties:{id:{type:"string",description:"CurriculaCurrentItemData ID.",maxLength:500,format:"uuid"},lastOpened:{type:"string",format:"date-time",description:"The last opened of the curriculacurrentitemdata."},contentType:{type:"string",enum:["learning-path","challenge","certification"],"x-go-type":"ContentType"}}}},required:["contentType","itemData"]}}}},responses:{200:{description:"Progress tracker updated",content:{"application/json":{schema:{type:"object",properties:{message:{type:"string",description:"The message of the updatecurrentitemprogressresponse.",maxLength:500},progressTracker:{type:"object",required:["currentItem","grades","timeSpent","completed","completedItems"],properties:{currentItem:{type:"object",additionalProperties:{"x-go-type":"CurriculaCurrentItemData",type:"object",required:["id","lastOpened","contentType"],properties:{id:{type:"string",description:"CurriculaCurrentItemData ID.",maxLength:500,format:"uuid"},lastOpened:{type:"string",format:"date-time",description:"The last opened of the curriculacurrentitemdata."},contentType:{type:"string",enum:["learning-path","challenge","certification"],"x-go-type":"ContentType"}}},description:"The current item of the curriculaprogresstracker."},grades:{type:"object",additionalProperties:{"x-go-type":"QuizEvaluationResult",type:"object",required:["score","passed","totalMarks","passPercentage","quiz","attemptedAt","attempts","percentageScored","correctSubmissions"],properties:{score:{type:"integer",description:"The score of the quizevaluationresult.",minimum:0},passed:{type:"boolean",description:"The passed of the quizevaluationresult."},percentageScored:{type:"number",format:"float",description:"The percentage scored of the quizevaluationresult.",minimum:0},totalMarks:{type:"integer",description:"The total marks of the quizevaluationresult.",minimum:0},passPercentage:{type:"number",format:"float",description:"The pass percentage of the quizevaluationresult.",minimum:0},correctSubmissions:{type:"object",additionalProperties:{type:"boolean"},description:"The correct submissions of the quizevaluationresult."},quiz:{"x-go-type":"Quiz","x-generate-db-helpers":true,type:"object",required:["id","title","org_id","description","slug","relPermalink","permalink","type","section","layout","date","final","lastmod","draft","filePath","passPercentage","timeLimit","maxAttempts","questions","totalQuestions","totalQuestionsInBank","totalQuestionSets","totalMarks","prerequisites","nextPage"],properties:{id:{type:"string","x-go-name":"ID","x-oapi-codegen-extra-tags":{json:"id"},description:"Quiz ID.",maxLength:500,format:"uuid"},org_id:{type:"string",description:"Organization ID that owns this quiz",example:"layer5","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"},maxLength:500,format:"uuid"},final:{type:"boolean",description:"Indicates if the quiz is final . i.e this quiz will used to evaluate the completion of parent section eg course , module , learning path",example:true},title:{type:"string",description:"The title of the quiz.",maxLength:500},description:{type:"string",description:"Description of the quiz.",maxLength:5e3},slug:{type:"string",description:"The slug of the quiz.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the quiz.",maxLength:500},permalink:{type:"string",description:"The permalink of the quiz.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255},section:{type:"string",description:"The section of the quiz.",maxLength:500},layout:{type:"string",description:"The layout of the quiz.",maxLength:500},date:{type:"string",format:"date",description:"The date of the quiz."},lastmod:{type:"string",format:"date",description:"The lastmod of the quiz."},draft:{type:"boolean",description:"The draft of the quiz."},filePath:{type:"string",description:"The file path of the quiz.",maxLength:500},passPercentage:{type:"number",format:"float",description:"The pass percentage of the quiz.",minimum:0},timeLimit:{description:"Time limit for the quiz in minutes. A value of 0 indicates no time limit.",type:"integer",minimum:0},maxAttempts:{description:"Maximum number of attempts allowed for the quiz. A value of 0 indicates unlimited attempts.",type:"integer",minimum:0},questions:{type:"array",items:{"x-go-type":"Question",type:"object",required:["id","text","type","marks","options","correctAnswer"],properties:{id:{type:"string",description:"Question ID.",maxLength:500,format:"uuid"},text:{type:"string",description:"The text of the question.",maxLength:500},type:{"x-go-type":"QuestionType",type:"string","x-enum-varnames":["QuestionTypeMultipleAnswers","QuestionTypeSingleAnswer","QuestionTypeShortAnswer","QuestionTypeEssay"],enum:["multiple-answers","single-answer","short-answer","essay"]},marks:{type:"integer",description:"The marks of the question.",minimum:0},multipleAnswers:{type:"boolean",description:"The multiple answers of the question."},options:{type:"array",items:{"x-go-type":"QuestionOption",type:"object",required:["id","text","isCorrect"],properties:{id:{type:"string",description:"QuestionOption ID.",maxLength:500,format:"uuid"},text:{type:"string",description:"The text of the questionoption.",maxLength:500},isCorrect:{type:"boolean",description:"The is correct of the questionoption."}}},description:"The options of the question."},correctAnswer:{type:"string",description:"The correct answer of the question.",maxLength:500}}},description:"The questions of the quiz."},totalQuestions:{type:"integer",description:"The total questions of the quiz.",minimum:0},totalQuestionsInBank:{type:"integer",description:"The total questions in bank of the quiz.",minimum:0},totalQuestionSets:{type:"integer",description:"The total question sets of the quiz.",minimum:0},totalMarks:{type:"integer",description:"The total marks of the quiz.",minimum:0},prerequisites:{type:"array",items:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}},description:"The prerequisites of the quiz."},parent:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}},nextPage:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}}}},attemptedAt:{type:"string",format:"date-time",description:"The attempted at of the quizevaluationresult."},attempts:{type:"integer",description:"The attempts of the quizevaluationresult.",minimum:0}}},description:"The grades of the curriculaprogresstracker."},timeSpent:{type:"integer",description:"Total time spent in seconds",minimum:0},completedItems:{type:"object",description:"Items that have been completed (map of item IDs to item data)",additionalProperties:{"x-go-type":"ProgressItemCompleted",type:"object",required:["completedAt","itemData"],properties:{completedAt:{type:"string",format:"date-time",description:"Timestamp when the item was completed"},itemData:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}}}}},completed:{type:"string",format:"date-time","x-go-type":"core.NullTime",description:"The completed of the curriculaprogresstracker."}}},registrationId:{type:"string",description:"ID of the associated registration.",maxLength:500,format:"uuid"},contentType:{type:"string",enum:["learning-path","challenge","certification"]},itemData:{type:"object",required:["id","lastOpened","contentType"],properties:{id:{type:"string",description:"CurriculaCurrentItemData ID.",maxLength:500,format:"uuid"},lastOpened:{type:"string",format:"date-time",description:"The last opened of the curriculacurrentitemdata."},contentType:{type:"string",enum:["learning-path","challenge","certification"],"x-go-type":"ContentType"}}}}}}}},400:{description:"Bad request",content:{"application/json":{schema:{type:"object",properties:{error:{type:"string",description:"The error of the errorresponse.",maxLength:500},details:{type:"string",description:"The details of the errorresponse.",maxLength:500}}}}}},401:{description:"Expired JWT token used or insufficient privilege",content:{"text/plain":{schema:{type:"string"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Server error",content:{"application/json":{schema:{type:"object",properties:{error:{type:"string",description:"The error of the errorresponse.",maxLength:500},details:{type:"string",description:"The details of the errorresponse.",maxLength:500}}}}}}}}},"/api/academy/registrations/tests":{get:{tags:["Academy"],"x-internal":["cloud"],operationId:"getTestByAbsPath",summary:"Get test metadata",description:"Returns metadata for test identified by its absolute path.",parameters:[{name:"absPath",in:"query",required:true,description:"The absolute path of the test to retrieve",schema:{type:"string"}}],responses:{200:{description:"A single test",content:{"application/json":{schema:{"x-generate-db-helpers":true,type:"object",required:["id","title","org_id","description","slug","relPermalink","permalink","type","section","layout","date","final","lastmod","draft","filePath","passPercentage","timeLimit","maxAttempts","questions","totalQuestions","totalQuestionsInBank","totalQuestionSets","totalMarks","prerequisites","nextPage"],properties:{id:{type:"string","x-go-name":"ID","x-oapi-codegen-extra-tags":{json:"id"},description:"Quiz ID.",maxLength:500,format:"uuid"},org_id:{type:"string",description:"Organization ID that owns this quiz",example:"layer5","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"},maxLength:500,format:"uuid"},final:{type:"boolean",description:"Indicates if the quiz is final . i.e this quiz will used to evaluate the completion of parent section eg course , module , learning path",example:true},title:{type:"string",description:"The title of the quiz.",maxLength:500},description:{type:"string",description:"Description of the quiz.",maxLength:5e3},slug:{type:"string",description:"The slug of the quiz.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the quiz.",maxLength:500},permalink:{type:"string",description:"The permalink of the quiz.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255},section:{type:"string",description:"The section of the quiz.",maxLength:500},layout:{type:"string",description:"The layout of the quiz.",maxLength:500},date:{type:"string",format:"date",description:"The date of the quiz."},lastmod:{type:"string",format:"date",description:"The lastmod of the quiz."},draft:{type:"boolean",description:"The draft of the quiz."},filePath:{type:"string",description:"The file path of the quiz.",maxLength:500},passPercentage:{type:"number",format:"float",description:"The pass percentage of the quiz.",minimum:0},timeLimit:{description:"Time limit for the quiz in minutes. A value of 0 indicates no time limit.",type:"integer",minimum:0},maxAttempts:{description:"Maximum number of attempts allowed for the quiz. A value of 0 indicates unlimited attempts.",type:"integer",minimum:0},questions:{type:"array",items:{"x-go-type":"Question",type:"object",required:["id","text","type","marks","options","correctAnswer"],properties:{id:{type:"string",description:"Question ID.",maxLength:500,format:"uuid"},text:{type:"string",description:"The text of the question.",maxLength:500},type:{"x-go-type":"QuestionType",type:"string","x-enum-varnames":["QuestionTypeMultipleAnswers","QuestionTypeSingleAnswer","QuestionTypeShortAnswer","QuestionTypeEssay"],enum:["multiple-answers","single-answer","short-answer","essay"]},marks:{type:"integer",description:"The marks of the question.",minimum:0},multipleAnswers:{type:"boolean",description:"The multiple answers of the question."},options:{type:"array",items:{"x-go-type":"QuestionOption",type:"object",required:["id","text","isCorrect"],properties:{id:{type:"string",description:"QuestionOption ID.",maxLength:500,format:"uuid"},text:{type:"string",description:"The text of the questionoption.",maxLength:500},isCorrect:{type:"boolean",description:"The is correct of the questionoption."}}},description:"The options of the question."},correctAnswer:{type:"string",description:"The correct answer of the question.",maxLength:500}}},description:"The questions of the quiz."},totalQuestions:{type:"integer",description:"The total questions of the quiz.",minimum:0},totalQuestionsInBank:{type:"integer",description:"The total questions in bank of the quiz.",minimum:0},totalQuestionSets:{type:"integer",description:"The total question sets of the quiz.",minimum:0},totalMarks:{type:"integer",description:"The total marks of the quiz.",minimum:0},prerequisites:{type:"array",items:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}},description:"The prerequisites of the quiz."},parent:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}},nextPage:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}}}}}}},400:{description:"Invalid request parameters"},401:{description:"Expired JWT token used or insufficient privilege",content:{"text/plain":{schema:{type:"string"}}}},404:{description:"Quiz not found"},500:{description:"Server error"}}}},"/api/academy/registrations/test-sessions/start":{post:{tags:["Academy"],"x-internal":["cloud"],operationId:"startTestById",summary:"Start a Test by ID",description:"Starts a new test session for the quiz identified by its ID.",requestBody:{required:true,content:{"application/json":{schema:{type:"object",required:["testAbsPath","registrationId"],properties:{testAbsPath:{type:"string",description:"The test abs path of the starttestrequest.",maxLength:500},registrationId:{type:"string",description:"ID of the associated registration.",maxLength:500,format:"uuid"}}}}}},responses:{200:{description:"A single test",content:{"application/json":{schema:{"x-generate-db-helpers":true,type:"object",required:["id","title","org_id","description","slug","relPermalink","permalink","type","section","layout","date","final","lastmod","draft","filePath","passPercentage","timeLimit","maxAttempts","questions","totalQuestions","totalQuestionsInBank","totalQuestionSets","totalMarks","prerequisites","nextPage"],properties:{id:{type:"string","x-go-name":"ID","x-oapi-codegen-extra-tags":{json:"id"},description:"Quiz ID.",maxLength:500,format:"uuid"},org_id:{type:"string",description:"Organization ID that owns this quiz",example:"layer5","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"},maxLength:500,format:"uuid"},final:{type:"boolean",description:"Indicates if the quiz is final . i.e this quiz will used to evaluate the completion of parent section eg course , module , learning path",example:true},title:{type:"string",description:"The title of the quiz.",maxLength:500},description:{type:"string",description:"Description of the quiz.",maxLength:5e3},slug:{type:"string",description:"The slug of the quiz.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the quiz.",maxLength:500},permalink:{type:"string",description:"The permalink of the quiz.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255},section:{type:"string",description:"The section of the quiz.",maxLength:500},layout:{type:"string",description:"The layout of the quiz.",maxLength:500},date:{type:"string",format:"date",description:"The date of the quiz."},lastmod:{type:"string",format:"date",description:"The lastmod of the quiz."},draft:{type:"boolean",description:"The draft of the quiz."},filePath:{type:"string",description:"The file path of the quiz.",maxLength:500},passPercentage:{type:"number",format:"float",description:"The pass percentage of the quiz.",minimum:0},timeLimit:{description:"Time limit for the quiz in minutes. A value of 0 indicates no time limit.",type:"integer",minimum:0},maxAttempts:{description:"Maximum number of attempts allowed for the quiz. A value of 0 indicates unlimited attempts.",type:"integer",minimum:0},questions:{type:"array",items:{"x-go-type":"Question",type:"object",required:["id","text","type","marks","options","correctAnswer"],properties:{id:{type:"string",description:"Question ID.",maxLength:500,format:"uuid"},text:{type:"string",description:"The text of the question.",maxLength:500},type:{"x-go-type":"QuestionType",type:"string","x-enum-varnames":["QuestionTypeMultipleAnswers","QuestionTypeSingleAnswer","QuestionTypeShortAnswer","QuestionTypeEssay"],enum:["multiple-answers","single-answer","short-answer","essay"]},marks:{type:"integer",description:"The marks of the question.",minimum:0},multipleAnswers:{type:"boolean",description:"The multiple answers of the question."},options:{type:"array",items:{"x-go-type":"QuestionOption",type:"object",required:["id","text","isCorrect"],properties:{id:{type:"string",description:"QuestionOption ID.",maxLength:500,format:"uuid"},text:{type:"string",description:"The text of the questionoption.",maxLength:500},isCorrect:{type:"boolean",description:"The is correct of the questionoption."}}},description:"The options of the question."},correctAnswer:{type:"string",description:"The correct answer of the question.",maxLength:500}}},description:"The questions of the quiz."},totalQuestions:{type:"integer",description:"The total questions of the quiz.",minimum:0},totalQuestionsInBank:{type:"integer",description:"The total questions in bank of the quiz.",minimum:0},totalQuestionSets:{type:"integer",description:"The total question sets of the quiz.",minimum:0},totalMarks:{type:"integer",description:"The total marks of the quiz.",minimum:0},prerequisites:{type:"array",items:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}},description:"The prerequisites of the quiz."},parent:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}},nextPage:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}}}}}}},400:{description:"Invalid request parameters"},401:{description:"Expired JWT token used or insufficient privilege",content:{"text/plain":{schema:{type:"string"}}}},404:{description:"Quiz not found"},500:{description:"Server error"}}}},"/api/academy/registrations/{id}/test-sessions":{get:{tags:["Academy"],"x-internal":["cloud"],operationId:"getAllTestSessionsForRegistration",summary:"Get all tests for a registration",description:"Returns all tests associated with a specific registration ID for a user.",parameters:[{name:"id",in:"path",required:true,description:"The ID of the registration to retrieve tests for",schema:{type:"string"}},{name:"page",in:"query",description:"Get responses by page",schema:{type:"string"}},{name:"pagesize",in:"query",description:"Get responses by pagesize",schema:{type:"string"}},{name:"testAbsPath",in:"query",required:false,description:"Filter tests by absolute path",schema:{type:"string"}}],responses:{200:{description:"A list of tests for the specified registration",content:{"application/json":{schema:{type:"array",items:{type:"array",description:"Test submissions made by the user (array of QuizEvaluationResult)",items:{type:"object",required:["score","passed","totalMarks","passPercentage","quiz","attemptedAt","attempts","percentageScored","correctSubmissions"],properties:{score:{type:"integer",description:"The score of the quizevaluationresult.",minimum:0},passed:{type:"boolean",description:"The passed of the quizevaluationresult."},percentageScored:{type:"number",format:"float",description:"The percentage scored of the quizevaluationresult.",minimum:0},totalMarks:{type:"integer",description:"The total marks of the quizevaluationresult.",minimum:0},passPercentage:{type:"number",format:"float",description:"The pass percentage of the quizevaluationresult.",minimum:0},correctSubmissions:{type:"object",additionalProperties:{type:"boolean"},description:"The correct submissions of the quizevaluationresult."},quiz:{"x-go-type":"Quiz","x-generate-db-helpers":true,type:"object",required:["id","title","org_id","description","slug","relPermalink","permalink","type","section","layout","date","final","lastmod","draft","filePath","passPercentage","timeLimit","maxAttempts","questions","totalQuestions","totalQuestionsInBank","totalQuestionSets","totalMarks","prerequisites","nextPage"],properties:{id:{type:"string","x-go-name":"ID","x-oapi-codegen-extra-tags":{json:"id"},description:"Quiz ID.",maxLength:500,format:"uuid"},org_id:{type:"string",description:"Organization ID that owns this quiz",example:"layer5","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"},maxLength:500,format:"uuid"},final:{type:"boolean",description:"Indicates if the quiz is final . i.e this quiz will used to evaluate the completion of parent section eg course , module , learning path",example:true},title:{type:"string",description:"The title of the quiz.",maxLength:500},description:{type:"string",description:"Description of the quiz.",maxLength:5e3},slug:{type:"string",description:"The slug of the quiz.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the quiz.",maxLength:500},permalink:{type:"string",description:"The permalink of the quiz.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255},section:{type:"string",description:"The section of the quiz.",maxLength:500},layout:{type:"string",description:"The layout of the quiz.",maxLength:500},date:{type:"string",format:"date",description:"The date of the quiz."},lastmod:{type:"string",format:"date",description:"The lastmod of the quiz."},draft:{type:"boolean",description:"The draft of the quiz."},filePath:{type:"string",description:"The file path of the quiz.",maxLength:500},passPercentage:{type:"number",format:"float",description:"The pass percentage of the quiz.",minimum:0},timeLimit:{description:"Time limit for the quiz in minutes. A value of 0 indicates no time limit.",type:"integer",minimum:0},maxAttempts:{description:"Maximum number of attempts allowed for the quiz. A value of 0 indicates unlimited attempts.",type:"integer",minimum:0},questions:{type:"array",items:{"x-go-type":"Question",type:"object",required:["id","text","type","marks","options","correctAnswer"],properties:{id:{type:"string",description:"Question ID.",maxLength:500,format:"uuid"},text:{type:"string",description:"The text of the question.",maxLength:500},type:{"x-go-type":"QuestionType",type:"string","x-enum-varnames":["QuestionTypeMultipleAnswers","QuestionTypeSingleAnswer","QuestionTypeShortAnswer","QuestionTypeEssay"],enum:["multiple-answers","single-answer","short-answer","essay"]},marks:{type:"integer",description:"The marks of the question.",minimum:0},multipleAnswers:{type:"boolean",description:"The multiple answers of the question."},options:{type:"array",items:{"x-go-type":"QuestionOption",type:"object",required:["id","text","isCorrect"],properties:{id:{type:"string",description:"QuestionOption ID.",maxLength:500,format:"uuid"},text:{type:"string",description:"The text of the questionoption.",maxLength:500},isCorrect:{type:"boolean",description:"The is correct of the questionoption."}}},description:"The options of the question."},correctAnswer:{type:"string",description:"The correct answer of the question.",maxLength:500}}},description:"The questions of the quiz."},totalQuestions:{type:"integer",description:"The total questions of the quiz.",minimum:0},totalQuestionsInBank:{type:"integer",description:"The total questions in bank of the quiz.",minimum:0},totalQuestionSets:{type:"integer",description:"The total question sets of the quiz.",minimum:0},totalMarks:{type:"integer",description:"The total marks of the quiz.",minimum:0},prerequisites:{type:"array",items:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}},description:"The prerequisites of the quiz."},parent:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}},nextPage:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}}}},attemptedAt:{type:"string",format:"date-time",description:"The attempted at of the quizevaluationresult."},attempts:{type:"integer",description:"The attempts of the quizevaluationresult.",minimum:0}}}}}}}},400:{description:"Invalid request parameters"},401:{description:"Expired JWT token used or insufficient privilege",content:{"text/plain":{schema:{type:"string"}}}},404:{description:"Registration not found"},500:{description:"Server error"}}}},"/api/academy/registrations/test-sessions/submit":{post:{tags:["Academy"],"x-internal":["cloud"],operationId:"submitQuiz",summary:"Submit a quiz for evaluation",requestBody:{required:true,content:{"application/json":{schema:{type:"object",required:["quizAbsPath","registrationId","testSessionId","user_id","answers"],properties:{testSessionId:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},quizAbsPath:{type:"string",description:"The quiz abs path of the quizsubmission.",maxLength:500},registrationId:{type:"string",description:"ID of the associated registration.",maxLength:500,format:"uuid"},user_id:{type:"string",description:"ID of the user who owns or created this resource.",maxLength:500,format:"uuid"},answers:{type:"array",items:{"x-go-type":"SubmittedAnswer",type:"object",required:["questionId","selectedOptionId","answerText"],properties:{questionId:{type:"string",description:"ID of the associated question.",maxLength:500,format:"uuid"},selectedOptionId:{type:"object",additionalProperties:{type:"boolean"},description:"Map of selected option IDs to a boolean value indicating if it was selected."},answerText:{type:"string",description:"The answer text of the submittedanswer.",maxLength:500}}},description:"The answers of the quizsubmission."}}}}}},responses:{200:{description:"Progress tracker updated",content:{"application/json":{schema:{type:"object",required:["score","passed","totalMarks","passPercentage","quiz","attemptedAt","attempts","percentageScored","correctSubmissions"],properties:{score:{type:"integer",description:"The score of the quizevaluationresult.",minimum:0},passed:{type:"boolean",description:"The passed of the quizevaluationresult."},percentageScored:{type:"number",format:"float",description:"The percentage scored of the quizevaluationresult.",minimum:0},totalMarks:{type:"integer",description:"The total marks of the quizevaluationresult.",minimum:0},passPercentage:{type:"number",format:"float",description:"The pass percentage of the quizevaluationresult.",minimum:0},correctSubmissions:{type:"object",additionalProperties:{type:"boolean"},description:"The correct submissions of the quizevaluationresult."},quiz:{"x-go-type":"Quiz","x-generate-db-helpers":true,type:"object",required:["id","title","org_id","description","slug","relPermalink","permalink","type","section","layout","date","final","lastmod","draft","filePath","passPercentage","timeLimit","maxAttempts","questions","totalQuestions","totalQuestionsInBank","totalQuestionSets","totalMarks","prerequisites","nextPage"],properties:{id:{type:"string","x-go-name":"ID","x-oapi-codegen-extra-tags":{json:"id"},description:"Quiz ID.",maxLength:500,format:"uuid"},org_id:{type:"string",description:"Organization ID that owns this quiz",example:"layer5","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"},maxLength:500,format:"uuid"},final:{type:"boolean",description:"Indicates if the quiz is final . i.e this quiz will used to evaluate the completion of parent section eg course , module , learning path",example:true},title:{type:"string",description:"The title of the quiz.",maxLength:500},description:{type:"string",description:"Description of the quiz.",maxLength:5e3},slug:{type:"string",description:"The slug of the quiz.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the quiz.",maxLength:500},permalink:{type:"string",description:"The permalink of the quiz.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255},section:{type:"string",description:"The section of the quiz.",maxLength:500},layout:{type:"string",description:"The layout of the quiz.",maxLength:500},date:{type:"string",format:"date",description:"The date of the quiz."},lastmod:{type:"string",format:"date",description:"The lastmod of the quiz."},draft:{type:"boolean",description:"The draft of the quiz."},filePath:{type:"string",description:"The file path of the quiz.",maxLength:500},passPercentage:{type:"number",format:"float",description:"The pass percentage of the quiz.",minimum:0},timeLimit:{description:"Time limit for the quiz in minutes. A value of 0 indicates no time limit.",type:"integer",minimum:0},maxAttempts:{description:"Maximum number of attempts allowed for the quiz. A value of 0 indicates unlimited attempts.",type:"integer",minimum:0},questions:{type:"array",items:{"x-go-type":"Question",type:"object",required:["id","text","type","marks","options","correctAnswer"],properties:{id:{type:"string",description:"Question ID.",maxLength:500,format:"uuid"},text:{type:"string",description:"The text of the question.",maxLength:500},type:{"x-go-type":"QuestionType",type:"string","x-enum-varnames":["QuestionTypeMultipleAnswers","QuestionTypeSingleAnswer","QuestionTypeShortAnswer","QuestionTypeEssay"],enum:["multiple-answers","single-answer","short-answer","essay"]},marks:{type:"integer",description:"The marks of the question.",minimum:0},multipleAnswers:{type:"boolean",description:"The multiple answers of the question."},options:{type:"array",items:{"x-go-type":"QuestionOption",type:"object",required:["id","text","isCorrect"],properties:{id:{type:"string",description:"QuestionOption ID.",maxLength:500,format:"uuid"},text:{type:"string",description:"The text of the questionoption.",maxLength:500},isCorrect:{type:"boolean",description:"The is correct of the questionoption."}}},description:"The options of the question."},correctAnswer:{type:"string",description:"The correct answer of the question.",maxLength:500}}},description:"The questions of the quiz."},totalQuestions:{type:"integer",description:"The total questions of the quiz.",minimum:0},totalQuestionsInBank:{type:"integer",description:"The total questions in bank of the quiz.",minimum:0},totalQuestionSets:{type:"integer",description:"The total question sets of the quiz.",minimum:0},totalMarks:{type:"integer",description:"The total marks of the quiz.",minimum:0},prerequisites:{type:"array",items:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}},description:"The prerequisites of the quiz."},parent:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}},nextPage:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}}}},attemptedAt:{type:"string",format:"date-time",description:"The attempted at of the quizevaluationresult."},attempts:{type:"integer",description:"The attempts of the quizevaluationresult.",minimum:0}}}}}},400:{description:"Bad request",content:{"application/json":{schema:{type:"object",properties:{error:{type:"string",description:"The error of the errorresponse.",maxLength:500},details:{type:"string",description:"The details of the errorresponse.",maxLength:500}}}}}},401:{description:"Expired JWT token used or insufficient privilege",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Server error",content:{"application/json":{schema:{type:"object",properties:{error:{type:"string",description:"The error of the errorresponse.",maxLength:500},details:{type:"string",description:"The details of the errorresponse.",maxLength:500}}}}}}}}},"/api/academy/admin/summary":{get:{tags:["Academy"],"x-internal":["cloud"],operationId:"getAcademyAdminSummary",summary:"Get academy content summary",description:"Returns a summary of all academy content with metrics.",responses:{200:{description:"A list of content with total count and registration metrics",content:{"application/json":{schema:{type:"object"}}}},400:{description:"Invalid request parameters"},401:{description:"Expired JWT token used or insufficient privilege",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Server error"}}}},"/api/academy/admin/registrations":{get:{"x-internal":["cloud"],tags:["Academy"],operationId:"getAcademyAdminRegistrations",summary:"Get academy registrations",description:"Returns a list of academy registrations with user, curricula, and pagination details.",parameters:[{name:"pagesize",in:"query",required:false,description:"Number of results per page",schema:{type:"integer"}},{name:"page",in:"query",required:false,description:"Page number",schema:{type:"integer"}},{name:"contentType",in:"query",required:false,description:"Filter by content types",style:"form",explode:true,schema:{type:"array",items:{type:"string"}}},{name:"status",in:"query",required:false,description:"Filter by registration status",style:"form",explode:true,schema:{type:"array",items:{type:"string"}}}],responses:{200:{description:"List of registrations with pagination info",content:{"application/json":{schema:{type:"object",required:["data","total_count","page_size","page"],properties:{data:{type:"array",items:{"x-go-type":"UserRegistration",type:"object",required:["curricula_title","curricula_type","curricula_permalink","registration_id","status","user_id","user_email","user_last_name","user_first_name","user_avatar_url","total_count"],properties:{curricula_title:{type:"string",description:"Title of the curricula","x-oapi-codegen-extra-tags":{db:"curricula_title"},maxLength:500},curricula_type:{type:"string",enum:["learning-path","challenge","certification"],description:"Type of the curricula","x-go-type":"ContentType","x-oapi-codegen-extra-tags":{db:"curricula_type"}},curricula_permalink:{type:"string",description:"Permalink of the curricula","x-oapi-codegen-extra-tags":{db:"curricula_permalink"},maxLength:500},registration_id:{type:"string",format:"uuid",description:"Unique ID of the registration","x-oapi-codegen-extra-tags":{db:"registration_id"}},status:{description:"Registration status","x-go-type":"AcademyRegistrationStatus","x-oapi-codegen-extra-tags":{db:"status"},type:"string",enum:["registered","completed","failed","withdrawn"]},created_at:{type:"string",format:"date-time",description:"When the registration was created","x-oapi-codegen-extra-tags":{db:"created_at"}},user_id:{type:"string",format:"uuid",description:"ID of the user","x-oapi-codegen-extra-tags":{db:"user_id"}},user_first_name:{type:"string",description:"First name of the user","x-oapi-codegen-extra-tags":{db:"user_first_name"},maxLength:500},user_last_name:{type:"string",description:"Last name of the user","x-oapi-codegen-extra-tags":{db:"user_last_name"},maxLength:500},user_email:{type:"string",format:"email",description:"Email of the user","x-oapi-codegen-extra-tags":{db:"user_email"}},user_avatar_url:{type:"string",format:"uri",description:"Avatar URL of the user","x-oapi-codegen-extra-tags":{db:"user_avatar_url"}},total_count:{type:"integer",format:"int64",description:"Total count for pagination","x-oapi-codegen-extra-tags":{db:"total_count"},minimum:0}}},description:"The data of the curricularegistrationsresponse."},total_count:{type:"integer",format:"int64",description:"Total number of items available.",minimum:0},page_size:{type:"integer",description:"Number of items per page.",minimum:1},page:{type:"integer",description:"Current page number of the result set.",minimum:0}}}}}},400:{description:"Invalid request parameters"},401:{description:"Expired JWT token used or insufficient privilege",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Server error"}}}},"/api/academy/certificates/{certificateId}":{get:{"x-internal":["cloud"],tags:["Academy"],operationId:"getCertificateById",summary:"Get a certificate by ID",description:"Returns a certificate identified by its ID.",parameters:[{name:"certificateId",in:"path",required:true,description:"The ID of the certificate to retrieve",schema:{type:"string"}}],responses:{200:{description:"A single certificate",content:{"application/json":{schema:{type:"object",required:["id","orgId","title","description","issuingAuthorities","issuedDate","recipientId","recipientName"],properties:{id:{type:"string",description:"Unique identifier for the certificate",example:"550e8400-e29b-41d4-a716-446655440000","x-go-name":"ID",maxLength:500,format:"uuid"},orgId:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},recipientId:{type:"string",description:"ID of the recipient (user) who received the certificate",example:"550e8400-e29b-41d4-a716-446655440001",maxLength:500,format:"uuid"},recipientName:{type:"string",description:"Name of the recipient (user) who received the certificate",example:"John Doe",maxLength:500},title:{type:"string",description:"Title of the certificate",example:"Kubernetes Expert Certification",maxLength:500},description:{type:"string",description:"Description of the certificate",example:"Awarded for successfully completing the Kubernetes Expert course",maxLength:5e3},issuingAuthorities:{type:"array",items:{"x-go-type":"CertificateIssuingAuthority",type:"object",required:["name","url"],properties:{name:{type:"string",description:"Name of the issuing authority",example:"Cloud Native Foundation",minLength:1,maxLength:255},role:{type:"string",description:"Role of the issuing authority",example:"COO",maxLength:500},signatureUrl:{type:"string",format:"uri",description:"URL to the signature image of the issuing authority should be a publicly accessible URL and transparent PNG or SVG format",example:"http://localhost:9876/signatures/cloud-native-foundation.png"}}},description:"List of issuing authorities for the certificate"},issuedDate:{type:"string",format:"date-time",description:"Date when the certificate was issued",example:"2023-10-01 12:00:00+00:00"},expirationDate:{type:"string",format:"date-time",description:"Date when the certificate expires. Dynamically calculated from issued_date and expires_in; not specified by instructors.",example:"2025-10-01 12:00:00+00:00"},expiresIn:{type:"integer",description:"Number of months after which the certificate expires",example:24,minimum:0}}}}}},400:{description:"Invalid request parameters"},401:{description:"Expired JWT token used or insufficient privilege",content:{"text/plain":{schema:{type:"string"}}}},404:{description:"Certificate not found"},500:{description:"Server error"}}}}},components:{responses:{400:{description:"Invalid request body or request param",content:{"text/plain":{schema:{type:"string"}}}},401:{description:"Expired JWT token used or insufficient privilege",content:{"text/plain":{schema:{type:"string"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error",content:{"text/plain":{schema:{type:"string"}}}}},securitySchemes:{jwt:{type:"http",scheme:"bearer",bearerFormat:"JWT"}},parameters:{id:{name:"id",in:"path",required:true,description:"The ID of the curricula",schema:{type:"string"}}},schemas:{AcademyCurriculaOrgId:{type:"string",description:"Organization ID that owns this learning path",example:"layer5","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"}},AcademyCurriculaBadgeId:{allOf:[{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}}],description:"ID of the badge to be awarded on completion of this curricula","x-oapi-codegen-extra-tags":{db:"badge_id",json:"badge_id"}},AcademyCurriculaInviteId:{allOf:[{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}}],description:"ID of the invite associated with this Curricula","x-oapi-codegen-extra-tags":{db:"invite_id",json:"invite_id"}},AcademyCurriculaWorkspaceId:{allOf:[{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}}],description:"ID of the workspace to which this Curricula belongs","x-oapi-codegen-extra-tags":{db:"workspace_id",json:"workspace_id"}},AcademyCurriculaCreatedAt:{allOf:[{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}],description:"When the Curricula item was created","x-oapi-codegen-extra-tags":{db:"created_at",json:"created_at"}},AcademyCurriculaUpdatedAt:{allOf:[{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}],description:"When the Curricula was last updated","x-go-type":"core.Time","x-oapi-codegen-extra-tags":{db:"updated_at",json:"updated_at"}},AcademyCurriculaDeletedAt:{allOf:[{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true}],"x-go-type":"core.NullTime","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deleted_at"}},AcademyCurriculaMetadata:{type:"object",description:"Additional metadata about the Curricula",additionalProperties:true,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata"},oneOf:[{"x-go-type":"CurriculaMetadata",type:"object",properties:{title:{type:"string",description:"Title of the learning path",example:"Mastering Kubernetes for Engineers",maxLength:500},description:{type:"string",description:"Short description of the curricula",example:"Learn how to configure your Kubernetes clusters and manage the lifecycle of your workloads",maxLength:5e3},detailedDescription:{type:"string",description:"Detailed description of the curricula",example:"This learning path covers everything from Kubernetes architecture to advanced deployment strategies, including hands-on labs and real-world scenarios.",maxLength:500},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},permalink:{type:"string",format:"uri",description:"Canonical URL for the learning path",example:"http://localhost:9876/academy/learning-paths/layer5/mastering-kubernetes-for-engineers/"},certificate:{"x-go-type":"Certificate",type:"object",required:["id","orgId","title","description","issuingAuthorities","issuedDate","recipientId","recipientName"],properties:{id:{type:"string",description:"Unique identifier for the certificate",example:"550e8400-e29b-41d4-a716-446655440000","x-go-name":"ID",maxLength:500,format:"uuid"},orgId:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},recipientId:{type:"string",description:"ID of the recipient (user) who received the certificate",example:"550e8400-e29b-41d4-a716-446655440001",maxLength:500,format:"uuid"},recipientName:{type:"string",description:"Name of the recipient (user) who received the certificate",example:"John Doe",maxLength:500},title:{type:"string",description:"Title of the certificate",example:"Kubernetes Expert Certification",maxLength:500},description:{type:"string",description:"Description of the certificate",example:"Awarded for successfully completing the Kubernetes Expert course",maxLength:5e3},issuingAuthorities:{type:"array",items:{"x-go-type":"CertificateIssuingAuthority",type:"object",required:["name","url"],properties:{name:{type:"string",description:"Name of the issuing authority",example:"Cloud Native Foundation",minLength:1,maxLength:255},role:{type:"string",description:"Role of the issuing authority",example:"COO",maxLength:500},signatureUrl:{type:"string",format:"uri",description:"URL to the signature image of the issuing authority should be a publicly accessible URL and transparent PNG or SVG format",example:"http://localhost:9876/signatures/cloud-native-foundation.png"}}},description:"List of issuing authorities for the certificate"},issuedDate:{type:"string",format:"date-time",description:"Date when the certificate was issued",example:"2023-10-01 12:00:00+00:00"},expirationDate:{type:"string",format:"date-time",description:"Date when the certificate expires. Dynamically calculated from issued_date and expires_in; not specified by instructors.",example:"2025-10-01 12:00:00+00:00"},expiresIn:{type:"integer",description:"Number of months after which the certificate expires",example:24,minimum:0}}},children:{type:"array",description:"List of children items in the top-level curricula",items:{"x-go-type":"ChildNode",type:"object",properties:{id:{type:"string",description:"Unique identifier for the course",example:"550e8400-e29b-41d4-a716-446655440002","x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},maxLength:500,format:"uuid"},title:{type:"string",description:"Title of the course",example:"Kubernetes Basics",maxLength:500},permalink:{type:"string",format:"uri",description:"URL to the course content",example:"http://localhost:9876/academy/learning-paths/layer5/intro-kubernetes-course/kubernetes/"},description:{type:"string",description:"Course description",example:"Learn the basics of Kubernetes",maxLength:5e3},weight:{type:"number",description:"A numeric value to determine the display order. A smaller number appears first. If not specified, items will be sorted alphabetically by title.",example:"eg 1 , 2",minimum:0},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},type:{"x-go-type":"ContentType",description:"Type of the content (e.g., learning-path, challenge, certification)",type:"string",enum:["learning-path","challenge","certification"]},children:{type:"array",description:"List of child nodes (sub-courses or modules)",items:{type:"object","x-go-type":"ChildNode"}}},required:["title","description","id","permalink"]}}},required:["title","description","permalink"]}]},AcademyCurriculaAccessExpiresAt:{allOf:[{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}],description:"Expiry time for curricula access","x-go-type":"*time.Time","x-oapi-codegen-extra-tags":{json:"access_expires_at",db:"access_expires_at"}},RegisterToAcademyContentRequest:{type:"object",required:["contentId","user_id"],properties:{contentId:{type:"string",description:"ID of the academy content to register for",maxLength:500,format:"uuid"},user_id:{type:"string",format:"uuid",description:"ID of the user registering for the content."},contentType:{type:"string",enum:["learning-path","challenge","certification"]}}},ContentType:{type:"string",enum:["learning-path","challenge","certification"]},Visibility:{type:"string",enum:["public","private"]},Level:{type:"string",enum:["beginner","intermediate","advanced"]},Status:{type:"string",enum:["ready","archived","not_ready"]},AcademyCurricula:{type:"object",additionalProperties:false,description:"AcademyCurricula entity schema.",required:["id","type","org_id","visibility","status","slug","created_at","updated_at","deleted_at","metadata","level"],properties:{id:{type:"string",description:"Id of the Curricula",example:"923458-3490394-934893","x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},maxLength:500,format:"uuid"},type:{"x-go-type":"ContentType","x-oapi-codegen-extra-tags":{db:"type"},type:"string",enum:["learning-path","challenge","certification"]},org_id:{type:"string",description:"Organization ID that owns this learning path",example:"layer5","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"}},visibility:{description:"Visibility of the Curricula","x-go-type":"Visibility","x-oapi-codegen-extra-tags":{db:"visibility",json:"visibility"},type:"string",enum:["public","private"]},status:{example:"ready",description:"Status of the Curricula","x-go-type":"Status","x-oapi-codegen-extra-tags":{db:"status",json:"status"},type:"string",enum:["ready","archived","not_ready"]},slug:{type:"string",description:"slug of the Curricula",example:"intro-kubernetes-course",maxLength:500},level:{description:"Level of the Curricula","x-go-type":"Level","x-oapi-codegen-extra-tags":{db:"level",json:"level"},type:"string",enum:["beginner","intermediate","advanced"]},badge_id:{type:"string",format:"uuid",description:"ID of the badge to be awarded on completion of this curricula","x-go-type":"core.Uuid","x-go-type-import":{path:"github.com/meshery/schemas/models/core",name:"core"},"x-oapi-codegen-extra-tags":{db:"badge_id",json:"badge_id"}},invite_id:{allOf:[{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}}],description:"ID of the invite associated with this Curricula","x-oapi-codegen-extra-tags":{db:"invite_id",json:"invite_id"}},workspace_id:{allOf:[{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}}],description:"ID of the workspace to which this Curricula belongs","x-oapi-codegen-extra-tags":{db:"workspace_id",json:"workspace_id"}},created_at:{allOf:[{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}],description:"When the Curricula item was created","x-oapi-codegen-extra-tags":{db:"created_at",json:"created_at"}},updated_at:{allOf:[{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}],description:"When the Curricula was last updated","x-go-type":"core.Time","x-oapi-codegen-extra-tags":{db:"updated_at",json:"updated_at"}},deleted_at:{allOf:[{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true}],"x-go-type":"core.NullTime","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deleted_at"}},metadata:{type:"object",description:"Additional metadata about the Curricula",additionalProperties:true,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata"},oneOf:[{"x-go-type":"CurriculaMetadata",type:"object",properties:{title:{type:"string",description:"Title of the learning path",example:"Mastering Kubernetes for Engineers",maxLength:500},description:{type:"string",description:"Short description of the curricula",example:"Learn how to configure your Kubernetes clusters and manage the lifecycle of your workloads",maxLength:5e3},detailedDescription:{type:"string",description:"Detailed description of the curricula",example:"This learning path covers everything from Kubernetes architecture to advanced deployment strategies, including hands-on labs and real-world scenarios.",maxLength:500},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},permalink:{type:"string",format:"uri",description:"Canonical URL for the learning path",example:"http://localhost:9876/academy/learning-paths/layer5/mastering-kubernetes-for-engineers/"},certificate:{"x-go-type":"Certificate",type:"object",required:["id","orgId","title","description","issuingAuthorities","issuedDate","recipientId","recipientName"],properties:{id:{type:"string",description:"Unique identifier for the certificate",example:"550e8400-e29b-41d4-a716-446655440000","x-go-name":"ID",maxLength:500,format:"uuid"},orgId:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},recipientId:{type:"string",description:"ID of the recipient (user) who received the certificate",example:"550e8400-e29b-41d4-a716-446655440001",maxLength:500,format:"uuid"},recipientName:{type:"string",description:"Name of the recipient (user) who received the certificate",example:"John Doe",maxLength:500},title:{type:"string",description:"Title of the certificate",example:"Kubernetes Expert Certification",maxLength:500},description:{type:"string",description:"Description of the certificate",example:"Awarded for successfully completing the Kubernetes Expert course",maxLength:5e3},issuingAuthorities:{type:"array",items:{"x-go-type":"CertificateIssuingAuthority",type:"object",required:["name","url"],properties:{name:{type:"string",description:"Name of the issuing authority",example:"Cloud Native Foundation",minLength:1,maxLength:255},role:{type:"string",description:"Role of the issuing authority",example:"COO",maxLength:500},signatureUrl:{type:"string",format:"uri",description:"URL to the signature image of the issuing authority should be a publicly accessible URL and transparent PNG or SVG format",example:"http://localhost:9876/signatures/cloud-native-foundation.png"}}},description:"List of issuing authorities for the certificate"},issuedDate:{type:"string",format:"date-time",description:"Date when the certificate was issued",example:"2023-10-01 12:00:00+00:00"},expirationDate:{type:"string",format:"date-time",description:"Date when the certificate expires. Dynamically calculated from issued_date and expires_in; not specified by instructors.",example:"2025-10-01 12:00:00+00:00"},expiresIn:{type:"integer",description:"Number of months after which the certificate expires",example:24,minimum:0}}},children:{type:"array",description:"List of children items in the top-level curricula",items:{"x-go-type":"ChildNode",type:"object",properties:{id:{type:"string",description:"Unique identifier for the course",example:"550e8400-e29b-41d4-a716-446655440002","x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},maxLength:500,format:"uuid"},title:{type:"string",description:"Title of the course",example:"Kubernetes Basics",maxLength:500},permalink:{type:"string",format:"uri",description:"URL to the course content",example:"http://localhost:9876/academy/learning-paths/layer5/intro-kubernetes-course/kubernetes/"},description:{type:"string",description:"Course description",example:"Learn the basics of Kubernetes",maxLength:5e3},weight:{type:"number",description:"A numeric value to determine the display order. A smaller number appears first. If not specified, items will be sorted alphabetically by title.",example:"eg 1 , 2",minimum:0},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},type:{"x-go-type":"ContentType",description:"Type of the content (e.g., learning-path, challenge, certification)",type:"string",enum:["learning-path","challenge","certification"]},children:{type:"array",description:"List of child nodes (sub-courses or modules)",items:{type:"object","x-go-type":"ChildNode"}}},required:["title","description","id","permalink"]}}},required:["title","description","permalink"]}]}}},SingleAcademyCurriculaResponse:{type:"object",allOf:[{type:"object",additionalProperties:false,description:"AcademyCurricula entity schema.",required:["id","type","org_id","visibility","status","slug","created_at","updated_at","deleted_at","metadata","level"],properties:{id:{type:"string",description:"Id of the Curricula",example:"923458-3490394-934893","x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},maxLength:500,format:"uuid"},type:{"x-go-type":"ContentType","x-oapi-codegen-extra-tags":{db:"type"},type:"string",enum:["learning-path","challenge","certification"]},org_id:{type:"string",description:"Organization ID that owns this learning path",example:"layer5","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"}},visibility:{description:"Visibility of the Curricula","x-go-type":"Visibility","x-oapi-codegen-extra-tags":{db:"visibility",json:"visibility"},type:"string",enum:["public","private"]},status:{example:"ready",description:"Status of the Curricula","x-go-type":"Status","x-oapi-codegen-extra-tags":{db:"status",json:"status"},type:"string",enum:["ready","archived","not_ready"]},slug:{type:"string",description:"slug of the Curricula",example:"intro-kubernetes-course",maxLength:500},level:{description:"Level of the Curricula","x-go-type":"Level","x-oapi-codegen-extra-tags":{db:"level",json:"level"},type:"string",enum:["beginner","intermediate","advanced"]},badge_id:{type:"string",format:"uuid",description:"ID of the badge to be awarded on completion of this curricula","x-go-type":"core.Uuid","x-go-type-import":{path:"github.com/meshery/schemas/models/core",name:"core"},"x-oapi-codegen-extra-tags":{db:"badge_id",json:"badge_id"}},invite_id:{allOf:[{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}}],description:"ID of the invite associated with this Curricula","x-oapi-codegen-extra-tags":{db:"invite_id",json:"invite_id"}},workspace_id:{allOf:[{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}}],description:"ID of the workspace to which this Curricula belongs","x-oapi-codegen-extra-tags":{db:"workspace_id",json:"workspace_id"}},created_at:{allOf:[{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}],description:"When the Curricula item was created","x-oapi-codegen-extra-tags":{db:"created_at",json:"created_at"}},updated_at:{allOf:[{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}],description:"When the Curricula was last updated","x-go-type":"core.Time","x-oapi-codegen-extra-tags":{db:"updated_at",json:"updated_at"}},deleted_at:{allOf:[{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true}],"x-go-type":"core.NullTime","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deleted_at"}},metadata:{type:"object",description:"Additional metadata about the Curricula",additionalProperties:true,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata"},oneOf:[{"x-go-type":"CurriculaMetadata",type:"object",properties:{title:{type:"string",description:"Title of the learning path",example:"Mastering Kubernetes for Engineers",maxLength:500},description:{type:"string",description:"Short description of the curricula",example:"Learn how to configure your Kubernetes clusters and manage the lifecycle of your workloads",maxLength:5e3},detailedDescription:{type:"string",description:"Detailed description of the curricula",example:"This learning path covers everything from Kubernetes architecture to advanced deployment strategies, including hands-on labs and real-world scenarios.",maxLength:500},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},permalink:{type:"string",format:"uri",description:"Canonical URL for the learning path",example:"http://localhost:9876/academy/learning-paths/layer5/mastering-kubernetes-for-engineers/"},certificate:{"x-go-type":"Certificate",type:"object",required:["id","orgId","title","description","issuingAuthorities","issuedDate","recipientId","recipientName"],properties:{id:{type:"string",description:"Unique identifier for the certificate",example:"550e8400-e29b-41d4-a716-446655440000","x-go-name":"ID",maxLength:500,format:"uuid"},orgId:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},recipientId:{type:"string",description:"ID of the recipient (user) who received the certificate",example:"550e8400-e29b-41d4-a716-446655440001",maxLength:500,format:"uuid"},recipientName:{type:"string",description:"Name of the recipient (user) who received the certificate",example:"John Doe",maxLength:500},title:{type:"string",description:"Title of the certificate",example:"Kubernetes Expert Certification",maxLength:500},description:{type:"string",description:"Description of the certificate",example:"Awarded for successfully completing the Kubernetes Expert course",maxLength:5e3},issuingAuthorities:{type:"array",items:{"x-go-type":"CertificateIssuingAuthority",type:"object",required:["name","url"],properties:{name:{type:"string",description:"Name of the issuing authority",example:"Cloud Native Foundation",minLength:1,maxLength:255},role:{type:"string",description:"Role of the issuing authority",example:"COO",maxLength:500},signatureUrl:{type:"string",format:"uri",description:"URL to the signature image of the issuing authority should be a publicly accessible URL and transparent PNG or SVG format",example:"http://localhost:9876/signatures/cloud-native-foundation.png"}}},description:"List of issuing authorities for the certificate"},issuedDate:{type:"string",format:"date-time",description:"Date when the certificate was issued",example:"2023-10-01 12:00:00+00:00"},expirationDate:{type:"string",format:"date-time",description:"Date when the certificate expires. Dynamically calculated from issued_date and expires_in; not specified by instructors.",example:"2025-10-01 12:00:00+00:00"},expiresIn:{type:"integer",description:"Number of months after which the certificate expires",example:24,minimum:0}}},children:{type:"array",description:"List of children items in the top-level curricula",items:{"x-go-type":"ChildNode",type:"object",properties:{id:{type:"string",description:"Unique identifier for the course",example:"550e8400-e29b-41d4-a716-446655440002","x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},maxLength:500,format:"uuid"},title:{type:"string",description:"Title of the course",example:"Kubernetes Basics",maxLength:500},permalink:{type:"string",format:"uri",description:"URL to the course content",example:"http://localhost:9876/academy/learning-paths/layer5/intro-kubernetes-course/kubernetes/"},description:{type:"string",description:"Course description",example:"Learn the basics of Kubernetes",maxLength:5e3},weight:{type:"number",description:"A numeric value to determine the display order. A smaller number appears first. If not specified, items will be sorted alphabetically by title.",example:"eg 1 , 2",minimum:0},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},type:{"x-go-type":"ContentType",description:"Type of the content (e.g., learning-path, challenge, certification)",type:"string",enum:["learning-path","challenge","certification"]},children:{type:"array",description:"List of child nodes (sub-courses or modules)",items:{type:"object","x-go-type":"ChildNode"}}},required:["title","description","id","permalink"]}}},required:["title","description","permalink"]}]}}},{type:"object",required:["registration_count"],properties:{registration_count:{type:"number",description:"Number of registrations associated with this curriculum.",minimum:0,"x-oapi-codegen-extra-tags":{db:"registration_count,omitempty",json:"registration_count,omitempty"}},invitation:{"x-go-type":"invitationv1beta2.Invitation","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta2/invitation",name:"invitationv1beta2"},type:"object",additionalProperties:false,description:"Invitation entity schema.",required:["id","owner_id","name","description","org_id","accepted_by","emails","roles","teams","status","created_at","updated_at","deleted_at"],properties:{id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-go-name":"ID"},owner_id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"owner_id",json:"owner_id"}},is_default:{type:"boolean",description:"Indicates whether the invitation is a default invitation (open invite), which can be used to assign users when signing up from fqdn or custom domain, a organization can only have one default invitation","x-oapi-codegen-extra-tags":{db:"is_default",json:"is_default"}},name:{type:"string",description:"Name of the invitation, which can be used to identify the invitation, required and cant be empty string,",minLength:1,maxLength:255},description:{type:"string",description:"Description of the invitation, which can be used to provide additional information about the invitation, null or empty string means the invitation does not have a description",maxLength:5e3},emails:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",pattern:"^([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-z]{2,}|@[a-zA-Z0-9.-]+\\.[a-z]{2,})$","x-go-type":"string",description:"Exact email address or the email address pattern for which the invitation is valid , null means the invitation is valid for all email addresses"},description:"The emails of the invitation."},org_id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"}},expires_at:{type:"string",format:"date-time",description:"Timestamp when the invitation expires, if applicable , null or empty string means the invitation does not expire","x-oapi-codegen-extra-tags":{db:"expires_at",json:"expires_at"}},quota:{type:"integer",description:"Quota for the invitation, which can be used to limit the number of users that can accept the invitation, null or empty string means the invitation does not have a quota",minimum:0},accepted_by:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string"},description:"List of user ids that have already accepted the invitation, null or empty string means the invitation has not been used yet","x-oapi-codegen-extra-tags":{db:"accepted_by",json:"accepted_by"}},roles:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",description:"Roles that the user will have when accepting the invitation, null or empty string means the invitation does not specify any roles"},description:"The roles of the invitation."},teams:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",description:"Teams that the user will be added to when accepting the invitation, null or empty string means the invitation does not specify any teams"},description:"The teams of the invitation."},status:{"x-go-type":"InvitationStatus",type:"string",enum:["enabled","disabled"],description:"Status of the invitation, where enabled means the invitation is active and can be used, disabled means the invitation is no longer valid and is temporarily inactive, disabled invitations can be re-enabled later."},created_at:{type:"string",format:"date-time",description:"Timestamp when the invitation was created","x-oapi-codegen-extra-tags":{db:"created_at",json:"created_at"}},updated_at:{type:"string",format:"date-time",description:"Timestamp when the invitation was last updated","x-oapi-codegen-extra-tags":{db:"updated_at",json:"updated_at"}},deleted_at:{type:"string",format:"date-time","x-go-type":"core.NullTime","x-go-type-import":{path:"github.com/meshery/schemas/models/core"},description:"Timestamp when the invitation was deleted, if applicable","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deleted_at"}}}}}}]},CreateAcademyCurriculaRequest:{type:"object",properties:{type:{description:"Type of the curricula","x-go-name":"Type","x-go-type":"ContentType","x-oapi-codegen-extra-tags":{json:"type"},type:"string",enum:["learning-path","challenge","certification"]},title:{type:"string",description:"Title of the curricula",example:"Introduction to Kubernetes","x-go-name":"Title","x-oapi-codegen-extra-tags":{json:"title"},maxLength:500},org_id:{type:"string",description:"Organization ID that owns this learning path",example:"layer5","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"}},workspace_id:{allOf:[{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}}],description:"ID of the workspace to which this Curricula belongs","x-oapi-codegen-extra-tags":{db:"workspace_id",json:"workspace_id"}},badge_id:{type:"string",format:"uuid",description:"ID of the badge to be awarded on completion of this curricula","x-go-type":"core.Uuid","x-go-type-import":{path:"github.com/meshery/schemas/models/core",name:"core"},"x-oapi-codegen-extra-tags":{db:"badge_id",json:"badge_id"}},team_id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-go-name":"TeamId","x-oapi-codegen-extra-tags":{json:"team_id",db:"team_id"}},access_expires_at:{allOf:[{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}],description:"Expiry time for curricula access","x-go-type":"*time.Time","x-oapi-codegen-extra-tags":{json:"access_expires_at",db:"access_expires_at"}},access_status:{description:"Current access status of the curricula","x-go-name":"AccessStatus","x-go-type":"invitationv1beta2.InvitationStatus","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta2/invitation",name:"invitationv1beta2"},"x-oapi-codegen-extra-tags":{json:"access_status",db:"access_status"},type:"string",enum:["enabled","disabled"]},metadata:{type:"object",description:"Additional metadata about the Curricula",additionalProperties:true,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata"},oneOf:[{"x-go-type":"CurriculaMetadata",type:"object",properties:{title:{type:"string",description:"Title of the learning path",example:"Mastering Kubernetes for Engineers",maxLength:500},description:{type:"string",description:"Short description of the curricula",example:"Learn how to configure your Kubernetes clusters and manage the lifecycle of your workloads",maxLength:5e3},detailedDescription:{type:"string",description:"Detailed description of the curricula",example:"This learning path covers everything from Kubernetes architecture to advanced deployment strategies, including hands-on labs and real-world scenarios.",maxLength:500},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},permalink:{type:"string",format:"uri",description:"Canonical URL for the learning path",example:"http://localhost:9876/academy/learning-paths/layer5/mastering-kubernetes-for-engineers/"},certificate:{"x-go-type":"Certificate",type:"object",required:["id","orgId","title","description","issuingAuthorities","issuedDate","recipientId","recipientName"],properties:{id:{type:"string",description:"Unique identifier for the certificate",example:"550e8400-e29b-41d4-a716-446655440000","x-go-name":"ID",maxLength:500,format:"uuid"},orgId:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},recipientId:{type:"string",description:"ID of the recipient (user) who received the certificate",example:"550e8400-e29b-41d4-a716-446655440001",maxLength:500,format:"uuid"},recipientName:{type:"string",description:"Name of the recipient (user) who received the certificate",example:"John Doe",maxLength:500},title:{type:"string",description:"Title of the certificate",example:"Kubernetes Expert Certification",maxLength:500},description:{type:"string",description:"Description of the certificate",example:"Awarded for successfully completing the Kubernetes Expert course",maxLength:5e3},issuingAuthorities:{type:"array",items:{"x-go-type":"CertificateIssuingAuthority",type:"object",required:["name","url"],properties:{name:{type:"string",description:"Name of the issuing authority",example:"Cloud Native Foundation",minLength:1,maxLength:255},role:{type:"string",description:"Role of the issuing authority",example:"COO",maxLength:500},signatureUrl:{type:"string",format:"uri",description:"URL to the signature image of the issuing authority should be a publicly accessible URL and transparent PNG or SVG format",example:"http://localhost:9876/signatures/cloud-native-foundation.png"}}},description:"List of issuing authorities for the certificate"},issuedDate:{type:"string",format:"date-time",description:"Date when the certificate was issued",example:"2023-10-01 12:00:00+00:00"},expirationDate:{type:"string",format:"date-time",description:"Date when the certificate expires. Dynamically calculated from issued_date and expires_in; not specified by instructors.",example:"2025-10-01 12:00:00+00:00"},expiresIn:{type:"integer",description:"Number of months after which the certificate expires",example:24,minimum:0}}},children:{type:"array",description:"List of children items in the top-level curricula",items:{"x-go-type":"ChildNode",type:"object",properties:{id:{type:"string",description:"Unique identifier for the course",example:"550e8400-e29b-41d4-a716-446655440002","x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},maxLength:500,format:"uuid"},title:{type:"string",description:"Title of the course",example:"Kubernetes Basics",maxLength:500},permalink:{type:"string",format:"uri",description:"URL to the course content",example:"http://localhost:9876/academy/learning-paths/layer5/intro-kubernetes-course/kubernetes/"},description:{type:"string",description:"Course description",example:"Learn the basics of Kubernetes",maxLength:5e3},weight:{type:"number",description:"A numeric value to determine the display order. A smaller number appears first. If not specified, items will be sorted alphabetically by title.",example:"eg 1 , 2",minimum:0},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},type:{"x-go-type":"ContentType",description:"Type of the content (e.g., learning-path, challenge, certification)",type:"string",enum:["learning-path","challenge","certification"]},children:{type:"array",description:"List of child nodes (sub-courses or modules)",items:{type:"object","x-go-type":"ChildNode"}}},required:["title","description","id","permalink"]}}},required:["title","description","permalink"]}]}},required:["type","title","org_id","workspace_id","team_id","access_status","metadata"]},AcademyCurriculaWithMetrics:{allOf:[{type:"object",additionalProperties:false,description:"AcademyCurricula entity schema.",required:["id","type","org_id","visibility","status","slug","created_at","updated_at","deleted_at","metadata","level"],properties:{id:{type:"string",description:"Id of the Curricula",example:"923458-3490394-934893","x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},maxLength:500,format:"uuid"},type:{"x-go-type":"ContentType","x-oapi-codegen-extra-tags":{db:"type"},type:"string",enum:["learning-path","challenge","certification"]},org_id:{type:"string",description:"Organization ID that owns this learning path",example:"layer5","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"}},visibility:{description:"Visibility of the Curricula","x-go-type":"Visibility","x-oapi-codegen-extra-tags":{db:"visibility",json:"visibility"},type:"string",enum:["public","private"]},status:{example:"ready",description:"Status of the Curricula","x-go-type":"Status","x-oapi-codegen-extra-tags":{db:"status",json:"status"},type:"string",enum:["ready","archived","not_ready"]},slug:{type:"string",description:"slug of the Curricula",example:"intro-kubernetes-course",maxLength:500},level:{description:"Level of the Curricula","x-go-type":"Level","x-oapi-codegen-extra-tags":{db:"level",json:"level"},type:"string",enum:["beginner","intermediate","advanced"]},badge_id:{type:"string",format:"uuid",description:"ID of the badge to be awarded on completion of this curricula","x-go-type":"core.Uuid","x-go-type-import":{path:"github.com/meshery/schemas/models/core",name:"core"},"x-oapi-codegen-extra-tags":{db:"badge_id",json:"badge_id"}},invite_id:{allOf:[{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}}],description:"ID of the invite associated with this Curricula","x-oapi-codegen-extra-tags":{db:"invite_id",json:"invite_id"}},workspace_id:{allOf:[{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}}],description:"ID of the workspace to which this Curricula belongs","x-oapi-codegen-extra-tags":{db:"workspace_id",json:"workspace_id"}},created_at:{allOf:[{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}],description:"When the Curricula item was created","x-oapi-codegen-extra-tags":{db:"created_at",json:"created_at"}},updated_at:{allOf:[{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}],description:"When the Curricula was last updated","x-go-type":"core.Time","x-oapi-codegen-extra-tags":{db:"updated_at",json:"updated_at"}},deleted_at:{allOf:[{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true}],"x-go-type":"core.NullTime","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deleted_at"}},metadata:{type:"object",description:"Additional metadata about the Curricula",additionalProperties:true,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata"},oneOf:[{"x-go-type":"CurriculaMetadata",type:"object",properties:{title:{type:"string",description:"Title of the learning path",example:"Mastering Kubernetes for Engineers",maxLength:500},description:{type:"string",description:"Short description of the curricula",example:"Learn how to configure your Kubernetes clusters and manage the lifecycle of your workloads",maxLength:5e3},detailedDescription:{type:"string",description:"Detailed description of the curricula",example:"This learning path covers everything from Kubernetes architecture to advanced deployment strategies, including hands-on labs and real-world scenarios.",maxLength:500},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},permalink:{type:"string",format:"uri",description:"Canonical URL for the learning path",example:"http://localhost:9876/academy/learning-paths/layer5/mastering-kubernetes-for-engineers/"},certificate:{"x-go-type":"Certificate",type:"object",required:["id","orgId","title","description","issuingAuthorities","issuedDate","recipientId","recipientName"],properties:{id:{type:"string",description:"Unique identifier for the certificate",example:"550e8400-e29b-41d4-a716-446655440000","x-go-name":"ID",maxLength:500,format:"uuid"},orgId:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},recipientId:{type:"string",description:"ID of the recipient (user) who received the certificate",example:"550e8400-e29b-41d4-a716-446655440001",maxLength:500,format:"uuid"},recipientName:{type:"string",description:"Name of the recipient (user) who received the certificate",example:"John Doe",maxLength:500},title:{type:"string",description:"Title of the certificate",example:"Kubernetes Expert Certification",maxLength:500},description:{type:"string",description:"Description of the certificate",example:"Awarded for successfully completing the Kubernetes Expert course",maxLength:5e3},issuingAuthorities:{type:"array",items:{"x-go-type":"CertificateIssuingAuthority",type:"object",required:["name","url"],properties:{name:{type:"string",description:"Name of the issuing authority",example:"Cloud Native Foundation",minLength:1,maxLength:255},role:{type:"string",description:"Role of the issuing authority",example:"COO",maxLength:500},signatureUrl:{type:"string",format:"uri",description:"URL to the signature image of the issuing authority should be a publicly accessible URL and transparent PNG or SVG format",example:"http://localhost:9876/signatures/cloud-native-foundation.png"}}},description:"List of issuing authorities for the certificate"},issuedDate:{type:"string",format:"date-time",description:"Date when the certificate was issued",example:"2023-10-01 12:00:00+00:00"},expirationDate:{type:"string",format:"date-time",description:"Date when the certificate expires. Dynamically calculated from issued_date and expires_in; not specified by instructors.",example:"2025-10-01 12:00:00+00:00"},expiresIn:{type:"integer",description:"Number of months after which the certificate expires",example:24,minimum:0}}},children:{type:"array",description:"List of children items in the top-level curricula",items:{"x-go-type":"ChildNode",type:"object",properties:{id:{type:"string",description:"Unique identifier for the course",example:"550e8400-e29b-41d4-a716-446655440002","x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},maxLength:500,format:"uuid"},title:{type:"string",description:"Title of the course",example:"Kubernetes Basics",maxLength:500},permalink:{type:"string",format:"uri",description:"URL to the course content",example:"http://localhost:9876/academy/learning-paths/layer5/intro-kubernetes-course/kubernetes/"},description:{type:"string",description:"Course description",example:"Learn the basics of Kubernetes",maxLength:5e3},weight:{type:"number",description:"A numeric value to determine the display order. A smaller number appears first. If not specified, items will be sorted alphabetically by title.",example:"eg 1 , 2",minimum:0},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},type:{"x-go-type":"ContentType",description:"Type of the content (e.g., learning-path, challenge, certification)",type:"string",enum:["learning-path","challenge","certification"]},children:{type:"array",description:"List of child nodes (sub-courses or modules)",items:{type:"object","x-go-type":"ChildNode"}}},required:["title","description","id","permalink"]}}},required:["title","description","permalink"]}]}}},{type:"object",required:["registration_count"],properties:{registration_count:{type:"number",description:"Number of registrations associated with this curriculum.",minimum:0,"x-oapi-codegen-extra-tags":{db:"registration_count,omitempty",json:"registration_count,omitempty"}}}}]},AcademyCurriculaListResponse:{type:"object",properties:{total:{type:"integer",description:"Total number of Curricula",example:7,minimum:0},data:{type:"array",items:{"x-go-type":"AcademyCurricula",type:"object",additionalProperties:false,description:"AcademyCurricula entity schema.",required:["id","type","org_id","visibility","status","slug","created_at","updated_at","deleted_at","metadata","level"],properties:{id:{type:"string",description:"Id of the Curricula",example:"923458-3490394-934893","x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},maxLength:500,format:"uuid"},type:{"x-go-type":"ContentType","x-oapi-codegen-extra-tags":{db:"type"},type:"string",enum:["learning-path","challenge","certification"]},org_id:{type:"string",description:"Organization ID that owns this learning path",example:"layer5","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"}},visibility:{description:"Visibility of the Curricula","x-go-type":"Visibility","x-oapi-codegen-extra-tags":{db:"visibility",json:"visibility"},type:"string",enum:["public","private"]},status:{example:"ready",description:"Status of the Curricula","x-go-type":"Status","x-oapi-codegen-extra-tags":{db:"status",json:"status"},type:"string",enum:["ready","archived","not_ready"]},slug:{type:"string",description:"slug of the Curricula",example:"intro-kubernetes-course",maxLength:500},level:{description:"Level of the Curricula","x-go-type":"Level","x-oapi-codegen-extra-tags":{db:"level",json:"level"},type:"string",enum:["beginner","intermediate","advanced"]},badge_id:{type:"string",format:"uuid",description:"ID of the badge to be awarded on completion of this curricula","x-go-type":"core.Uuid","x-go-type-import":{path:"github.com/meshery/schemas/models/core",name:"core"},"x-oapi-codegen-extra-tags":{db:"badge_id",json:"badge_id"}},invite_id:{allOf:[{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}}],description:"ID of the invite associated with this Curricula","x-oapi-codegen-extra-tags":{db:"invite_id",json:"invite_id"}},workspace_id:{allOf:[{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}}],description:"ID of the workspace to which this Curricula belongs","x-oapi-codegen-extra-tags":{db:"workspace_id",json:"workspace_id"}},created_at:{allOf:[{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}],description:"When the Curricula item was created","x-oapi-codegen-extra-tags":{db:"created_at",json:"created_at"}},updated_at:{allOf:[{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}],description:"When the Curricula was last updated","x-go-type":"core.Time","x-oapi-codegen-extra-tags":{db:"updated_at",json:"updated_at"}},deleted_at:{allOf:[{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true}],"x-go-type":"core.NullTime","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deleted_at"}},metadata:{type:"object",description:"Additional metadata about the Curricula",additionalProperties:true,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata"},oneOf:[{"x-go-type":"CurriculaMetadata",type:"object",properties:{title:{type:"string",description:"Title of the learning path",example:"Mastering Kubernetes for Engineers",maxLength:500},description:{type:"string",description:"Short description of the curricula",example:"Learn how to configure your Kubernetes clusters and manage the lifecycle of your workloads",maxLength:5e3},detailedDescription:{type:"string",description:"Detailed description of the curricula",example:"This learning path covers everything from Kubernetes architecture to advanced deployment strategies, including hands-on labs and real-world scenarios.",maxLength:500},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},permalink:{type:"string",format:"uri",description:"Canonical URL for the learning path",example:"http://localhost:9876/academy/learning-paths/layer5/mastering-kubernetes-for-engineers/"},certificate:{"x-go-type":"Certificate",type:"object",required:["id","orgId","title","description","issuingAuthorities","issuedDate","recipientId","recipientName"],properties:{id:{type:"string",description:"Unique identifier for the certificate",example:"550e8400-e29b-41d4-a716-446655440000","x-go-name":"ID",maxLength:500,format:"uuid"},orgId:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},recipientId:{type:"string",description:"ID of the recipient (user) who received the certificate",example:"550e8400-e29b-41d4-a716-446655440001",maxLength:500,format:"uuid"},recipientName:{type:"string",description:"Name of the recipient (user) who received the certificate",example:"John Doe",maxLength:500},title:{type:"string",description:"Title of the certificate",example:"Kubernetes Expert Certification",maxLength:500},description:{type:"string",description:"Description of the certificate",example:"Awarded for successfully completing the Kubernetes Expert course",maxLength:5e3},issuingAuthorities:{type:"array",items:{"x-go-type":"CertificateIssuingAuthority",type:"object",required:["name","url"],properties:{name:{type:"string",description:"Name of the issuing authority",example:"Cloud Native Foundation",minLength:1,maxLength:255},role:{type:"string",description:"Role of the issuing authority",example:"COO",maxLength:500},signatureUrl:{type:"string",format:"uri",description:"URL to the signature image of the issuing authority should be a publicly accessible URL and transparent PNG or SVG format",example:"http://localhost:9876/signatures/cloud-native-foundation.png"}}},description:"List of issuing authorities for the certificate"},issuedDate:{type:"string",format:"date-time",description:"Date when the certificate was issued",example:"2023-10-01 12:00:00+00:00"},expirationDate:{type:"string",format:"date-time",description:"Date when the certificate expires. Dynamically calculated from issued_date and expires_in; not specified by instructors.",example:"2025-10-01 12:00:00+00:00"},expiresIn:{type:"integer",description:"Number of months after which the certificate expires",example:24,minimum:0}}},children:{type:"array",description:"List of children items in the top-level curricula",items:{"x-go-type":"ChildNode",type:"object",properties:{id:{type:"string",description:"Unique identifier for the course",example:"550e8400-e29b-41d4-a716-446655440002","x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},maxLength:500,format:"uuid"},title:{type:"string",description:"Title of the course",example:"Kubernetes Basics",maxLength:500},permalink:{type:"string",format:"uri",description:"URL to the course content",example:"http://localhost:9876/academy/learning-paths/layer5/intro-kubernetes-course/kubernetes/"},description:{type:"string",description:"Course description",example:"Learn the basics of Kubernetes",maxLength:5e3},weight:{type:"number",description:"A numeric value to determine the display order. A smaller number appears first. If not specified, items will be sorted alphabetically by title.",example:"eg 1 , 2",minimum:0},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},type:{"x-go-type":"ContentType",description:"Type of the content (e.g., learning-path, challenge, certification)",type:"string",enum:["learning-path","challenge","certification"]},children:{type:"array",description:"List of child nodes (sub-courses or modules)",items:{type:"object","x-go-type":"ChildNode"}}},required:["title","description","id","permalink"]}}},required:["title","description","permalink"]}]}}},description:"The data of the academycurriculalistresponse."}},required:["total","data"]},AcademyCurriculaWithMetricsListResponse:{type:"object",properties:{total:{type:"integer",description:"Total number of Curricula",example:7,minimum:0},data:{type:"array",items:{"x-go-type":"AcademyCurriculaWithMetrics","x-go-type-skip-optional-pointer":true,allOf:[{type:"object",additionalProperties:false,description:"AcademyCurricula entity schema.",required:["id","type","org_id","visibility","status","slug","created_at","updated_at","deleted_at","metadata","level"],properties:{id:{type:"string",description:"Id of the Curricula",example:"923458-3490394-934893","x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},maxLength:500,format:"uuid"},type:{"x-go-type":"ContentType","x-oapi-codegen-extra-tags":{db:"type"},type:"string",enum:["learning-path","challenge","certification"]},org_id:{type:"string",description:"Organization ID that owns this learning path",example:"layer5","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"}},visibility:{description:"Visibility of the Curricula","x-go-type":"Visibility","x-oapi-codegen-extra-tags":{db:"visibility",json:"visibility"},type:"string",enum:["public","private"]},status:{example:"ready",description:"Status of the Curricula","x-go-type":"Status","x-oapi-codegen-extra-tags":{db:"status",json:"status"},type:"string",enum:["ready","archived","not_ready"]},slug:{type:"string",description:"slug of the Curricula",example:"intro-kubernetes-course",maxLength:500},level:{description:"Level of the Curricula","x-go-type":"Level","x-oapi-codegen-extra-tags":{db:"level",json:"level"},type:"string",enum:["beginner","intermediate","advanced"]},badge_id:{type:"string",format:"uuid",description:"ID of the badge to be awarded on completion of this curricula","x-go-type":"core.Uuid","x-go-type-import":{path:"github.com/meshery/schemas/models/core",name:"core"},"x-oapi-codegen-extra-tags":{db:"badge_id",json:"badge_id"}},invite_id:{allOf:[{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}}],description:"ID of the invite associated with this Curricula","x-oapi-codegen-extra-tags":{db:"invite_id",json:"invite_id"}},workspace_id:{allOf:[{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}}],description:"ID of the workspace to which this Curricula belongs","x-oapi-codegen-extra-tags":{db:"workspace_id",json:"workspace_id"}},created_at:{allOf:[{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}],description:"When the Curricula item was created","x-oapi-codegen-extra-tags":{db:"created_at",json:"created_at"}},updated_at:{allOf:[{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}],description:"When the Curricula was last updated","x-go-type":"core.Time","x-oapi-codegen-extra-tags":{db:"updated_at",json:"updated_at"}},deleted_at:{allOf:[{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true}],"x-go-type":"core.NullTime","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deleted_at"}},metadata:{type:"object",description:"Additional metadata about the Curricula",additionalProperties:true,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata"},oneOf:[{"x-go-type":"CurriculaMetadata",type:"object",properties:{title:{type:"string",description:"Title of the learning path",example:"Mastering Kubernetes for Engineers",maxLength:500},description:{type:"string",description:"Short description of the curricula",example:"Learn how to configure your Kubernetes clusters and manage the lifecycle of your workloads",maxLength:5e3},detailedDescription:{type:"string",description:"Detailed description of the curricula",example:"This learning path covers everything from Kubernetes architecture to advanced deployment strategies, including hands-on labs and real-world scenarios.",maxLength:500},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},permalink:{type:"string",format:"uri",description:"Canonical URL for the learning path",example:"http://localhost:9876/academy/learning-paths/layer5/mastering-kubernetes-for-engineers/"},certificate:{"x-go-type":"Certificate",type:"object",required:["id","orgId","title","description","issuingAuthorities","issuedDate","recipientId","recipientName"],properties:{id:{type:"string",description:"Unique identifier for the certificate",example:"550e8400-e29b-41d4-a716-446655440000","x-go-name":"ID",maxLength:500,format:"uuid"},orgId:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},recipientId:{type:"string",description:"ID of the recipient (user) who received the certificate",example:"550e8400-e29b-41d4-a716-446655440001",maxLength:500,format:"uuid"},recipientName:{type:"string",description:"Name of the recipient (user) who received the certificate",example:"John Doe",maxLength:500},title:{type:"string",description:"Title of the certificate",example:"Kubernetes Expert Certification",maxLength:500},description:{type:"string",description:"Description of the certificate",example:"Awarded for successfully completing the Kubernetes Expert course",maxLength:5e3},issuingAuthorities:{type:"array",items:{"x-go-type":"CertificateIssuingAuthority",type:"object",required:["name","url"],properties:{name:{type:"string",description:"Name of the issuing authority",example:"Cloud Native Foundation",minLength:1,maxLength:255},role:{type:"string",description:"Role of the issuing authority",example:"COO",maxLength:500},signatureUrl:{type:"string",format:"uri",description:"URL to the signature image of the issuing authority should be a publicly accessible URL and transparent PNG or SVG format",example:"http://localhost:9876/signatures/cloud-native-foundation.png"}}},description:"List of issuing authorities for the certificate"},issuedDate:{type:"string",format:"date-time",description:"Date when the certificate was issued",example:"2023-10-01 12:00:00+00:00"},expirationDate:{type:"string",format:"date-time",description:"Date when the certificate expires. Dynamically calculated from issued_date and expires_in; not specified by instructors.",example:"2025-10-01 12:00:00+00:00"},expiresIn:{type:"integer",description:"Number of months after which the certificate expires",example:24,minimum:0}}},children:{type:"array",description:"List of children items in the top-level curricula",items:{"x-go-type":"ChildNode",type:"object",properties:{id:{type:"string",description:"Unique identifier for the course",example:"550e8400-e29b-41d4-a716-446655440002","x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},maxLength:500,format:"uuid"},title:{type:"string",description:"Title of the course",example:"Kubernetes Basics",maxLength:500},permalink:{type:"string",format:"uri",description:"URL to the course content",example:"http://localhost:9876/academy/learning-paths/layer5/intro-kubernetes-course/kubernetes/"},description:{type:"string",description:"Course description",example:"Learn the basics of Kubernetes",maxLength:5e3},weight:{type:"number",description:"A numeric value to determine the display order. A smaller number appears first. If not specified, items will be sorted alphabetically by title.",example:"eg 1 , 2",minimum:0},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},type:{"x-go-type":"ContentType",description:"Type of the content (e.g., learning-path, challenge, certification)",type:"string",enum:["learning-path","challenge","certification"]},children:{type:"array",description:"List of child nodes (sub-courses or modules)",items:{type:"object","x-go-type":"ChildNode"}}},required:["title","description","id","permalink"]}}},required:["title","description","permalink"]}]}}},{type:"object",required:["registration_count"],properties:{registration_count:{type:"number",description:"Number of registrations associated with this curriculum.",minimum:0,"x-oapi-codegen-extra-tags":{db:"registration_count,omitempty",json:"registration_count,omitempty"}}}}]},description:"The data of the academycurriculawithmetricslistresponse."}},required:["total","data"]},ChallengeMetadata:{"x-go-type":"CurriculaMetadata",type:"object",properties:{title:{type:"string",description:"Title of the learning path",example:"Mastering Kubernetes for Engineers",maxLength:500},description:{type:"string",description:"Short description of the curricula",example:"Learn how to configure your Kubernetes clusters and manage the lifecycle of your workloads",maxLength:5e3},detailedDescription:{type:"string",description:"Detailed description of the curricula",example:"This learning path covers everything from Kubernetes architecture to advanced deployment strategies, including hands-on labs and real-world scenarios.",maxLength:500},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},permalink:{type:"string",format:"uri",description:"Canonical URL for the learning path",example:"http://localhost:9876/academy/learning-paths/layer5/mastering-kubernetes-for-engineers/"},certificate:{"x-go-type":"Certificate",type:"object",required:["id","orgId","title","description","issuingAuthorities","issuedDate","recipientId","recipientName"],properties:{id:{type:"string",description:"Unique identifier for the certificate",example:"550e8400-e29b-41d4-a716-446655440000","x-go-name":"ID",maxLength:500,format:"uuid"},orgId:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},recipientId:{type:"string",description:"ID of the recipient (user) who received the certificate",example:"550e8400-e29b-41d4-a716-446655440001",maxLength:500,format:"uuid"},recipientName:{type:"string",description:"Name of the recipient (user) who received the certificate",example:"John Doe",maxLength:500},title:{type:"string",description:"Title of the certificate",example:"Kubernetes Expert Certification",maxLength:500},description:{type:"string",description:"Description of the certificate",example:"Awarded for successfully completing the Kubernetes Expert course",maxLength:5e3},issuingAuthorities:{type:"array",items:{"x-go-type":"CertificateIssuingAuthority",type:"object",required:["name","url"],properties:{name:{type:"string",description:"Name of the issuing authority",example:"Cloud Native Foundation",minLength:1,maxLength:255},role:{type:"string",description:"Role of the issuing authority",example:"COO",maxLength:500},signatureUrl:{type:"string",format:"uri",description:"URL to the signature image of the issuing authority should be a publicly accessible URL and transparent PNG or SVG format",example:"http://localhost:9876/signatures/cloud-native-foundation.png"}}},description:"List of issuing authorities for the certificate"},issuedDate:{type:"string",format:"date-time",description:"Date when the certificate was issued",example:"2023-10-01 12:00:00+00:00"},expirationDate:{type:"string",format:"date-time",description:"Date when the certificate expires. Dynamically calculated from issued_date and expires_in; not specified by instructors.",example:"2025-10-01 12:00:00+00:00"},expiresIn:{type:"integer",description:"Number of months after which the certificate expires",example:24,minimum:0}}},children:{type:"array",description:"List of children items in the top-level curricula",items:{"x-go-type":"ChildNode",type:"object",properties:{id:{type:"string",description:"Unique identifier for the course",example:"550e8400-e29b-41d4-a716-446655440002","x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},maxLength:500,format:"uuid"},title:{type:"string",description:"Title of the course",example:"Kubernetes Basics",maxLength:500},permalink:{type:"string",format:"uri",description:"URL to the course content",example:"http://localhost:9876/academy/learning-paths/layer5/intro-kubernetes-course/kubernetes/"},description:{type:"string",description:"Course description",example:"Learn the basics of Kubernetes",maxLength:5e3},weight:{type:"number",description:"A numeric value to determine the display order. A smaller number appears first. If not specified, items will be sorted alphabetically by title.",example:"eg 1 , 2",minimum:0},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},type:{"x-go-type":"ContentType",description:"Type of the content (e.g., learning-path, challenge, certification)",type:"string",enum:["learning-path","challenge","certification"]},children:{type:"array",description:"List of child nodes (sub-courses or modules)",items:{type:"object","x-go-type":"ChildNode"}}},required:["title","description","id","permalink"]}}},required:["title","description","permalink"]},LearningPathMetadata:{"x-go-type":"CurriculaMetadata",type:"object",properties:{title:{type:"string",description:"Title of the learning path",example:"Mastering Kubernetes for Engineers",maxLength:500},description:{type:"string",description:"Short description of the curricula",example:"Learn how to configure your Kubernetes clusters and manage the lifecycle of your workloads",maxLength:5e3},detailedDescription:{type:"string",description:"Detailed description of the curricula",example:"This learning path covers everything from Kubernetes architecture to advanced deployment strategies, including hands-on labs and real-world scenarios.",maxLength:500},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},permalink:{type:"string",format:"uri",description:"Canonical URL for the learning path",example:"http://localhost:9876/academy/learning-paths/layer5/mastering-kubernetes-for-engineers/"},certificate:{"x-go-type":"Certificate",type:"object",required:["id","orgId","title","description","issuingAuthorities","issuedDate","recipientId","recipientName"],properties:{id:{type:"string",description:"Unique identifier for the certificate",example:"550e8400-e29b-41d4-a716-446655440000","x-go-name":"ID",maxLength:500,format:"uuid"},orgId:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},recipientId:{type:"string",description:"ID of the recipient (user) who received the certificate",example:"550e8400-e29b-41d4-a716-446655440001",maxLength:500,format:"uuid"},recipientName:{type:"string",description:"Name of the recipient (user) who received the certificate",example:"John Doe",maxLength:500},title:{type:"string",description:"Title of the certificate",example:"Kubernetes Expert Certification",maxLength:500},description:{type:"string",description:"Description of the certificate",example:"Awarded for successfully completing the Kubernetes Expert course",maxLength:5e3},issuingAuthorities:{type:"array",items:{"x-go-type":"CertificateIssuingAuthority",type:"object",required:["name","url"],properties:{name:{type:"string",description:"Name of the issuing authority",example:"Cloud Native Foundation",minLength:1,maxLength:255},role:{type:"string",description:"Role of the issuing authority",example:"COO",maxLength:500},signatureUrl:{type:"string",format:"uri",description:"URL to the signature image of the issuing authority should be a publicly accessible URL and transparent PNG or SVG format",example:"http://localhost:9876/signatures/cloud-native-foundation.png"}}},description:"List of issuing authorities for the certificate"},issuedDate:{type:"string",format:"date-time",description:"Date when the certificate was issued",example:"2023-10-01 12:00:00+00:00"},expirationDate:{type:"string",format:"date-time",description:"Date when the certificate expires. Dynamically calculated from issued_date and expires_in; not specified by instructors.",example:"2025-10-01 12:00:00+00:00"},expiresIn:{type:"integer",description:"Number of months after which the certificate expires",example:24,minimum:0}}},children:{type:"array",description:"List of children items in the top-level curricula",items:{"x-go-type":"ChildNode",type:"object",properties:{id:{type:"string",description:"Unique identifier for the course",example:"550e8400-e29b-41d4-a716-446655440002","x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},maxLength:500,format:"uuid"},title:{type:"string",description:"Title of the course",example:"Kubernetes Basics",maxLength:500},permalink:{type:"string",format:"uri",description:"URL to the course content",example:"http://localhost:9876/academy/learning-paths/layer5/intro-kubernetes-course/kubernetes/"},description:{type:"string",description:"Course description",example:"Learn the basics of Kubernetes",maxLength:5e3},weight:{type:"number",description:"A numeric value to determine the display order. A smaller number appears first. If not specified, items will be sorted alphabetically by title.",example:"eg 1 , 2",minimum:0},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},type:{"x-go-type":"ContentType",description:"Type of the content (e.g., learning-path, challenge, certification)",type:"string",enum:["learning-path","challenge","certification"]},children:{type:"array",description:"List of child nodes (sub-courses or modules)",items:{type:"object","x-go-type":"ChildNode"}}},required:["title","description","id","permalink"]}}},required:["title","description","permalink"]},CertificateIssuingAuthority:{type:"object",required:["name","url"],properties:{name:{type:"string",description:"Name of the issuing authority",example:"Cloud Native Foundation",minLength:1,maxLength:255},role:{type:"string",description:"Role of the issuing authority",example:"COO",maxLength:500},signatureUrl:{type:"string",format:"uri",description:"URL to the signature image of the issuing authority should be a publicly accessible URL and transparent PNG or SVG format",example:"http://localhost:9876/signatures/cloud-native-foundation.png"}}},Certificate:{type:"object",required:["id","orgId","title","description","issuingAuthorities","issuedDate","recipientId","recipientName"],properties:{id:{type:"string",description:"Unique identifier for the certificate",example:"550e8400-e29b-41d4-a716-446655440000","x-go-name":"ID",maxLength:500,format:"uuid"},orgId:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},recipientId:{type:"string",description:"ID of the recipient (user) who received the certificate",example:"550e8400-e29b-41d4-a716-446655440001",maxLength:500,format:"uuid"},recipientName:{type:"string",description:"Name of the recipient (user) who received the certificate",example:"John Doe",maxLength:500},title:{type:"string",description:"Title of the certificate",example:"Kubernetes Expert Certification",maxLength:500},description:{type:"string",description:"Description of the certificate",example:"Awarded for successfully completing the Kubernetes Expert course",maxLength:5e3},issuingAuthorities:{type:"array",items:{"x-go-type":"CertificateIssuingAuthority",type:"object",required:["name","url"],properties:{name:{type:"string",description:"Name of the issuing authority",example:"Cloud Native Foundation",minLength:1,maxLength:255},role:{type:"string",description:"Role of the issuing authority",example:"COO",maxLength:500},signatureUrl:{type:"string",format:"uri",description:"URL to the signature image of the issuing authority should be a publicly accessible URL and transparent PNG or SVG format",example:"http://localhost:9876/signatures/cloud-native-foundation.png"}}},description:"List of issuing authorities for the certificate"},issuedDate:{type:"string",format:"date-time",description:"Date when the certificate was issued",example:"2023-10-01 12:00:00+00:00"},expirationDate:{type:"string",format:"date-time",description:"Date when the certificate expires. Dynamically calculated from issued_date and expires_in; not specified by instructors.",example:"2025-10-01 12:00:00+00:00"},expiresIn:{type:"integer",description:"Number of months after which the certificate expires",example:24,minimum:0}}},CurriculaMetadata:{type:"object",properties:{title:{type:"string",description:"Title of the learning path",example:"Mastering Kubernetes for Engineers",maxLength:500},description:{type:"string",description:"Short description of the curricula",example:"Learn how to configure your Kubernetes clusters and manage the lifecycle of your workloads",maxLength:5e3},detailedDescription:{type:"string",description:"Detailed description of the curricula",example:"This learning path covers everything from Kubernetes architecture to advanced deployment strategies, including hands-on labs and real-world scenarios.",maxLength:500},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},permalink:{type:"string",format:"uri",description:"Canonical URL for the learning path",example:"http://localhost:9876/academy/learning-paths/layer5/mastering-kubernetes-for-engineers/"},certificate:{"x-go-type":"Certificate",type:"object",required:["id","orgId","title","description","issuingAuthorities","issuedDate","recipientId","recipientName"],properties:{id:{type:"string",description:"Unique identifier for the certificate",example:"550e8400-e29b-41d4-a716-446655440000","x-go-name":"ID",maxLength:500,format:"uuid"},orgId:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},recipientId:{type:"string",description:"ID of the recipient (user) who received the certificate",example:"550e8400-e29b-41d4-a716-446655440001",maxLength:500,format:"uuid"},recipientName:{type:"string",description:"Name of the recipient (user) who received the certificate",example:"John Doe",maxLength:500},title:{type:"string",description:"Title of the certificate",example:"Kubernetes Expert Certification",maxLength:500},description:{type:"string",description:"Description of the certificate",example:"Awarded for successfully completing the Kubernetes Expert course",maxLength:5e3},issuingAuthorities:{type:"array",items:{"x-go-type":"CertificateIssuingAuthority",type:"object",required:["name","url"],properties:{name:{type:"string",description:"Name of the issuing authority",example:"Cloud Native Foundation",minLength:1,maxLength:255},role:{type:"string",description:"Role of the issuing authority",example:"COO",maxLength:500},signatureUrl:{type:"string",format:"uri",description:"URL to the signature image of the issuing authority should be a publicly accessible URL and transparent PNG or SVG format",example:"http://localhost:9876/signatures/cloud-native-foundation.png"}}},description:"List of issuing authorities for the certificate"},issuedDate:{type:"string",format:"date-time",description:"Date when the certificate was issued",example:"2023-10-01 12:00:00+00:00"},expirationDate:{type:"string",format:"date-time",description:"Date when the certificate expires. Dynamically calculated from issued_date and expires_in; not specified by instructors.",example:"2025-10-01 12:00:00+00:00"},expiresIn:{type:"integer",description:"Number of months after which the certificate expires",example:24,minimum:0}}},children:{type:"array",description:"List of children items in the top-level curricula",items:{"x-go-type":"ChildNode",type:"object",properties:{id:{type:"string",description:"Unique identifier for the course",example:"550e8400-e29b-41d4-a716-446655440002","x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},maxLength:500,format:"uuid"},title:{type:"string",description:"Title of the course",example:"Kubernetes Basics",maxLength:500},permalink:{type:"string",format:"uri",description:"URL to the course content",example:"http://localhost:9876/academy/learning-paths/layer5/intro-kubernetes-course/kubernetes/"},description:{type:"string",description:"Course description",example:"Learn the basics of Kubernetes",maxLength:5e3},weight:{type:"number",description:"A numeric value to determine the display order. A smaller number appears first. If not specified, items will be sorted alphabetically by title.",example:"eg 1 , 2",minimum:0},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},type:{"x-go-type":"ContentType",description:"Type of the content (e.g., learning-path, challenge, certification)",type:"string",enum:["learning-path","challenge","certification"]},children:{type:"array",description:"List of child nodes (sub-courses or modules)",items:{type:"object","x-go-type":"ChildNode"}}},required:["title","description","id","permalink"]}}},required:["title","description","permalink"]},AcademyRegistrationStatus:{type:"string",enum:["registered","completed","failed","withdrawn"],description:"Status of the user's course registration","x-oapi-codegen-extra-tags":{db:"status"}},AcademyRegistration:{type:"object",required:["id","org_id","user_id","status","created_at","updated_at","content_id","certificate","metadata"],properties:{id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"}},org_id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"org_id"}},content_id:{type:"string",description:"ID of the course content","x-oapi-codegen-extra-tags":{db:"content_id"},maxLength:500,format:"uuid"},user_id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"user_id"}},status:{"x-go-type":"AcademyRegistrationStatus",description:"Status of the user's course registration","x-oapi-codegen-extra-tags":{db:"status"},type:"string",enum:["registered","completed","failed","withdrawn"]},updated_at:{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true,description:"When the registration was updated","x-oapi-codegen-extra-tags":{db:"updated_at"}},created_at:{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true,description:"When the registration was created","x-oapi-codegen-extra-tags":{db:"created_at"}},deleted_at:{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true},certificate:{"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,description:"Issued certificate for completing the curricula under registration","x-oapi-codegen-extra-tags":{db:"certificate"},type:"object",required:["id","orgId","title","description","issuingAuthorities","issuedDate","recipientId","recipientName"],properties:{id:{type:"string",description:"Unique identifier for the certificate",example:"550e8400-e29b-41d4-a716-446655440000","x-go-name":"ID",maxLength:500,format:"uuid"},orgId:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},recipientId:{type:"string",description:"ID of the recipient (user) who received the certificate",example:"550e8400-e29b-41d4-a716-446655440001",maxLength:500,format:"uuid"},recipientName:{type:"string",description:"Name of the recipient (user) who received the certificate",example:"John Doe",maxLength:500},title:{type:"string",description:"Title of the certificate",example:"Kubernetes Expert Certification",maxLength:500},description:{type:"string",description:"Description of the certificate",example:"Awarded for successfully completing the Kubernetes Expert course",maxLength:5e3},issuingAuthorities:{type:"array",items:{"x-go-type":"CertificateIssuingAuthority",type:"object",required:["name","url"],properties:{name:{type:"string",description:"Name of the issuing authority",example:"Cloud Native Foundation",minLength:1,maxLength:255},role:{type:"string",description:"Role of the issuing authority",example:"COO",maxLength:500},signatureUrl:{type:"string",format:"uri",description:"URL to the signature image of the issuing authority should be a publicly accessible URL and transparent PNG or SVG format",example:"http://localhost:9876/signatures/cloud-native-foundation.png"}}},description:"List of issuing authorities for the certificate"},issuedDate:{type:"string",format:"date-time",description:"Date when the certificate was issued",example:"2023-10-01 12:00:00+00:00"},expirationDate:{type:"string",format:"date-time",description:"Date when the certificate expires. Dynamically calculated from issued_date and expires_in; not specified by instructors.",example:"2025-10-01 12:00:00+00:00"},expiresIn:{type:"integer",description:"Number of months after which the certificate expires",example:24,minimum:0}}},metadata:{type:"object",description:"Additional metadata about the registration",additionalProperties:true,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"metadata"}}}},AllTestSubmissionsForCurricula:{type:"object",description:"Test submissions made by the user (map of test IDs to Submissions)",additionalProperties:{type:"array",description:"Test submissions made by the user (array of QuizEvaluationResult)",items:{type:"object",required:["score","passed","totalMarks","passPercentage","quiz","attemptedAt","attempts","percentageScored","correctSubmissions"],properties:{score:{type:"integer",description:"The score of the quizevaluationresult.",minimum:0},passed:{type:"boolean",description:"The passed of the quizevaluationresult."},percentageScored:{type:"number",format:"float",description:"The percentage scored of the quizevaluationresult.",minimum:0},totalMarks:{type:"integer",description:"The total marks of the quizevaluationresult.",minimum:0},passPercentage:{type:"number",format:"float",description:"The pass percentage of the quizevaluationresult.",minimum:0},correctSubmissions:{type:"object",additionalProperties:{type:"boolean"},description:"The correct submissions of the quizevaluationresult."},quiz:{"x-go-type":"Quiz","x-generate-db-helpers":true,type:"object",required:["id","title","org_id","description","slug","relPermalink","permalink","type","section","layout","date","final","lastmod","draft","filePath","passPercentage","timeLimit","maxAttempts","questions","totalQuestions","totalQuestionsInBank","totalQuestionSets","totalMarks","prerequisites","nextPage"],properties:{id:{type:"string","x-go-name":"ID","x-oapi-codegen-extra-tags":{json:"id"},description:"Quiz ID.",maxLength:500,format:"uuid"},org_id:{type:"string",description:"Organization ID that owns this quiz",example:"layer5","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"},maxLength:500,format:"uuid"},final:{type:"boolean",description:"Indicates if the quiz is final . i.e this quiz will used to evaluate the completion of parent section eg course , module , learning path",example:true},title:{type:"string",description:"The title of the quiz.",maxLength:500},description:{type:"string",description:"Description of the quiz.",maxLength:5e3},slug:{type:"string",description:"The slug of the quiz.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the quiz.",maxLength:500},permalink:{type:"string",description:"The permalink of the quiz.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255},section:{type:"string",description:"The section of the quiz.",maxLength:500},layout:{type:"string",description:"The layout of the quiz.",maxLength:500},date:{type:"string",format:"date",description:"The date of the quiz."},lastmod:{type:"string",format:"date",description:"The lastmod of the quiz."},draft:{type:"boolean",description:"The draft of the quiz."},filePath:{type:"string",description:"The file path of the quiz.",maxLength:500},passPercentage:{type:"number",format:"float",description:"The pass percentage of the quiz.",minimum:0},timeLimit:{description:"Time limit for the quiz in minutes. A value of 0 indicates no time limit.",type:"integer",minimum:0},maxAttempts:{description:"Maximum number of attempts allowed for the quiz. A value of 0 indicates unlimited attempts.",type:"integer",minimum:0},questions:{type:"array",items:{"x-go-type":"Question",type:"object",required:["id","text","type","marks","options","correctAnswer"],properties:{id:{type:"string",description:"Question ID.",maxLength:500,format:"uuid"},text:{type:"string",description:"The text of the question.",maxLength:500},type:{"x-go-type":"QuestionType",type:"string","x-enum-varnames":["QuestionTypeMultipleAnswers","QuestionTypeSingleAnswer","QuestionTypeShortAnswer","QuestionTypeEssay"],enum:["multiple-answers","single-answer","short-answer","essay"]},marks:{type:"integer",description:"The marks of the question.",minimum:0},multipleAnswers:{type:"boolean",description:"The multiple answers of the question."},options:{type:"array",items:{"x-go-type":"QuestionOption",type:"object",required:["id","text","isCorrect"],properties:{id:{type:"string",description:"QuestionOption ID.",maxLength:500,format:"uuid"},text:{type:"string",description:"The text of the questionoption.",maxLength:500},isCorrect:{type:"boolean",description:"The is correct of the questionoption."}}},description:"The options of the question."},correctAnswer:{type:"string",description:"The correct answer of the question.",maxLength:500}}},description:"The questions of the quiz."},totalQuestions:{type:"integer",description:"The total questions of the quiz.",minimum:0},totalQuestionsInBank:{type:"integer",description:"The total questions in bank of the quiz.",minimum:0},totalQuestionSets:{type:"integer",description:"The total question sets of the quiz.",minimum:0},totalMarks:{type:"integer",description:"The total marks of the quiz.",minimum:0},prerequisites:{type:"array",items:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}},description:"The prerequisites of the quiz."},parent:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}},nextPage:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}}}},attemptedAt:{type:"string",format:"date-time",description:"The attempted at of the quizevaluationresult."},attempts:{type:"integer",description:"The attempts of the quizevaluationresult.",minimum:0}}},"x-go-type":"TestSubmissions"}},TestSubmissions:{type:"array",description:"Test submissions made by the user (array of QuizEvaluationResult)",items:{type:"object",required:["score","passed","totalMarks","passPercentage","quiz","attemptedAt","attempts","percentageScored","correctSubmissions"],properties:{score:{type:"integer",description:"The score of the quizevaluationresult.",minimum:0},passed:{type:"boolean",description:"The passed of the quizevaluationresult."},percentageScored:{type:"number",format:"float",description:"The percentage scored of the quizevaluationresult.",minimum:0},totalMarks:{type:"integer",description:"The total marks of the quizevaluationresult.",minimum:0},passPercentage:{type:"number",format:"float",description:"The pass percentage of the quizevaluationresult.",minimum:0},correctSubmissions:{type:"object",additionalProperties:{type:"boolean"},description:"The correct submissions of the quizevaluationresult."},quiz:{"x-go-type":"Quiz","x-generate-db-helpers":true,type:"object",required:["id","title","org_id","description","slug","relPermalink","permalink","type","section","layout","date","final","lastmod","draft","filePath","passPercentage","timeLimit","maxAttempts","questions","totalQuestions","totalQuestionsInBank","totalQuestionSets","totalMarks","prerequisites","nextPage"],properties:{id:{type:"string","x-go-name":"ID","x-oapi-codegen-extra-tags":{json:"id"},description:"Quiz ID.",maxLength:500,format:"uuid"},org_id:{type:"string",description:"Organization ID that owns this quiz",example:"layer5","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"},maxLength:500,format:"uuid"},final:{type:"boolean",description:"Indicates if the quiz is final . i.e this quiz will used to evaluate the completion of parent section eg course , module , learning path",example:true},title:{type:"string",description:"The title of the quiz.",maxLength:500},description:{type:"string",description:"Description of the quiz.",maxLength:5e3},slug:{type:"string",description:"The slug of the quiz.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the quiz.",maxLength:500},permalink:{type:"string",description:"The permalink of the quiz.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255},section:{type:"string",description:"The section of the quiz.",maxLength:500},layout:{type:"string",description:"The layout of the quiz.",maxLength:500},date:{type:"string",format:"date",description:"The date of the quiz."},lastmod:{type:"string",format:"date",description:"The lastmod of the quiz."},draft:{type:"boolean",description:"The draft of the quiz."},filePath:{type:"string",description:"The file path of the quiz.",maxLength:500},passPercentage:{type:"number",format:"float",description:"The pass percentage of the quiz.",minimum:0},timeLimit:{description:"Time limit for the quiz in minutes. A value of 0 indicates no time limit.",type:"integer",minimum:0},maxAttempts:{description:"Maximum number of attempts allowed for the quiz. A value of 0 indicates unlimited attempts.",type:"integer",minimum:0},questions:{type:"array",items:{"x-go-type":"Question",type:"object",required:["id","text","type","marks","options","correctAnswer"],properties:{id:{type:"string",description:"Question ID.",maxLength:500,format:"uuid"},text:{type:"string",description:"The text of the question.",maxLength:500},type:{"x-go-type":"QuestionType",type:"string","x-enum-varnames":["QuestionTypeMultipleAnswers","QuestionTypeSingleAnswer","QuestionTypeShortAnswer","QuestionTypeEssay"],enum:["multiple-answers","single-answer","short-answer","essay"]},marks:{type:"integer",description:"The marks of the question.",minimum:0},multipleAnswers:{type:"boolean",description:"The multiple answers of the question."},options:{type:"array",items:{"x-go-type":"QuestionOption",type:"object",required:["id","text","isCorrect"],properties:{id:{type:"string",description:"QuestionOption ID.",maxLength:500,format:"uuid"},text:{type:"string",description:"The text of the questionoption.",maxLength:500},isCorrect:{type:"boolean",description:"The is correct of the questionoption."}}},description:"The options of the question."},correctAnswer:{type:"string",description:"The correct answer of the question.",maxLength:500}}},description:"The questions of the quiz."},totalQuestions:{type:"integer",description:"The total questions of the quiz.",minimum:0},totalQuestionsInBank:{type:"integer",description:"The total questions in bank of the quiz.",minimum:0},totalQuestionSets:{type:"integer",description:"The total question sets of the quiz.",minimum:0},totalMarks:{type:"integer",description:"The total marks of the quiz.",minimum:0},prerequisites:{type:"array",items:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}},description:"The prerequisites of the quiz."},parent:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}},nextPage:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}}}},attemptedAt:{type:"string",format:"date-time",description:"The attempted at of the quizevaluationresult."},attempts:{type:"integer",description:"The attempts of the quizevaluationresult.",minimum:0}}}},ChildNode:{type:"object",properties:{id:{type:"string",description:"Unique identifier for the course",example:"550e8400-e29b-41d4-a716-446655440002","x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},maxLength:500,format:"uuid"},title:{type:"string",description:"Title of the course",example:"Kubernetes Basics",maxLength:500},permalink:{type:"string",format:"uri",description:"URL to the course content",example:"http://localhost:9876/academy/learning-paths/layer5/intro-kubernetes-course/kubernetes/"},description:{type:"string",description:"Course description",example:"Learn the basics of Kubernetes",maxLength:5e3},weight:{type:"number",description:"A numeric value to determine the display order. A smaller number appears first. If not specified, items will be sorted alphabetically by title.",example:"eg 1 , 2",minimum:0},banner:{type:"string",format:"uri",nullable:true,description:"Filename of the banner image, which should be placed in the same directory as the _index.md file",example:"kubernetes-icon.svg"},type:{"x-go-type":"ContentType",description:"Type of the content (e.g., learning-path, challenge, certification)",type:"string",enum:["learning-path","challenge","certification"]},children:{type:"array",description:"List of child nodes (sub-courses or modules)",items:{type:"object","x-go-type":"ChildNode"}}},required:["title","description","id","permalink"]},AcademyRegistrationsListResponse:{type:"object",properties:{total:{type:"integer",description:"Total number of learning paths",example:7,minimum:0},data:{type:"array",items:{type:"object",required:["id","org_id","user_id","status","created_at","updated_at","content_id","certificate","metadata"],properties:{id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"}},org_id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"org_id"}},content_id:{type:"string",description:"ID of the course content","x-oapi-codegen-extra-tags":{db:"content_id"},maxLength:500,format:"uuid"},user_id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"user_id"}},status:{"x-go-type":"AcademyRegistrationStatus",description:"Status of the user's course registration","x-oapi-codegen-extra-tags":{db:"status"},type:"string",enum:["registered","completed","failed","withdrawn"]},updated_at:{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true,description:"When the registration was updated","x-oapi-codegen-extra-tags":{db:"updated_at"}},created_at:{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true,description:"When the registration was created","x-oapi-codegen-extra-tags":{db:"created_at"}},deleted_at:{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true},certificate:{"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,description:"Issued certificate for completing the curricula under registration","x-oapi-codegen-extra-tags":{db:"certificate"},type:"object",required:["id","orgId","title","description","issuingAuthorities","issuedDate","recipientId","recipientName"],properties:{id:{type:"string",description:"Unique identifier for the certificate",example:"550e8400-e29b-41d4-a716-446655440000","x-go-name":"ID",maxLength:500,format:"uuid"},orgId:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},recipientId:{type:"string",description:"ID of the recipient (user) who received the certificate",example:"550e8400-e29b-41d4-a716-446655440001",maxLength:500,format:"uuid"},recipientName:{type:"string",description:"Name of the recipient (user) who received the certificate",example:"John Doe",maxLength:500},title:{type:"string",description:"Title of the certificate",example:"Kubernetes Expert Certification",maxLength:500},description:{type:"string",description:"Description of the certificate",example:"Awarded for successfully completing the Kubernetes Expert course",maxLength:5e3},issuingAuthorities:{type:"array",items:{"x-go-type":"CertificateIssuingAuthority",type:"object",required:["name","url"],properties:{name:{type:"string",description:"Name of the issuing authority",example:"Cloud Native Foundation",minLength:1,maxLength:255},role:{type:"string",description:"Role of the issuing authority",example:"COO",maxLength:500},signatureUrl:{type:"string",format:"uri",description:"URL to the signature image of the issuing authority should be a publicly accessible URL and transparent PNG or SVG format",example:"http://localhost:9876/signatures/cloud-native-foundation.png"}}},description:"List of issuing authorities for the certificate"},issuedDate:{type:"string",format:"date-time",description:"Date when the certificate was issued",example:"2023-10-01 12:00:00+00:00"},expirationDate:{type:"string",format:"date-time",description:"Date when the certificate expires. Dynamically calculated from issued_date and expires_in; not specified by instructors.",example:"2025-10-01 12:00:00+00:00"},expiresIn:{type:"integer",description:"Number of months after which the certificate expires",example:24,minimum:0}}},metadata:{type:"object",description:"Additional metadata about the registration",additionalProperties:true,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"metadata"}}},"x-go-type":"AcademyRegistration"},description:"The data of the academyregistrationslistresponse."}},required:["total","data"]},CurriculaCurrentItemData:{type:"object",required:["id","lastOpened","contentType"],properties:{id:{type:"string",description:"CurriculaCurrentItemData ID.",maxLength:500,format:"uuid"},lastOpened:{type:"string",format:"date-time",description:"The last opened of the curriculacurrentitemdata."},contentType:{type:"string",enum:["learning-path","challenge","certification"],"x-go-type":"ContentType"}}},CurriculaProgressTracker:{type:"object",required:["currentItem","grades","timeSpent","completed","completedItems"],properties:{currentItem:{type:"object",additionalProperties:{"x-go-type":"CurriculaCurrentItemData",type:"object",required:["id","lastOpened","contentType"],properties:{id:{type:"string",description:"CurriculaCurrentItemData ID.",maxLength:500,format:"uuid"},lastOpened:{type:"string",format:"date-time",description:"The last opened of the curriculacurrentitemdata."},contentType:{type:"string",enum:["learning-path","challenge","certification"],"x-go-type":"ContentType"}}},description:"The current item of the curriculaprogresstracker."},grades:{type:"object",additionalProperties:{"x-go-type":"QuizEvaluationResult",type:"object",required:["score","passed","totalMarks","passPercentage","quiz","attemptedAt","attempts","percentageScored","correctSubmissions"],properties:{score:{type:"integer",description:"The score of the quizevaluationresult.",minimum:0},passed:{type:"boolean",description:"The passed of the quizevaluationresult."},percentageScored:{type:"number",format:"float",description:"The percentage scored of the quizevaluationresult.",minimum:0},totalMarks:{type:"integer",description:"The total marks of the quizevaluationresult.",minimum:0},passPercentage:{type:"number",format:"float",description:"The pass percentage of the quizevaluationresult.",minimum:0},correctSubmissions:{type:"object",additionalProperties:{type:"boolean"},description:"The correct submissions of the quizevaluationresult."},quiz:{"x-go-type":"Quiz","x-generate-db-helpers":true,type:"object",required:["id","title","org_id","description","slug","relPermalink","permalink","type","section","layout","date","final","lastmod","draft","filePath","passPercentage","timeLimit","maxAttempts","questions","totalQuestions","totalQuestionsInBank","totalQuestionSets","totalMarks","prerequisites","nextPage"],properties:{id:{type:"string","x-go-name":"ID","x-oapi-codegen-extra-tags":{json:"id"},description:"Quiz ID.",maxLength:500,format:"uuid"},org_id:{type:"string",description:"Organization ID that owns this quiz",example:"layer5","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"},maxLength:500,format:"uuid"},final:{type:"boolean",description:"Indicates if the quiz is final . i.e this quiz will used to evaluate the completion of parent section eg course , module , learning path",example:true},title:{type:"string",description:"The title of the quiz.",maxLength:500},description:{type:"string",description:"Description of the quiz.",maxLength:5e3},slug:{type:"string",description:"The slug of the quiz.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the quiz.",maxLength:500},permalink:{type:"string",description:"The permalink of the quiz.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255},section:{type:"string",description:"The section of the quiz.",maxLength:500},layout:{type:"string",description:"The layout of the quiz.",maxLength:500},date:{type:"string",format:"date",description:"The date of the quiz."},lastmod:{type:"string",format:"date",description:"The lastmod of the quiz."},draft:{type:"boolean",description:"The draft of the quiz."},filePath:{type:"string",description:"The file path of the quiz.",maxLength:500},passPercentage:{type:"number",format:"float",description:"The pass percentage of the quiz.",minimum:0},timeLimit:{description:"Time limit for the quiz in minutes. A value of 0 indicates no time limit.",type:"integer",minimum:0},maxAttempts:{description:"Maximum number of attempts allowed for the quiz. A value of 0 indicates unlimited attempts.",type:"integer",minimum:0},questions:{type:"array",items:{"x-go-type":"Question",type:"object",required:["id","text","type","marks","options","correctAnswer"],properties:{id:{type:"string",description:"Question ID.",maxLength:500,format:"uuid"},text:{type:"string",description:"The text of the question.",maxLength:500},type:{"x-go-type":"QuestionType",type:"string","x-enum-varnames":["QuestionTypeMultipleAnswers","QuestionTypeSingleAnswer","QuestionTypeShortAnswer","QuestionTypeEssay"],enum:["multiple-answers","single-answer","short-answer","essay"]},marks:{type:"integer",description:"The marks of the question.",minimum:0},multipleAnswers:{type:"boolean",description:"The multiple answers of the question."},options:{type:"array",items:{"x-go-type":"QuestionOption",type:"object",required:["id","text","isCorrect"],properties:{id:{type:"string",description:"QuestionOption ID.",maxLength:500,format:"uuid"},text:{type:"string",description:"The text of the questionoption.",maxLength:500},isCorrect:{type:"boolean",description:"The is correct of the questionoption."}}},description:"The options of the question."},correctAnswer:{type:"string",description:"The correct answer of the question.",maxLength:500}}},description:"The questions of the quiz."},totalQuestions:{type:"integer",description:"The total questions of the quiz.",minimum:0},totalQuestionsInBank:{type:"integer",description:"The total questions in bank of the quiz.",minimum:0},totalQuestionSets:{type:"integer",description:"The total question sets of the quiz.",minimum:0},totalMarks:{type:"integer",description:"The total marks of the quiz.",minimum:0},prerequisites:{type:"array",items:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}},description:"The prerequisites of the quiz."},parent:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}},nextPage:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}}}},attemptedAt:{type:"string",format:"date-time",description:"The attempted at of the quizevaluationresult."},attempts:{type:"integer",description:"The attempts of the quizevaluationresult.",minimum:0}}},description:"The grades of the curriculaprogresstracker."},timeSpent:{type:"integer",description:"Total time spent in seconds",minimum:0},completedItems:{type:"object",description:"Items that have been completed (map of item IDs to item data)",additionalProperties:{"x-go-type":"ProgressItemCompleted",type:"object",required:["completedAt","itemData"],properties:{completedAt:{type:"string",format:"date-time",description:"Timestamp when the item was completed"},itemData:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}}}}},completed:{type:"string",format:"date-time","x-go-type":"core.NullTime",description:"The completed of the curriculaprogresstracker."}}},ProgressItemCompleted:{type:"object",required:["completedAt","itemData"],properties:{completedAt:{type:"string",format:"date-time",description:"Timestamp when the item was completed"},itemData:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}}}},UpdateCurrentItemRequest:{type:"object",properties:{contentType:{type:"string",enum:["learning-path","challenge","certification"],"x-go-type":"ContentType"},itemData:{"x-go-type":"CurriculaCurrentItemData",type:"object",required:["id","lastOpened","contentType"],properties:{id:{type:"string",description:"CurriculaCurrentItemData ID.",maxLength:500,format:"uuid"},lastOpened:{type:"string",format:"date-time",description:"The last opened of the curriculacurrentitemdata."},contentType:{type:"string",enum:["learning-path","challenge","certification"],"x-go-type":"ContentType"}}}},required:["contentType","itemData"]},ErrorResponse:{type:"object",properties:{error:{type:"string",description:"The error of the errorresponse.",maxLength:500},details:{type:"string",description:"The details of the errorresponse.",maxLength:500}}},Quiz:{"x-generate-db-helpers":true,type:"object",required:["id","title","org_id","description","slug","relPermalink","permalink","type","section","layout","date","final","lastmod","draft","filePath","passPercentage","timeLimit","maxAttempts","questions","totalQuestions","totalQuestionsInBank","totalQuestionSets","totalMarks","prerequisites","nextPage"],properties:{id:{type:"string","x-go-name":"ID","x-oapi-codegen-extra-tags":{json:"id"},description:"Quiz ID.",maxLength:500,format:"uuid"},org_id:{type:"string",description:"Organization ID that owns this quiz",example:"layer5","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"},maxLength:500,format:"uuid"},final:{type:"boolean",description:"Indicates if the quiz is final . i.e this quiz will used to evaluate the completion of parent section eg course , module , learning path",example:true},title:{type:"string",description:"The title of the quiz.",maxLength:500},description:{type:"string",description:"Description of the quiz.",maxLength:5e3},slug:{type:"string",description:"The slug of the quiz.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the quiz.",maxLength:500},permalink:{type:"string",description:"The permalink of the quiz.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255},section:{type:"string",description:"The section of the quiz.",maxLength:500},layout:{type:"string",description:"The layout of the quiz.",maxLength:500},date:{type:"string",format:"date",description:"The date of the quiz."},lastmod:{type:"string",format:"date",description:"The lastmod of the quiz."},draft:{type:"boolean",description:"The draft of the quiz."},filePath:{type:"string",description:"The file path of the quiz.",maxLength:500},passPercentage:{type:"number",format:"float",description:"The pass percentage of the quiz.",minimum:0},timeLimit:{description:"Time limit for the quiz in minutes. A value of 0 indicates no time limit.",type:"integer",minimum:0},maxAttempts:{description:"Maximum number of attempts allowed for the quiz. A value of 0 indicates unlimited attempts.",type:"integer",minimum:0},questions:{type:"array",items:{"x-go-type":"Question",type:"object",required:["id","text","type","marks","options","correctAnswer"],properties:{id:{type:"string",description:"Question ID.",maxLength:500,format:"uuid"},text:{type:"string",description:"The text of the question.",maxLength:500},type:{"x-go-type":"QuestionType",type:"string","x-enum-varnames":["QuestionTypeMultipleAnswers","QuestionTypeSingleAnswer","QuestionTypeShortAnswer","QuestionTypeEssay"],enum:["multiple-answers","single-answer","short-answer","essay"]},marks:{type:"integer",description:"The marks of the question.",minimum:0},multipleAnswers:{type:"boolean",description:"The multiple answers of the question."},options:{type:"array",items:{"x-go-type":"QuestionOption",type:"object",required:["id","text","isCorrect"],properties:{id:{type:"string",description:"QuestionOption ID.",maxLength:500,format:"uuid"},text:{type:"string",description:"The text of the questionoption.",maxLength:500},isCorrect:{type:"boolean",description:"The is correct of the questionoption."}}},description:"The options of the question."},correctAnswer:{type:"string",description:"The correct answer of the question.",maxLength:500}}},description:"The questions of the quiz."},totalQuestions:{type:"integer",description:"The total questions of the quiz.",minimum:0},totalQuestionsInBank:{type:"integer",description:"The total questions in bank of the quiz.",minimum:0},totalQuestionSets:{type:"integer",description:"The total question sets of the quiz.",minimum:0},totalMarks:{type:"integer",description:"The total marks of the quiz.",minimum:0},prerequisites:{type:"array",items:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}},description:"The prerequisites of the quiz."},parent:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}},nextPage:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}}}},Parent:{type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}},QuestionType:{type:"string","x-enum-varnames":["QuestionTypeMultipleAnswers","QuestionTypeSingleAnswer","QuestionTypeShortAnswer","QuestionTypeEssay"],enum:["multiple-answers","single-answer","short-answer","essay"]},Question:{type:"object",required:["id","text","type","marks","options","correctAnswer"],properties:{id:{type:"string",description:"Question ID.",maxLength:500,format:"uuid"},text:{type:"string",description:"The text of the question.",maxLength:500},type:{"x-go-type":"QuestionType",type:"string","x-enum-varnames":["QuestionTypeMultipleAnswers","QuestionTypeSingleAnswer","QuestionTypeShortAnswer","QuestionTypeEssay"],enum:["multiple-answers","single-answer","short-answer","essay"]},marks:{type:"integer",description:"The marks of the question.",minimum:0},multipleAnswers:{type:"boolean",description:"The multiple answers of the question."},options:{type:"array",items:{"x-go-type":"QuestionOption",type:"object",required:["id","text","isCorrect"],properties:{id:{type:"string",description:"QuestionOption ID.",maxLength:500,format:"uuid"},text:{type:"string",description:"The text of the questionoption.",maxLength:500},isCorrect:{type:"boolean",description:"The is correct of the questionoption."}}},description:"The options of the question."},correctAnswer:{type:"string",description:"The correct answer of the question.",maxLength:500}}},QuestionOption:{type:"object",required:["id","text","isCorrect"],properties:{id:{type:"string",description:"QuestionOption ID.",maxLength:500,format:"uuid"},text:{type:"string",description:"The text of the questionoption.",maxLength:500},isCorrect:{type:"boolean",description:"The is correct of the questionoption."}}},StartTestRequest:{type:"object",required:["testAbsPath","registrationId"],properties:{testAbsPath:{type:"string",description:"The test abs path of the starttestrequest.",maxLength:500},registrationId:{type:"string",description:"ID of the associated registration.",maxLength:500,format:"uuid"}}},QuizSubmission:{type:"object",required:["quizAbsPath","registrationId","testSessionId","user_id","answers"],properties:{testSessionId:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},quizAbsPath:{type:"string",description:"The quiz abs path of the quizsubmission.",maxLength:500},registrationId:{type:"string",description:"ID of the associated registration.",maxLength:500,format:"uuid"},user_id:{type:"string",description:"ID of the user who owns or created this resource.",maxLength:500,format:"uuid"},answers:{type:"array",items:{"x-go-type":"SubmittedAnswer",type:"object",required:["questionId","selectedOptionId","answerText"],properties:{questionId:{type:"string",description:"ID of the associated question.",maxLength:500,format:"uuid"},selectedOptionId:{type:"object",additionalProperties:{type:"boolean"},description:"Map of selected option IDs to a boolean value indicating if it was selected."},answerText:{type:"string",description:"The answer text of the submittedanswer.",maxLength:500}}},description:"The answers of the quizsubmission."}}},SubmittedAnswer:{type:"object",required:["questionId","selectedOptionId","answerText"],properties:{questionId:{type:"string",description:"ID of the associated question.",maxLength:500,format:"uuid"},selectedOptionId:{type:"object",additionalProperties:{type:"boolean"},description:"Map of selected option IDs to a boolean value indicating if it was selected."},answerText:{type:"string",description:"The answer text of the submittedanswer.",maxLength:500}}},TestSubmissionStatus:{type:"string",enum:["not-attempted","failed","passed"],"x-enum-varnames":["TestSubmissionStatusNotAttempted","TestSubmissionStatusFailed","TestSubmissionStatusPassed"]},TestSubmission:{type:"object",required:["id","registration_id","test_abs_path","user_id","created_at","status","test"],properties:{id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"}},registration_id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"registration_id",json:"registration_id"}},test_abs_path:{type:"string","x-oapi-codegen-extra-tags":{db:"test_abs_path"},description:"The test abs path of the testsubmission.",maxLength:500},user_id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"user_id"}},created_at:{description:"When the submission was created or started",type:"string",format:"date-time","x-oapi-codegen-extra-tags":{db:"created_at"}},updated_at:{description:"When the submission was last updated",type:"string",format:"date-time","x-oapi-codegen-extra-tags":{db:"updated_at"}},deleted_at:{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true},submitted_at:{type:"string",format:"date-time","x-oapi-codegen-extra-tags":{db:"submitted_at"},description:"The submitted at of the testsubmission."},submission_data:{type:"object",required:["quizAbsPath","registrationId","testSessionId","user_id","answers"],properties:{testSessionId:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},quizAbsPath:{type:"string",description:"The quiz abs path of the quizsubmission.",maxLength:500},registrationId:{type:"string",description:"ID of the associated registration.",maxLength:500,format:"uuid"},user_id:{type:"string",description:"ID of the user who owns or created this resource.",maxLength:500,format:"uuid"},answers:{type:"array",items:{"x-go-type":"SubmittedAnswer",type:"object",required:["questionId","selectedOptionId","answerText"],properties:{questionId:{type:"string",description:"ID of the associated question.",maxLength:500,format:"uuid"},selectedOptionId:{type:"object",additionalProperties:{type:"boolean"},description:"Map of selected option IDs to a boolean value indicating if it was selected."},answerText:{type:"string",description:"The answer text of the submittedanswer.",maxLength:500}}},description:"The answers of the quizsubmission."}},"x-go-type":"QuizSubmission","x-oapi-codegen-extra-tags":{db:"submission_data"}},expires_at:{type:"string",description:"Expiry time for the test submission ( based on the time limit of the test )",format:"date-time","x-oapi-codegen-extra-tags":{db:"expires_at"}},status:{"x-go-type":"TestSubmissionStatus",type:"string",enum:["not-attempted","failed","passed"],"x-enum-varnames":["TestSubmissionStatusNotAttempted","TestSubmissionStatusFailed","TestSubmissionStatusPassed"]},result:{type:"object",required:["score","passed","totalMarks","passPercentage","quiz","attemptedAt","attempts","percentageScored","correctSubmissions"],properties:{score:{type:"integer",description:"The score of the quizevaluationresult.",minimum:0},passed:{type:"boolean",description:"The passed of the quizevaluationresult."},percentageScored:{type:"number",format:"float",description:"The percentage scored of the quizevaluationresult.",minimum:0},totalMarks:{type:"integer",description:"The total marks of the quizevaluationresult.",minimum:0},passPercentage:{type:"number",format:"float",description:"The pass percentage of the quizevaluationresult.",minimum:0},correctSubmissions:{type:"object",additionalProperties:{type:"boolean"},description:"The correct submissions of the quizevaluationresult."},quiz:{"x-go-type":"Quiz","x-generate-db-helpers":true,type:"object",required:["id","title","org_id","description","slug","relPermalink","permalink","type","section","layout","date","final","lastmod","draft","filePath","passPercentage","timeLimit","maxAttempts","questions","totalQuestions","totalQuestionsInBank","totalQuestionSets","totalMarks","prerequisites","nextPage"],properties:{id:{type:"string","x-go-name":"ID","x-oapi-codegen-extra-tags":{json:"id"},description:"Quiz ID.",maxLength:500,format:"uuid"},org_id:{type:"string",description:"Organization ID that owns this quiz",example:"layer5","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"},maxLength:500,format:"uuid"},final:{type:"boolean",description:"Indicates if the quiz is final . i.e this quiz will used to evaluate the completion of parent section eg course , module , learning path",example:true},title:{type:"string",description:"The title of the quiz.",maxLength:500},description:{type:"string",description:"Description of the quiz.",maxLength:5e3},slug:{type:"string",description:"The slug of the quiz.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the quiz.",maxLength:500},permalink:{type:"string",description:"The permalink of the quiz.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255},section:{type:"string",description:"The section of the quiz.",maxLength:500},layout:{type:"string",description:"The layout of the quiz.",maxLength:500},date:{type:"string",format:"date",description:"The date of the quiz."},lastmod:{type:"string",format:"date",description:"The lastmod of the quiz."},draft:{type:"boolean",description:"The draft of the quiz."},filePath:{type:"string",description:"The file path of the quiz.",maxLength:500},passPercentage:{type:"number",format:"float",description:"The pass percentage of the quiz.",minimum:0},timeLimit:{description:"Time limit for the quiz in minutes. A value of 0 indicates no time limit.",type:"integer",minimum:0},maxAttempts:{description:"Maximum number of attempts allowed for the quiz. A value of 0 indicates unlimited attempts.",type:"integer",minimum:0},questions:{type:"array",items:{"x-go-type":"Question",type:"object",required:["id","text","type","marks","options","correctAnswer"],properties:{id:{type:"string",description:"Question ID.",maxLength:500,format:"uuid"},text:{type:"string",description:"The text of the question.",maxLength:500},type:{"x-go-type":"QuestionType",type:"string","x-enum-varnames":["QuestionTypeMultipleAnswers","QuestionTypeSingleAnswer","QuestionTypeShortAnswer","QuestionTypeEssay"],enum:["multiple-answers","single-answer","short-answer","essay"]},marks:{type:"integer",description:"The marks of the question.",minimum:0},multipleAnswers:{type:"boolean",description:"The multiple answers of the question."},options:{type:"array",items:{"x-go-type":"QuestionOption",type:"object",required:["id","text","isCorrect"],properties:{id:{type:"string",description:"QuestionOption ID.",maxLength:500,format:"uuid"},text:{type:"string",description:"The text of the questionoption.",maxLength:500},isCorrect:{type:"boolean",description:"The is correct of the questionoption."}}},description:"The options of the question."},correctAnswer:{type:"string",description:"The correct answer of the question.",maxLength:500}}},description:"The questions of the quiz."},totalQuestions:{type:"integer",description:"The total questions of the quiz.",minimum:0},totalQuestionsInBank:{type:"integer",description:"The total questions in bank of the quiz.",minimum:0},totalQuestionSets:{type:"integer",description:"The total question sets of the quiz.",minimum:0},totalMarks:{type:"integer",description:"The total marks of the quiz.",minimum:0},prerequisites:{type:"array",items:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}},description:"The prerequisites of the quiz."},parent:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}},nextPage:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}}}},attemptedAt:{type:"string",format:"date-time",description:"The attempted at of the quizevaluationresult."},attempts:{type:"integer",description:"The attempts of the quizevaluationresult.",minimum:0}},"x-go-type":"QuizEvaluationResult","x-oapi-codegen-extra-tags":{db:"result"}},test:{"x-generate-db-helpers":true,type:"object",required:["id","title","org_id","description","slug","relPermalink","permalink","type","section","layout","date","final","lastmod","draft","filePath","passPercentage","timeLimit","maxAttempts","questions","totalQuestions","totalQuestionsInBank","totalQuestionSets","totalMarks","prerequisites","nextPage"],properties:{id:{type:"string","x-go-name":"ID","x-oapi-codegen-extra-tags":{json:"id"},description:"Quiz ID.",maxLength:500,format:"uuid"},org_id:{type:"string",description:"Organization ID that owns this quiz",example:"layer5","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"},maxLength:500,format:"uuid"},final:{type:"boolean",description:"Indicates if the quiz is final . i.e this quiz will used to evaluate the completion of parent section eg course , module , learning path",example:true},title:{type:"string",description:"The title of the quiz.",maxLength:500},description:{type:"string",description:"Description of the quiz.",maxLength:5e3},slug:{type:"string",description:"The slug of the quiz.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the quiz.",maxLength:500},permalink:{type:"string",description:"The permalink of the quiz.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255},section:{type:"string",description:"The section of the quiz.",maxLength:500},layout:{type:"string",description:"The layout of the quiz.",maxLength:500},date:{type:"string",format:"date",description:"The date of the quiz."},lastmod:{type:"string",format:"date",description:"The lastmod of the quiz."},draft:{type:"boolean",description:"The draft of the quiz."},filePath:{type:"string",description:"The file path of the quiz.",maxLength:500},passPercentage:{type:"number",format:"float",description:"The pass percentage of the quiz.",minimum:0},timeLimit:{description:"Time limit for the quiz in minutes. A value of 0 indicates no time limit.",type:"integer",minimum:0},maxAttempts:{description:"Maximum number of attempts allowed for the quiz. A value of 0 indicates unlimited attempts.",type:"integer",minimum:0},questions:{type:"array",items:{"x-go-type":"Question",type:"object",required:["id","text","type","marks","options","correctAnswer"],properties:{id:{type:"string",description:"Question ID.",maxLength:500,format:"uuid"},text:{type:"string",description:"The text of the question.",maxLength:500},type:{"x-go-type":"QuestionType",type:"string","x-enum-varnames":["QuestionTypeMultipleAnswers","QuestionTypeSingleAnswer","QuestionTypeShortAnswer","QuestionTypeEssay"],enum:["multiple-answers","single-answer","short-answer","essay"]},marks:{type:"integer",description:"The marks of the question.",minimum:0},multipleAnswers:{type:"boolean",description:"The multiple answers of the question."},options:{type:"array",items:{"x-go-type":"QuestionOption",type:"object",required:["id","text","isCorrect"],properties:{id:{type:"string",description:"QuestionOption ID.",maxLength:500,format:"uuid"},text:{type:"string",description:"The text of the questionoption.",maxLength:500},isCorrect:{type:"boolean",description:"The is correct of the questionoption."}}},description:"The options of the question."},correctAnswer:{type:"string",description:"The correct answer of the question.",maxLength:500}}},description:"The questions of the quiz."},totalQuestions:{type:"integer",description:"The total questions of the quiz.",minimum:0},totalQuestionsInBank:{type:"integer",description:"The total questions in bank of the quiz.",minimum:0},totalQuestionSets:{type:"integer",description:"The total question sets of the quiz.",minimum:0},totalMarks:{type:"integer",description:"The total marks of the quiz.",minimum:0},prerequisites:{type:"array",items:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}},description:"The prerequisites of the quiz."},parent:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}},nextPage:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}}},"x-go-type":"Quiz"}}},QuizEvaluationResult:{type:"object",required:["score","passed","totalMarks","passPercentage","quiz","attemptedAt","attempts","percentageScored","correctSubmissions"],properties:{score:{type:"integer",description:"The score of the quizevaluationresult.",minimum:0},passed:{type:"boolean",description:"The passed of the quizevaluationresult."},percentageScored:{type:"number",format:"float",description:"The percentage scored of the quizevaluationresult.",minimum:0},totalMarks:{type:"integer",description:"The total marks of the quizevaluationresult.",minimum:0},passPercentage:{type:"number",format:"float",description:"The pass percentage of the quizevaluationresult.",minimum:0},correctSubmissions:{type:"object",additionalProperties:{type:"boolean"},description:"The correct submissions of the quizevaluationresult."},quiz:{"x-go-type":"Quiz","x-generate-db-helpers":true,type:"object",required:["id","title","org_id","description","slug","relPermalink","permalink","type","section","layout","date","final","lastmod","draft","filePath","passPercentage","timeLimit","maxAttempts","questions","totalQuestions","totalQuestionsInBank","totalQuestionSets","totalMarks","prerequisites","nextPage"],properties:{id:{type:"string","x-go-name":"ID","x-oapi-codegen-extra-tags":{json:"id"},description:"Quiz ID.",maxLength:500,format:"uuid"},org_id:{type:"string",description:"Organization ID that owns this quiz",example:"layer5","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"},maxLength:500,format:"uuid"},final:{type:"boolean",description:"Indicates if the quiz is final . i.e this quiz will used to evaluate the completion of parent section eg course , module , learning path",example:true},title:{type:"string",description:"The title of the quiz.",maxLength:500},description:{type:"string",description:"Description of the quiz.",maxLength:5e3},slug:{type:"string",description:"The slug of the quiz.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the quiz.",maxLength:500},permalink:{type:"string",description:"The permalink of the quiz.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255},section:{type:"string",description:"The section of the quiz.",maxLength:500},layout:{type:"string",description:"The layout of the quiz.",maxLength:500},date:{type:"string",format:"date",description:"The date of the quiz."},lastmod:{type:"string",format:"date",description:"The lastmod of the quiz."},draft:{type:"boolean",description:"The draft of the quiz."},filePath:{type:"string",description:"The file path of the quiz.",maxLength:500},passPercentage:{type:"number",format:"float",description:"The pass percentage of the quiz.",minimum:0},timeLimit:{description:"Time limit for the quiz in minutes. A value of 0 indicates no time limit.",type:"integer",minimum:0},maxAttempts:{description:"Maximum number of attempts allowed for the quiz. A value of 0 indicates unlimited attempts.",type:"integer",minimum:0},questions:{type:"array",items:{"x-go-type":"Question",type:"object",required:["id","text","type","marks","options","correctAnswer"],properties:{id:{type:"string",description:"Question ID.",maxLength:500,format:"uuid"},text:{type:"string",description:"The text of the question.",maxLength:500},type:{"x-go-type":"QuestionType",type:"string","x-enum-varnames":["QuestionTypeMultipleAnswers","QuestionTypeSingleAnswer","QuestionTypeShortAnswer","QuestionTypeEssay"],enum:["multiple-answers","single-answer","short-answer","essay"]},marks:{type:"integer",description:"The marks of the question.",minimum:0},multipleAnswers:{type:"boolean",description:"The multiple answers of the question."},options:{type:"array",items:{"x-go-type":"QuestionOption",type:"object",required:["id","text","isCorrect"],properties:{id:{type:"string",description:"QuestionOption ID.",maxLength:500,format:"uuid"},text:{type:"string",description:"The text of the questionoption.",maxLength:500},isCorrect:{type:"boolean",description:"The is correct of the questionoption."}}},description:"The options of the question."},correctAnswer:{type:"string",description:"The correct answer of the question.",maxLength:500}}},description:"The questions of the quiz."},totalQuestions:{type:"integer",description:"The total questions of the quiz.",minimum:0},totalQuestionsInBank:{type:"integer",description:"The total questions in bank of the quiz.",minimum:0},totalQuestionSets:{type:"integer",description:"The total question sets of the quiz.",minimum:0},totalMarks:{type:"integer",description:"The total marks of the quiz.",minimum:0},prerequisites:{type:"array",items:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}},description:"The prerequisites of the quiz."},parent:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}},nextPage:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}}}},attemptedAt:{type:"string",format:"date-time",description:"The attempted at of the quizevaluationresult."},attempts:{type:"integer",description:"The attempts of the quizevaluationresult.",minimum:0}}},UserRegistration:{type:"object",required:["curricula_title","curricula_type","curricula_permalink","registration_id","status","user_id","user_email","user_last_name","user_first_name","user_avatar_url","total_count"],properties:{curricula_title:{type:"string",description:"Title of the curricula","x-oapi-codegen-extra-tags":{db:"curricula_title"},maxLength:500},curricula_type:{type:"string",enum:["learning-path","challenge","certification"],description:"Type of the curricula","x-go-type":"ContentType","x-oapi-codegen-extra-tags":{db:"curricula_type"}},curricula_permalink:{type:"string",description:"Permalink of the curricula","x-oapi-codegen-extra-tags":{db:"curricula_permalink"},maxLength:500},registration_id:{type:"string",format:"uuid",description:"Unique ID of the registration","x-oapi-codegen-extra-tags":{db:"registration_id"}},status:{description:"Registration status","x-go-type":"AcademyRegistrationStatus","x-oapi-codegen-extra-tags":{db:"status"},type:"string",enum:["registered","completed","failed","withdrawn"]},created_at:{type:"string",format:"date-time",description:"When the registration was created","x-oapi-codegen-extra-tags":{db:"created_at"}},user_id:{type:"string",format:"uuid",description:"ID of the user","x-oapi-codegen-extra-tags":{db:"user_id"}},user_first_name:{type:"string",description:"First name of the user","x-oapi-codegen-extra-tags":{db:"user_first_name"},maxLength:500},user_last_name:{type:"string",description:"Last name of the user","x-oapi-codegen-extra-tags":{db:"user_last_name"},maxLength:500},user_email:{type:"string",format:"email",description:"Email of the user","x-oapi-codegen-extra-tags":{db:"user_email"}},user_avatar_url:{type:"string",format:"uri",description:"Avatar URL of the user","x-oapi-codegen-extra-tags":{db:"user_avatar_url"}},total_count:{type:"integer",format:"int64",description:"Total count for pagination","x-oapi-codegen-extra-tags":{db:"total_count"},minimum:0}}},CurriculaRegistrationsFilter:{type:"object",required:["pagesize","page","contentType","status"],properties:{pagesize:{type:"integer",description:"The pagesize of the curricularegistrationsfilter.",minimum:1},page:{type:"integer",description:"Current page number of the result set.",minimum:0},contentType:{type:"array",items:{type:"string"},description:"The content type of the curricularegistrationsfilter."},status:{type:"array",items:{type:"string"},description:"Current status of the resource."}}},CurriculaRegistrationsResponse:{type:"object",required:["data","total_count","page_size","page"],properties:{data:{type:"array",items:{"x-go-type":"UserRegistration",type:"object",required:["curricula_title","curricula_type","curricula_permalink","registration_id","status","user_id","user_email","user_last_name","user_first_name","user_avatar_url","total_count"],properties:{curricula_title:{type:"string",description:"Title of the curricula","x-oapi-codegen-extra-tags":{db:"curricula_title"},maxLength:500},curricula_type:{type:"string",enum:["learning-path","challenge","certification"],description:"Type of the curricula","x-go-type":"ContentType","x-oapi-codegen-extra-tags":{db:"curricula_type"}},curricula_permalink:{type:"string",description:"Permalink of the curricula","x-oapi-codegen-extra-tags":{db:"curricula_permalink"},maxLength:500},registration_id:{type:"string",format:"uuid",description:"Unique ID of the registration","x-oapi-codegen-extra-tags":{db:"registration_id"}},status:{description:"Registration status","x-go-type":"AcademyRegistrationStatus","x-oapi-codegen-extra-tags":{db:"status"},type:"string",enum:["registered","completed","failed","withdrawn"]},created_at:{type:"string",format:"date-time",description:"When the registration was created","x-oapi-codegen-extra-tags":{db:"created_at"}},user_id:{type:"string",format:"uuid",description:"ID of the user","x-oapi-codegen-extra-tags":{db:"user_id"}},user_first_name:{type:"string",description:"First name of the user","x-oapi-codegen-extra-tags":{db:"user_first_name"},maxLength:500},user_last_name:{type:"string",description:"Last name of the user","x-oapi-codegen-extra-tags":{db:"user_last_name"},maxLength:500},user_email:{type:"string",format:"email",description:"Email of the user","x-oapi-codegen-extra-tags":{db:"user_email"}},user_avatar_url:{type:"string",format:"uri",description:"Avatar URL of the user","x-oapi-codegen-extra-tags":{db:"user_avatar_url"}},total_count:{type:"integer",format:"int64",description:"Total count for pagination","x-oapi-codegen-extra-tags":{db:"total_count"},minimum:0}}},description:"The data of the curricularegistrationsresponse."},total_count:{type:"integer",format:"int64",description:"Total number of items available.",minimum:0},page_size:{type:"integer",description:"Number of items per page.",minimum:1},page:{type:"integer",description:"Current page number of the result set.",minimum:0}}},UpdateCurrentItemProgressResponse:{type:"object",properties:{message:{type:"string",description:"The message of the updatecurrentitemprogressresponse.",maxLength:500},progressTracker:{type:"object",required:["currentItem","grades","timeSpent","completed","completedItems"],properties:{currentItem:{type:"object",additionalProperties:{"x-go-type":"CurriculaCurrentItemData",type:"object",required:["id","lastOpened","contentType"],properties:{id:{type:"string",description:"CurriculaCurrentItemData ID.",maxLength:500,format:"uuid"},lastOpened:{type:"string",format:"date-time",description:"The last opened of the curriculacurrentitemdata."},contentType:{type:"string",enum:["learning-path","challenge","certification"],"x-go-type":"ContentType"}}},description:"The current item of the curriculaprogresstracker."},grades:{type:"object",additionalProperties:{"x-go-type":"QuizEvaluationResult",type:"object",required:["score","passed","totalMarks","passPercentage","quiz","attemptedAt","attempts","percentageScored","correctSubmissions"],properties:{score:{type:"integer",description:"The score of the quizevaluationresult.",minimum:0},passed:{type:"boolean",description:"The passed of the quizevaluationresult."},percentageScored:{type:"number",format:"float",description:"The percentage scored of the quizevaluationresult.",minimum:0},totalMarks:{type:"integer",description:"The total marks of the quizevaluationresult.",minimum:0},passPercentage:{type:"number",format:"float",description:"The pass percentage of the quizevaluationresult.",minimum:0},correctSubmissions:{type:"object",additionalProperties:{type:"boolean"},description:"The correct submissions of the quizevaluationresult."},quiz:{"x-go-type":"Quiz","x-generate-db-helpers":true,type:"object",required:["id","title","org_id","description","slug","relPermalink","permalink","type","section","layout","date","final","lastmod","draft","filePath","passPercentage","timeLimit","maxAttempts","questions","totalQuestions","totalQuestionsInBank","totalQuestionSets","totalMarks","prerequisites","nextPage"],properties:{id:{type:"string","x-go-name":"ID","x-oapi-codegen-extra-tags":{json:"id"},description:"Quiz ID.",maxLength:500,format:"uuid"},org_id:{type:"string",description:"Organization ID that owns this quiz",example:"layer5","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"},maxLength:500,format:"uuid"},final:{type:"boolean",description:"Indicates if the quiz is final . i.e this quiz will used to evaluate the completion of parent section eg course , module , learning path",example:true},title:{type:"string",description:"The title of the quiz.",maxLength:500},description:{type:"string",description:"Description of the quiz.",maxLength:5e3},slug:{type:"string",description:"The slug of the quiz.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the quiz.",maxLength:500},permalink:{type:"string",description:"The permalink of the quiz.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255},section:{type:"string",description:"The section of the quiz.",maxLength:500},layout:{type:"string",description:"The layout of the quiz.",maxLength:500},date:{type:"string",format:"date",description:"The date of the quiz."},lastmod:{type:"string",format:"date",description:"The lastmod of the quiz."},draft:{type:"boolean",description:"The draft of the quiz."},filePath:{type:"string",description:"The file path of the quiz.",maxLength:500},passPercentage:{type:"number",format:"float",description:"The pass percentage of the quiz.",minimum:0},timeLimit:{description:"Time limit for the quiz in minutes. A value of 0 indicates no time limit.",type:"integer",minimum:0},maxAttempts:{description:"Maximum number of attempts allowed for the quiz. A value of 0 indicates unlimited attempts.",type:"integer",minimum:0},questions:{type:"array",items:{"x-go-type":"Question",type:"object",required:["id","text","type","marks","options","correctAnswer"],properties:{id:{type:"string",description:"Question ID.",maxLength:500,format:"uuid"},text:{type:"string",description:"The text of the question.",maxLength:500},type:{"x-go-type":"QuestionType",type:"string","x-enum-varnames":["QuestionTypeMultipleAnswers","QuestionTypeSingleAnswer","QuestionTypeShortAnswer","QuestionTypeEssay"],enum:["multiple-answers","single-answer","short-answer","essay"]},marks:{type:"integer",description:"The marks of the question.",minimum:0},multipleAnswers:{type:"boolean",description:"The multiple answers of the question."},options:{type:"array",items:{"x-go-type":"QuestionOption",type:"object",required:["id","text","isCorrect"],properties:{id:{type:"string",description:"QuestionOption ID.",maxLength:500,format:"uuid"},text:{type:"string",description:"The text of the questionoption.",maxLength:500},isCorrect:{type:"boolean",description:"The is correct of the questionoption."}}},description:"The options of the question."},correctAnswer:{type:"string",description:"The correct answer of the question.",maxLength:500}}},description:"The questions of the quiz."},totalQuestions:{type:"integer",description:"The total questions of the quiz.",minimum:0},totalQuestionsInBank:{type:"integer",description:"The total questions in bank of the quiz.",minimum:0},totalQuestionSets:{type:"integer",description:"The total question sets of the quiz.",minimum:0},totalMarks:{type:"integer",description:"The total marks of the quiz.",minimum:0},prerequisites:{type:"array",items:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}},description:"The prerequisites of the quiz."},parent:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}},nextPage:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}}}},attemptedAt:{type:"string",format:"date-time",description:"The attempted at of the quizevaluationresult."},attempts:{type:"integer",description:"The attempts of the quizevaluationresult.",minimum:0}}},description:"The grades of the curriculaprogresstracker."},timeSpent:{type:"integer",description:"Total time spent in seconds",minimum:0},completedItems:{type:"object",description:"Items that have been completed (map of item IDs to item data)",additionalProperties:{"x-go-type":"ProgressItemCompleted",type:"object",required:["completedAt","itemData"],properties:{completedAt:{type:"string",format:"date-time",description:"Timestamp when the item was completed"},itemData:{"x-go-type":"Parent",type:"object",required:["id","title","relPermalink","type"],properties:{id:{type:"string",description:"Parent ID.",maxLength:500,format:"uuid"},title:{type:"string",description:"The title of the parent.",maxLength:500},relPermalink:{type:"string",description:"The rel permalink of the parent.",maxLength:500},type:{type:"string",description:"Type of the resource.",maxLength:255}}}}}},completed:{type:"string",format:"date-time","x-go-type":"core.NullTime",description:"The completed of the curriculaprogresstracker."}}},registrationId:{type:"string",description:"ID of the associated registration.",maxLength:500,format:"uuid"},contentType:{type:"string",enum:["learning-path","challenge","certification"]},itemData:{type:"object",required:["id","lastOpened","contentType"],properties:{id:{type:"string",description:"CurriculaCurrentItemData ID.",maxLength:500,format:"uuid"},lastOpened:{type:"string",format:"date-time",description:"The last opened of the curriculacurrentitemdata."},contentType:{type:"string",enum:["learning-path","challenge","certification"],"x-go-type":"ContentType"}}}}}}}},t=e;
2
2
  module.exports=t;