@riverbankcms/sdk 0.121.0 → 0.124.0

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 (259) hide show
  1. package/README.md +14 -9
  2. package/dist/{PreviewEditorSidebar-lZ600tJx.mjs → PreviewEditorSidebar-DBmAJJkQ.mjs} +24 -41
  3. package/dist/{PreviewEditorUI-CTBWzLSb.mjs → PreviewEditorUI-CfGaz9cY.mjs} +3 -3
  4. package/dist/{PreviewQueryProvider-BHT8CJvZ.mjs → PreviewQueryProvider-BH-3-jSj.mjs} +1 -1
  5. package/dist/{SdkPreviewModeRuntime-DhPU58s7.mjs → SdkPreviewModeRuntime-BW9Z8j8T.mjs} +1020 -1234
  6. package/dist/{SiteChromeCustomizeContext-BkNvpzNZ.mjs → SiteChromeCustomizeContext-2z8moxYf.mjs} +1902 -1961
  7. package/dist/_dts/ai/src/contracts/proposals.d.ts +1236 -4152
  8. package/dist/_dts/api/src/appointmentEndpointDefinitions.d.ts +435 -0
  9. package/dist/_dts/api/src/bookingClosures.d.ts +3 -3
  10. package/dist/_dts/api/src/bookingConfig.d.ts +100 -75
  11. package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +26 -35
  12. package/dist/_dts/api/src/bookingRecords.d.ts +4 -15
  13. package/dist/_dts/api/src/bookingVerticalCatalog.d.ts +746 -0
  14. package/dist/_dts/api/src/bookingVerticalPreset.d.ts +38 -0
  15. package/dist/_dts/api/src/bookingVerticals.d.ts +11 -652
  16. package/dist/_dts/api/src/bookings.d.ts +11 -9
  17. package/dist/_dts/api/src/cache-tags.d.ts +2 -2
  18. package/dist/_dts/api/src/commercePortalEndpoints.d.ts +10 -10
  19. package/dist/_dts/api/src/common/envelope.d.ts +2 -0
  20. package/dist/_dts/api/src/contentRuntime.d.ts +0 -17
  21. package/dist/_dts/api/src/courseEndpointDefinitions.d.ts +99 -0
  22. package/dist/_dts/api/src/courses.d.ts +22 -33
  23. package/dist/_dts/api/src/defineEndpointDefinitions.d.ts +14 -0
  24. package/dist/_dts/api/src/demoMutationPolicies.d.ts +4 -0
  25. package/dist/_dts/api/src/endpoints.d.ts +3740 -3733
  26. package/dist/_dts/api/src/event-destination-policy.d.ts +1 -1
  27. package/dist/_dts/api/src/event-presentation.d.ts +4 -9
  28. package/dist/_dts/api/src/index.d.ts +10 -12
  29. package/dist/_dts/api/src/newsletterEndpointDefinitions.d.ts +376 -0
  30. package/dist/_dts/api/src/participantMessaging.d.ts +2 -2
  31. package/dist/_dts/api/src/public/endpoints.d.ts +1 -1
  32. package/dist/_dts/api/src/publicExperience/commerceEndpoints.d.ts +272 -0
  33. package/dist/_dts/api/src/publicExperience/eventEndpoints.d.ts +274 -0
  34. package/dist/_dts/api/src/publicExperience/newsletterEndpoints.d.ts +31 -0
  35. package/dist/_dts/api/src/publicExperience/sharedTypes.d.ts +152 -0
  36. package/dist/_dts/api/src/publicExperience/siteEndpoints.d.ts +95 -0
  37. package/dist/_dts/api/src/publicExperience/wholeSeriesEndpoints.d.ts +154 -0
  38. package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +10 -962
  39. package/dist/_dts/api/src/publicWholeSeriesEndpointDefinitions.d.ts +52 -0
  40. package/dist/_dts/api/src/sdkContracts.d.ts +0 -51
  41. package/dist/_dts/api/src/sdkEntryReadEndpoints.d.ts +23 -0
  42. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +1 -38
  43. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +6 -7
  44. package/dist/_dts/blocks/src/PageRenderer.d.ts +4 -15
  45. package/dist/_dts/blocks/src/contracts/index.d.ts +1 -1
  46. package/dist/_dts/blocks/src/contracts/non-block-islands.d.ts +0 -16
  47. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +6 -222
  48. package/dist/_dts/blocks/src/portal/types.d.ts +3 -3
  49. package/dist/_dts/blocks/src/subroutes/fold.d.ts +1 -14
  50. package/dist/_dts/blocks/src/subroutes/index.d.ts +1 -1
  51. package/dist/_dts/blocks/src/subroutes/kinds.d.ts +3 -3
  52. package/dist/_dts/blocks/src/system/blocks/course-details.d.ts +0 -11
  53. package/dist/_dts/blocks/src/system/blocks/course-registration.d.ts +3 -4
  54. package/dist/_dts/blocks/src/system/blocks/courses/shared/pricing.d.ts +1 -1
  55. package/dist/_dts/blocks/src/system/blocks/courses/shared/schemas.d.ts +401 -12
  56. package/dist/_dts/blocks/src/system/blocks/courses/shared/types.d.ts +9 -10
  57. package/dist/_dts/blocks/src/system/blocks/events/event-calendar.d.ts +14 -13
  58. package/dist/_dts/blocks/src/system/blocks/events/event-listing.d.ts +1 -2
  59. package/dist/_dts/blocks/src/system/blocks/events/shared/filtering.d.ts +1 -4
  60. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +19 -18
  61. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +9 -11
  62. package/dist/_dts/blocks/src/system/blocks/offerings-preview/model.d.ts +2 -2
  63. package/dist/_dts/blocks/src/system/data/loaderEndpoints.d.ts +1 -1
  64. package/dist/_dts/blocks/src/system/runtime/api/client.d.ts +10 -10
  65. package/dist/_dts/blocks/src/system/runtime/api/endpoints.d.ts +10 -10
  66. package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +1 -1
  67. package/dist/_dts/blocks/src/system/runtime/api/types/appointments.d.ts +162 -0
  68. package/dist/_dts/blocks/src/system/runtime/api/types/core.d.ts +59 -0
  69. package/dist/_dts/blocks/src/system/runtime/api/types/courses.d.ts +134 -0
  70. package/dist/_dts/blocks/src/system/runtime/api/types/discounts.d.ts +85 -0
  71. package/dist/_dts/blocks/src/system/runtime/api/types/events.d.ts +241 -0
  72. package/dist/_dts/blocks/src/system/runtime/api/types/forms.d.ts +53 -0
  73. package/dist/_dts/blocks/src/system/runtime/api/types/newsletter.d.ts +32 -0
  74. package/dist/_dts/blocks/src/system/runtime/api/types/portal.d.ts +220 -0
  75. package/dist/_dts/blocks/src/system/runtime/api/types/shop.d.ts +176 -0
  76. package/dist/_dts/blocks/src/system/runtime/api/types.d.ts +12 -1121
  77. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +19 -583
  78. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +9 -276
  79. package/dist/_dts/blocks/src/system/runtime/hooks/useEventFilters.d.ts +1 -12
  80. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessEventRegistrationFlow.d.ts +0 -1
  81. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessWholeSeriesRegistrationFlow.d.ts +0 -1
  82. package/dist/_dts/blocks/src/system/runtime/nodes/booking-runtime-sources.d.ts +2 -3
  83. package/dist/_dts/blocks/src/system/runtime/nodes/course-details/logic.d.ts +1 -18
  84. package/dist/_dts/blocks/src/system/runtime/nodes/course-details/runs.d.ts +0 -2
  85. package/dist/_dts/blocks/src/system/runtime/nodes/course-details.server.d.ts +1 -5
  86. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/courseRegistrationViewState.d.ts +21 -0
  87. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/index.d.ts +1 -1
  88. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/pricing.d.ts +14 -0
  89. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/types.d.ts +0 -25
  90. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCourseEligibility.d.ts +24 -0
  91. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCoursePaymentVerification.d.ts +9 -0
  92. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCourseRegistrationActions.d.ts +35 -0
  93. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCourseRegistrationPortal.d.ts +7 -0
  94. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCourseRegistrationSelection.d.ts +31 -0
  95. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCourseRegistrationWizard.d.ts +80 -55
  96. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCourseWaitlistSelection.d.ts +14 -0
  97. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/whole-series-registration.headless.contract.d.ts +4 -5
  98. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration.interactive.d.ts +0 -38
  99. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration.server.d.ts +1 -1
  100. package/dist/_dts/blocks/src/system/runtime/nodes/event-details.client.d.ts +1 -2
  101. package/dist/_dts/blocks/src/system/runtime/nodes/event-details.server.d.ts +0 -1
  102. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationWizardActions.d.ts +12 -0
  103. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +0 -4
  104. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventScope.d.ts +0 -9
  105. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +0 -5
  106. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +0 -11
  107. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/utils.d.ts +13 -0
  108. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +0 -21
  109. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.server.d.ts +1 -1
  110. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCalendar.interactive.d.ts +24 -433
  111. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.client.d.ts +1 -2
  112. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.interactive.d.ts +52 -266
  113. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventListing.interactive.d.ts +5 -15
  114. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventFilters.d.ts +0 -8
  115. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +1573 -0
  116. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/listOptions.d.ts +1 -3
  117. package/dist/_dts/content-editor/src/ui/editorSnapshot.d.ts +2 -3
  118. package/dist/_dts/content-editor/src/ui/editorUiStore.d.ts +2 -2
  119. package/dist/_dts/content-model/src/content-types/builtin-schemas.d.ts +0 -5
  120. package/dist/_dts/content-model/src/content-types/builtins.d.ts +0 -5
  121. package/dist/_dts/content-model/src/templates/defaults.d.ts +6 -3
  122. package/dist/_dts/core/src/editor-state.d.ts +1 -13
  123. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +1587 -115
  124. package/dist/_dts/preview-next/src/client/preview/siteChromeBrandPreferences.d.ts +6 -6
  125. package/dist/_dts/preview-next/src/client/preview/siteChromeSavePlan.d.ts +6 -1
  126. package/dist/_dts/preview-next/src/client/preview/siteStylePreviewPlanner.d.ts +27 -4
  127. package/dist/_dts/sdk/src/cli/commands/audit.d.ts +1 -2
  128. package/dist/_dts/sdk/src/cli/commands/pull-dated-offering-scope.d.ts +1 -1
  129. package/dist/_dts/sdk/src/cli/commands/pull-dry-run.d.ts +4 -6
  130. package/dist/_dts/sdk/src/cli/commands/push/consts.d.ts +1 -1
  131. package/dist/_dts/sdk/src/cli/commands/push/options.d.ts +1 -1
  132. package/dist/_dts/sdk/src/cli/commands/push/pushAllExtras.d.ts +0 -1
  133. package/dist/_dts/sdk/src/cli/commands/push/verification.d.ts +1 -1
  134. package/dist/_dts/sdk/src/cli/content/collectionWriters.d.ts +23 -0
  135. package/dist/_dts/sdk/src/cli/content/metadataAfterPush.d.ts +25 -0
  136. package/dist/_dts/sdk/src/cli/content/reader.d.ts +0 -52
  137. package/dist/_dts/sdk/src/cli/content/writer.d.ts +3 -81
  138. package/dist/_dts/sdk/src/cli/site-commands/datedOfferingCommands.d.ts +6 -9
  139. package/dist/_dts/sdk/src/client/contentReadOperations.d.ts +40 -0
  140. package/dist/_dts/sdk/src/client/management/index.d.ts +1 -3
  141. package/dist/_dts/sdk/src/client/management/types.d.ts +3 -91
  142. package/dist/_dts/sdk/src/client/runtimeCacheKeys.d.ts +72 -0
  143. package/dist/_dts/sdk/src/client/runtimeCachePolicy.d.ts +10 -75
  144. package/dist/_dts/sdk/src/client/types.d.ts +7 -33
  145. package/dist/_dts/sdk/src/components.d.ts +1 -1
  146. package/dist/_dts/sdk/src/config/types.d.ts +1 -1
  147. package/dist/_dts/sdk/src/config/validation.d.ts +3 -6
  148. package/dist/_dts/sdk/src/contracts/index.d.ts +1 -1
  149. package/dist/_dts/sdk/src/contracts/page.d.ts +0 -8
  150. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +1 -34
  151. package/dist/_dts/sdk/src/data/prefetchBlockData.d.ts +4 -3
  152. package/dist/_dts/sdk/src/next/catch-all-utils.d.ts +0 -11
  153. package/dist/_dts/sdk/src/next/catch-all.d.ts +1 -76
  154. package/dist/_dts/sdk/src/next/types.d.ts +0 -19
  155. package/dist/_dts/sdk/src/public-api/contracts.d.ts +7 -207
  156. package/dist/_dts/sdk/src/public-api/runtime.d.ts +1 -1
  157. package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +2 -1
  158. package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +2 -2
  159. package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +0 -7
  160. package/dist/_dts/sdk/src/rendering/helpers/templateContent.d.ts +81 -0
  161. package/dist/_dts/sdk/src/rendering/index.d.ts +1 -1
  162. package/dist/_dts/sdk/src/rendering/islands/types.d.ts +1 -51
  163. package/dist/_dts/sdk/src/rendering/overrides.d.ts +2 -1
  164. package/dist/_dts/sdk/src/routing/entrySubroutes.d.ts +6 -6
  165. package/dist/_dts/sdk/src/routing/index.d.ts +0 -2
  166. package/dist/_dts/sdk/src/routing/resolveOccurrence.d.ts +3 -3
  167. package/dist/_dts/sdk/src/routing/resolvePageContent.d.ts +10 -39
  168. package/dist/_dts/sdk/src/types/block-kinds.d.ts +1 -1
  169. package/dist/_dts/sdk/src/version.d.ts +1 -1
  170. package/dist/_dts/site-commands/src/adapter.d.ts +1 -1
  171. package/dist/_dts/site-commands/src/appointmentCommandSchemas.d.ts +100 -0
  172. package/dist/_dts/site-commands/src/capabilityGaps.d.ts +2 -2
  173. package/dist/_dts/site-commands/src/commandContract.d.ts +1242 -0
  174. package/dist/_dts/site-commands/src/commandDomain.d.ts +20 -0
  175. package/dist/_dts/site-commands/src/commandIdentifiers.d.ts +7 -0
  176. package/dist/_dts/site-commands/src/commandValidation.d.ts +10 -0
  177. package/dist/_dts/site-commands/src/commands.d.ts +729 -2659
  178. package/dist/_dts/site-commands/src/domain.d.ts +1 -1
  179. package/dist/_dts/site-commands/src/eventCommandContent.d.ts +11 -0
  180. package/dist/_dts/site-commands/src/exposure.d.ts +1 -1
  181. package/dist/_dts/site-commands/src/index.d.ts +6 -0
  182. package/dist/_dts/site-commands/src/metadata.d.ts +1 -27
  183. package/dist/_dts/site-commands/src/planner.d.ts +1 -1
  184. package/dist/_dts/site-commands/src/refContributions.d.ts +1 -1
  185. package/dist/_dts/site-commands/src/refs.d.ts +1 -4
  186. package/dist/_dts/site-commands/src/siteStyleCommandSchema.d.ts +378 -0
  187. package/dist/_dts/site-commands/src/siteStyleSelectionSchemaBuilder.d.ts +46 -0
  188. package/dist/_dts/site-commands/src/staticExecutionGaps.d.ts +2 -2
  189. package/dist/_dts/site-commands/src/venueCommandMapping.d.ts +21 -0
  190. package/dist/_dts/theme-core/src/site-styles/compilationPlan.d.ts +58 -0
  191. package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +1 -0
  192. package/dist/_dts/theme-core/src/site-styles/index.d.ts +1 -0
  193. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +47 -24
  194. package/dist/cli/index.mjs +7392 -10989
  195. package/dist/cli/init-docs/content/cli-reference.md +5 -21
  196. package/dist/cli/init-docs/content/content-management.md +4 -5
  197. package/dist/client/{DiscountCodeDisclosure-DIWj-P9v.mjs → DiscountCodeDisclosure-DxvjKvck.mjs} +2 -2
  198. package/dist/client/{EventCombined.client-De8YWBSr.mjs → EventCombined.client-BydMGc4c.mjs} +5 -16
  199. package/dist/client/{EventListing.client-seHTjimY.mjs → EventListing.client-vpzhhysN.mjs} +3 -10
  200. package/dist/client/{LeafletStaticMap-BmQxFcJW.mjs → LeafletStaticMap-CB07rpf8.mjs} +1 -1
  201. package/dist/client/{MagicLinkForm-OoJAIUIj.mjs → MagicLinkForm-BzyRJ8VF.mjs} +2 -2
  202. package/dist/client/{StepIndicator-CiZ8kdPk.mjs → StepIndicator-CTcGf8Be.mjs} +2 -2
  203. package/dist/client/{accordion-6lnN__XJ.mjs → accordion-B-DUDLRD.mjs} +1 -1
  204. package/dist/client/{bookingForm-5uyqhONU.mjs → bookingForm-DSbClLcZ.mjs} +6 -6
  205. package/dist/client/bookings.mjs +753 -818
  206. package/dist/client/{carousel-Dtnifil_.mjs → carousel-B6Ccdx8M.mjs} +1 -1
  207. package/dist/client/{cart-5Tc5S7NV.mjs → cart-BZh8G8wM.mjs} +3 -3
  208. package/dist/client/{checkout-CYKKN5Hr.mjs → checkout-o6zaC-kM.mjs} +3 -3
  209. package/dist/client/client.mjs +7398 -7687
  210. package/dist/client/{context-BGZNlGXB.mjs → context-CJz1Vlsz.mjs} +40 -43
  211. package/dist/client/{courseRegistration-CxCBybB4.mjs → courseRegistration-Cf11pNDs.mjs} +606 -621
  212. package/dist/client/{eventCalendar-Xj2jZS9X.mjs → eventCalendar-BeXrdsSE.mjs} +5 -13
  213. package/dist/client/{eventCombined-CgcMoOgM.mjs → eventCombined-DA76PZgG.mjs} +3 -3
  214. package/dist/client/{eventDetails-CEAH8Edc.mjs → eventDetails-BLxg0rok.mjs} +140 -116
  215. package/dist/client/{eventListing-qyPVQ0wP.mjs → eventListing-tO9LheBX.mjs} +3 -3
  216. package/dist/client/{eventRegistration-DDu79CtL.mjs → eventRegistration-Cnene9D9.mjs} +165 -68
  217. package/dist/client/{form-Bc7JKI7I.mjs → form-DZf72CHB.mjs} +2 -2
  218. package/dist/client/{headerSection-vTku_LEl.mjs → headerSection-Hioja5Cr.mjs} +2 -2
  219. package/dist/client/hooks.mjs +3452 -2365
  220. package/dist/client/{locationMap-Bg7X4Jna.mjs → locationMap-DwhUXEix.mjs} +2 -2
  221. package/dist/client/{newsletterForm-lpylVdp5.mjs → newsletterForm-C350bEQf.mjs} +2 -2
  222. package/dist/client/{pricing-DE8fjJiT.mjs → pricing-BYWN_ATa.mjs} +3 -19
  223. package/dist/client/{productDetail-D7Bo2RMH.mjs → productDetail-CCqCyXgU.mjs} +3 -3
  224. package/dist/client/{productList-VjnZqiqN.mjs → productList-BAiNJrOU.mjs} +3 -3
  225. package/dist/client/{propsDecoder-DreFXjNP.mjs → propsDecoder-DeunRj6m.mjs} +210 -378
  226. package/dist/client/rendering/client.mjs +2541 -2813
  227. package/dist/client/rendering/islands.mjs +18 -18
  228. package/dist/client/rendering.mjs +5622 -4734
  229. package/dist/client/{shop-IRsHHbf7.mjs → shop-DUmCdBtw.mjs} +6 -6
  230. package/dist/client/{shop-commerce-gnI8PieZ.mjs → shop-commerce-CY27mEUr.mjs} +5 -5
  231. package/dist/client/{shop-commerce-store-BTbrhObn.mjs → shop-commerce-store-ChXPbWfa.mjs} +1 -1
  232. package/dist/client/{shopShared-D6KS2_qk.mjs → shopShared-q0kin1cv.mjs} +3 -3
  233. package/dist/client/{useDiscountCodeUi-DCccGCxV.mjs → useDiscountCodeUi-I-92-x2V.mjs} +2 -2
  234. package/dist/client/{useEventFilters-eGs3rPZQ.mjs → useEventFilters-DlcVluZh.mjs} +59 -124
  235. package/dist/client/{usePolling-CvSU2sur.mjs → usePolling-Bz7GFV_a.mjs} +2 -2
  236. package/dist/preview-next/before-render.mjs +1115 -1043
  237. package/dist/preview-next/client/runtime.mjs +4 -4
  238. package/dist/preview-next/middleware.mjs +1116 -1044
  239. package/dist/{previewAuthStore-31xH13Jc.mjs → previewAuthStore-CJX21dGi.mjs} +1119 -1044
  240. package/dist/{sdk-runtime-BE_vcGua.mjs → sdk-runtime-OnPM8Z69.mjs} +2 -2
  241. package/dist/{separator-CiffYtk3.mjs → separator-CPtfzHqA.mjs} +1 -1
  242. package/dist/server/components.mjs +11120 -12601
  243. package/dist/server/config-validation.mjs +3454 -2356
  244. package/dist/server/config.mjs +3454 -2356
  245. package/dist/server/data.mjs +3452 -2367
  246. package/dist/server/index.mjs +1499 -1488
  247. package/dist/server/next.mjs +18291 -21201
  248. package/dist/server/page-converter.mjs +1898 -2040
  249. package/dist/server/prebuild.mjs +1 -1
  250. package/dist/server/rendering/server.mjs +19666 -21153
  251. package/dist/server/rendering.mjs +17117 -18651
  252. package/dist/server/routing.mjs +3614 -2509
  253. package/dist/server/server.mjs +3298 -3478
  254. package/package.json +1 -1
  255. package/dist/_dts/api/src/previewContentContract.d.ts +0 -4
  256. package/dist/_dts/sdk/src/cli/commands/course.d.ts +0 -6
  257. package/dist/_dts/sdk/src/cli/commands/push/scopes/courses.d.ts +0 -4
  258. package/dist/_dts/sdk/src/client/management/courses.d.ts +0 -10
  259. package/dist/_dts/sdk/src/routing/resolveEntrySubroute.d.ts +0 -36
@@ -43,6 +43,12 @@ function blockedDemoMutationPolicy(classification, publicMessage) {
43
43
  };
44
44
  }
45
45
  //#endregion
46
+ //#region ../api/src/demoMutationPolicies.ts
47
+ const DEMO_MUTATION_BLOCKED_HIDDEN = blockedDemoMutationPolicy("blocked-hidden", "This action is not available in demo sites.");
48
+ const DEMO_MUTATION_BLOCKED_DISABLED = blockedDemoMutationPolicy("blocked-disabled", "This setting is disabled in demo sites.");
49
+ const DEMO_MUTATION_INTERNAL_ONLY = blockedDemoMutationPolicy("internal-only", "This internal operation is not available in demo sites.");
50
+ const DEMO_MUTATION_ALLOWED = allowedDemoMutationPolicy();
51
+ //#endregion
46
52
  //#region ../api/src/cache-tags.ts
47
53
  /**
48
54
  * Tag templates for endpoint definitions (support `{param}` placeholders).
@@ -69,7 +75,7 @@ const TAG_TEMPLATES = {
69
75
  formSubmissionsBySlug: "riverbank:form-submissions:{slug}",
70
76
  publicEvents: "riverbank:site:{siteId}:public-events",
71
77
  publicEventFilters: "riverbank:site:{siteId}:public-event-filters",
72
- publicCourses: "riverbank:site:{siteId}:public-courses",
78
+ publicWholeSeriesOfferings: "riverbank:site:{siteId}:public-whole-series-offerings",
73
79
  publicTeamMembers: "riverbank:site:{siteId}:public-team-members",
74
80
  publicProducts: "riverbank:site:{siteId}:public-products",
75
81
  publicPasses: "riverbank:site:{siteId}:public-passes",
@@ -84,627 +90,810 @@ const TAG_TEMPLATES = {
84
90
  siteTheme: "riverbank:site:{siteId}:theme"
85
91
  };
86
92
  //#endregion
87
- //#region ../api/src/endpoints.ts
88
- const DEMO_MUTATION_BLOCKED_HIDDEN = blockedDemoMutationPolicy("blocked-hidden", "This action is not available in demo sites.");
89
- const DEMO_MUTATION_BLOCKED_DISABLED = blockedDemoMutationPolicy("blocked-disabled", "This setting is disabled in demo sites.");
90
- const DEMO_MUTATION_INTERNAL_ONLY = blockedDemoMutationPolicy("internal-only", "This internal operation is not available in demo sites.");
91
- const DEMO_MUTATION_ALLOWED = allowedDemoMutationPolicy();
92
- const API_ENDPOINTS = {
93
- aiContentUpdateChat: {
94
- path: "/ai/content-update-chat",
95
- method: "POST",
96
- auth: "user",
97
- responseKind: "stream"
98
- },
99
- aiChat: {
100
- path: "/ai/chat",
101
- method: "POST",
102
- auth: "user",
103
- responseKind: "stream"
104
- },
105
- aiDesignerThemeApply: {
106
- path: "/sites/{siteId}/ai/designer/theme/apply",
107
- method: "POST",
108
- tags: [TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme],
109
- auth: "user",
110
- responseKind: "json"
111
- },
112
- aiDesignerPageOpsApply: {
113
- path: "/sites/{siteId}/ai/designer/page/apply",
114
- method: "POST",
115
- tags: [TAG_TEMPLATES.siteCollection],
116
- auth: "user",
93
+ //#region ../api/src/sdkEntryReadEndpoints.ts
94
+ const SDK_ENTRY_READ_ENDPOINTS = {
95
+ sdkPullEntriesByType: {
96
+ path: "/sdk/{siteId}/pull/entries/{type}",
97
+ method: "GET",
98
+ errors: ["validation:invalid_input", "server:internal_error"],
99
+ auth: "service",
117
100
  responseKind: "json"
118
101
  },
119
- applySeoChanges: {
120
- path: "/seo/apply",
121
- method: "POST",
122
- auth: "user",
102
+ sdkListEntries: {
103
+ path: "/sdk/{siteId}/entries/{contentType}",
104
+ method: "GET",
105
+ errors: ["validation:invalid_input", "server:internal_error"],
106
+ auth: "service",
123
107
  responseKind: "json"
124
108
  },
125
- aiCreateBriefChat: {
126
- path: "/ai/chat/create-brief",
127
- method: "POST",
128
- auth: "user",
109
+ sdkGetEntry: {
110
+ path: "/sdk/{siteId}/entries/{contentType}/{identifier}",
111
+ method: "GET",
112
+ errors: [
113
+ "validation:invalid_input",
114
+ "resource:not_found",
115
+ "server:internal_error"
116
+ ],
117
+ auth: "service",
129
118
  responseKind: "json"
130
- },
131
- aiPatchDryRun: {
132
- path: "/ai/patch/dry-run",
133
- method: "POST",
119
+ }
120
+ };
121
+ //#endregion
122
+ //#region ../api/src/defineEndpointDefinitions.ts
123
+ /**
124
+ * Validates extracted endpoint descriptors while preserving each literal path,
125
+ * method, and parameter contract for the typed URL builders.
126
+ */
127
+ function defineEndpointDefinitions(definitions) {
128
+ return definitions;
129
+ }
130
+ //#endregion
131
+ //#region ../api/src/appointmentEndpointDefinitions.ts
132
+ const APPOINTMENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
133
+ listAppointmentResources: {
134
+ path: "/sites/{siteId}/bookings/resources",
135
+ method: "GET",
134
136
  auth: "user",
135
137
  responseKind: "json"
136
138
  },
137
- aiPatchApply: {
138
- path: "/ai/patch/apply",
139
+ createAppointmentResource: {
140
+ path: "/sites/{siteId}/bookings/resources",
139
141
  method: "POST",
140
142
  auth: "user",
141
- responseKind: "json"
143
+ responseKind: "json",
144
+ errors: [
145
+ "validation:invalid_input",
146
+ "billing:plan_limit_exceeded",
147
+ "server:internal_error"
148
+ ]
142
149
  },
143
- aiPlaygroundProposeMulti: {
144
- path: "/sites/{siteId}/ai/playground/propose-multi",
150
+ createAppointmentResourceWithAccountAccess: {
151
+ path: "/sites/{siteId}/bookings/resources/account-access",
145
152
  method: "POST",
146
153
  auth: "user",
147
- responseKind: "stream"
154
+ responseKind: "json",
155
+ errors: [
156
+ "validation:invalid_input",
157
+ "auth:forbidden",
158
+ "billing:plan_limit_exceeded",
159
+ "resource:conflict",
160
+ "resource:not_found",
161
+ "server:internal_error"
162
+ ]
148
163
  },
149
- aiPlaygroundProposeMultiGet: {
150
- path: "/sites/{siteId}/ai/playground/propose-multi",
164
+ getAppointmentResource: {
165
+ path: "/sites/{siteId}/bookings/resources/{resourceId}",
151
166
  method: "GET",
152
167
  auth: "user",
153
- responseKind: "stream"
168
+ responseKind: "json"
154
169
  },
155
- aiAssistantChatSite: {
156
- path: "/sites/{siteId}/ai/assistant/chat",
157
- method: "POST",
170
+ updateAppointmentResource: {
171
+ path: "/sites/{siteId}/bookings/resources/{resourceId}",
172
+ method: "PUT",
158
173
  auth: "user",
159
- responseKind: "stream"
174
+ responseKind: "json",
175
+ errors: [
176
+ "validation:invalid_input",
177
+ "resource:not_found",
178
+ "server:internal_error"
179
+ ]
160
180
  },
161
- aiDesignerChat: {
162
- path: "/sites/{siteId}/ai/designer/chat",
163
- method: "POST",
181
+ removeAppointmentResource: {
182
+ path: "/sites/{siteId}/bookings/resources/{resourceId}",
183
+ method: "DELETE",
164
184
  auth: "user",
165
- responseKind: "stream"
185
+ responseKind: "json",
186
+ errors: ["resource:not_found", "server:internal_error"]
166
187
  },
167
- aiPlaygroundPageConvert: {
168
- path: "/sites/{siteId}/ai/playground/page-convert",
169
- method: "POST",
188
+ listAppointmentReservations: {
189
+ path: "/sites/{siteId}/bookings/appointment-reservations",
190
+ method: "GET",
170
191
  auth: "user",
171
- responseKind: "json"
192
+ responseKind: "json",
193
+ errors: []
172
194
  },
173
- aiPlaygroundPageConvertJobsCreate: {
174
- path: "/sites/{siteId}/ai/playground/page-convert/jobs",
195
+ createAppointmentReservation: {
196
+ path: "/sites/{siteId}/bookings/appointment-reservations",
175
197
  method: "POST",
176
198
  auth: "user",
177
- responseKind: "json"
199
+ responseKind: "json",
200
+ errors: [
201
+ "validation:invalid_input",
202
+ "resource:not_found",
203
+ "resource:conflict",
204
+ "server:internal_error"
205
+ ]
178
206
  },
179
- aiPlaygroundPageConvertJobsList: {
180
- path: "/sites/{siteId}/ai/playground/page-convert/jobs",
207
+ getAppointmentReservation: {
208
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}",
181
209
  method: "GET",
182
210
  auth: "user",
183
- responseKind: "json"
211
+ responseKind: "json",
212
+ errors: ["resource:not_found", "server:internal_error"]
184
213
  },
185
- aiPlaygroundPageConvertJobGet: {
186
- path: "/sites/{siteId}/ai/playground/page-convert/jobs/{jobId}",
187
- method: "GET",
214
+ updateAppointmentReservation: {
215
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}",
216
+ method: "PUT",
188
217
  auth: "user",
189
- responseKind: "json"
218
+ responseKind: "json",
219
+ errors: [
220
+ "validation:invalid_input",
221
+ "resource:not_found",
222
+ "resource:conflict",
223
+ "server:internal_error"
224
+ ]
190
225
  },
191
- aiPlaygroundPageConvertJobRun: {
192
- path: "/sites/{siteId}/ai/playground/page-convert/jobs/{jobId}/run",
226
+ pauseAppointmentReservation: {
227
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/pause",
193
228
  method: "POST",
194
229
  auth: "user",
195
- responseKind: "json"
196
- },
197
- aiPlaygroundPageConvertJobEvents: {
198
- path: "/sites/{siteId}/ai/playground/page-convert/jobs/{jobId}/events",
199
- method: "GET",
200
- auth: "user",
201
- responseKind: "json"
230
+ responseKind: "json",
231
+ errors: [
232
+ "resource:not_found",
233
+ "resource:conflict",
234
+ "server:internal_error"
235
+ ]
202
236
  },
203
- aiGenerateSite: {
204
- path: "/sites/{siteId}/ai/generate",
237
+ resumeAppointmentReservation: {
238
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/resume",
205
239
  method: "POST",
206
240
  auth: "user",
207
241
  responseKind: "json",
208
- demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
209
- },
210
- getOnboardingPreviewStatus: {
211
- path: "/public/sites/{siteId}/onboarding/preview-status",
212
- method: "GET",
213
- auth: "public",
214
- errors: [],
215
- responseKind: "json"
216
- },
217
- listOnboardingPreviewThemes: {
218
- path: "/public/sites/{siteId}/onboarding/themes",
219
- method: "GET",
220
- auth: "public",
221
- errors: [],
222
- responseKind: "json"
242
+ errors: [
243
+ "resource:not_found",
244
+ "resource:conflict",
245
+ "server:internal_error"
246
+ ]
223
247
  },
224
- acknowledgeLaunchRequirement: {
225
- path: "/sites/{siteId}/launch/acknowledge-requirement",
248
+ endAppointmentReservation: {
249
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/end",
226
250
  method: "POST",
227
251
  auth: "user",
228
- errors: [],
229
252
  responseKind: "json",
230
- demoMutation: DEMO_MUTATION_BLOCKED_DISABLED
253
+ errors: [
254
+ "validation:invalid_input",
255
+ "resource:not_found",
256
+ "resource:conflict",
257
+ "server:internal_error"
258
+ ]
231
259
  },
232
- goLiveSite: {
233
- path: "/sites/{siteId}/launch/go-live",
260
+ previewAppointmentReservationRun: {
261
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/run-preview",
234
262
  method: "POST",
235
263
  auth: "user",
236
- errors: [],
237
- responseKind: "json"
264
+ responseKind: "json",
265
+ errors: [
266
+ "validation:invalid_input",
267
+ "resource:not_found",
268
+ "resource:conflict",
269
+ "server:internal_error"
270
+ ]
238
271
  },
239
- resendOnboardingPreviewConfirmation: {
240
- path: "/public/sites/{siteId}/onboarding/resend-confirmation",
272
+ createAppointmentReservationRun: {
273
+ path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/runs",
241
274
  method: "POST",
242
- auth: "public",
243
- errors: [],
244
- responseKind: "json"
275
+ auth: "user",
276
+ responseKind: "json",
277
+ errors: [
278
+ "validation:invalid_input",
279
+ "resource:not_found",
280
+ "resource:conflict",
281
+ "server:internal_error"
282
+ ]
245
283
  },
246
- createPublicOnboardingAttempt: {
247
- path: "/public/onboarding/attempts",
284
+ createTeamMemberProfile: {
285
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/profile",
248
286
  method: "POST",
249
- auth: "public",
250
- errors: [],
251
- responseKind: "json"
252
- },
253
- createPublicOnboardingLogoUploadUrl: {
254
- path: "/public/onboarding/attempts/{attemptToken}/logo-upload-url",
255
- method: "POST",
256
- auth: "public",
257
- errors: [],
258
- responseKind: "json"
259
- },
260
- uploadPublicOnboardingLogo: {
261
- path: "/public/onboarding/attempts/{attemptToken}/logo",
262
- method: "POST",
263
- auth: "public",
264
- errors: [],
265
- responseKind: "json"
266
- },
267
- getPublicOnboardingAttempt: {
268
- path: "/public/onboarding/attempts/{attemptToken}",
269
- method: "GET",
270
- auth: "public",
271
- errors: [],
272
- responseKind: "json"
287
+ auth: "user",
288
+ responseKind: "json",
289
+ errors: [
290
+ "validation:invalid_input",
291
+ "resource:not_found",
292
+ "resource:conflict",
293
+ "server:internal_error"
294
+ ]
273
295
  },
274
- getPublicOnboardingAttemptProgress: {
275
- path: "/public/onboarding/attempts/{attemptToken}/status",
276
- method: "GET",
277
- auth: "public",
278
- errors: [],
279
- responseKind: "json"
296
+ updateTeamMemberProfilePolicy: {
297
+ path: "/sites/{siteId}/bookings/resources/profile-policy",
298
+ method: "PUT",
299
+ auth: "user",
300
+ responseKind: "json",
301
+ errors: ["validation:invalid_input", "server:internal_error"]
280
302
  },
281
- updatePublicOnboardingAttempt: {
282
- path: "/public/onboarding/attempts/{attemptToken}",
283
- method: "PATCH",
284
- auth: "public",
285
- errors: [],
286
- responseKind: "json"
303
+ updateTeamMemberProfileContent: {
304
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/content",
305
+ method: "PUT",
306
+ tags: [
307
+ "site-{siteId}",
308
+ "content-{siteId}-team-member",
309
+ "content-entry-{entryId}"
310
+ ],
311
+ auth: "user",
312
+ responseKind: "json",
313
+ errors: [
314
+ "validation:invalid_input",
315
+ "resource:not_found",
316
+ "resource:conflict",
317
+ "server:internal_error"
318
+ ]
287
319
  },
288
- runPublicOnboardingAttempt: {
289
- path: "/public/onboarding/attempts/{attemptToken}/run",
320
+ publishTeamMemberProfile: {
321
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/publish",
290
322
  method: "POST",
291
- auth: "public",
292
- errors: [],
293
- responseKind: "json"
323
+ tags: [
324
+ "site-{siteId}",
325
+ "content-{siteId}-team-member",
326
+ "content-entry-{entryId}"
327
+ ],
328
+ auth: "user",
329
+ responseKind: "json",
330
+ errors: [
331
+ "validation:invalid_input",
332
+ "resource:not_found",
333
+ "server:internal_error"
334
+ ]
294
335
  },
295
- aiSiteWizardSuggestGoals: {
296
- path: "/sites/{siteId}/ai/site-wizard/goals",
336
+ discardTeamMemberProfileDraft: {
337
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/discard",
297
338
  method: "POST",
339
+ tags: [
340
+ "site-{siteId}",
341
+ "content-{siteId}-team-member",
342
+ "content-entry-{entryId}"
343
+ ],
298
344
  auth: "user",
299
345
  responseKind: "json",
300
- demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
346
+ errors: [
347
+ "validation:invalid_input",
348
+ "resource:not_found",
349
+ "resource:conflict",
350
+ "server:internal_error"
351
+ ]
301
352
  },
302
- aiSiteWizardIntakeTriage: {
303
- path: "/sites/{siteId}/ai/site-wizard/intake-triage",
353
+ unpublishTeamMemberProfile: {
354
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/unpublish",
304
355
  method: "POST",
356
+ tags: [
357
+ "site-{siteId}",
358
+ "content-{siteId}-team-member",
359
+ "content-entry-{entryId}"
360
+ ],
305
361
  auth: "user",
306
362
  responseKind: "json",
307
- demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
363
+ errors: [
364
+ "validation:invalid_input",
365
+ "resource:not_found",
366
+ "resource:conflict",
367
+ "server:internal_error"
368
+ ]
308
369
  },
309
- aiSiteWizardTelemetry: {
310
- path: "/sites/{siteId}/ai/site-wizard/telemetry",
370
+ scheduleTeamMemberProfile: {
371
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/schedule",
311
372
  method: "POST",
373
+ tags: [
374
+ "site-{siteId}",
375
+ "content-{siteId}-team-member",
376
+ "content-entry-{entryId}"
377
+ ],
312
378
  auth: "user",
313
- errors: [],
314
379
  responseKind: "json",
315
- demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
380
+ errors: [
381
+ "validation:invalid_input",
382
+ "resource:not_found",
383
+ "resource:conflict",
384
+ "server:internal_error"
385
+ ]
316
386
  },
317
- listGscPropertiesAdmin: {
318
- path: "/admin/seo/gsc/properties",
387
+ cancelScheduledTeamMemberProfile: {
388
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/schedule",
389
+ method: "DELETE",
390
+ tags: [
391
+ "site-{siteId}",
392
+ "content-{siteId}-team-member",
393
+ "content-entry-{entryId}"
394
+ ],
395
+ auth: "user",
396
+ responseKind: "json",
397
+ errors: [
398
+ "validation:invalid_input",
399
+ "resource:not_found",
400
+ "resource:conflict",
401
+ "server:internal_error"
402
+ ]
403
+ },
404
+ updateTeamMemberProfileRouteMetadata: {
405
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/routes/{routeId}/metadata",
406
+ method: "PATCH",
407
+ tags: [
408
+ TAG_TEMPLATES.siteCollection,
409
+ TAG_TEMPLATES.siteRoutableContent,
410
+ TAG_TEMPLATES.routeById
411
+ ],
412
+ auth: "user",
413
+ responseKind: "json",
414
+ errors: [
415
+ "validation:invalid_input",
416
+ "resource:not_found",
417
+ "resource:conflict",
418
+ "server:internal_error"
419
+ ]
420
+ },
421
+ listAppointmentServices: {
422
+ path: "/sites/{siteId}/bookings/services",
319
423
  method: "GET",
320
- auth: "admin",
321
- errors: [],
424
+ auth: "user",
322
425
  responseKind: "json"
323
426
  },
324
- getPublicChallenge: {
325
- path: "/public/challenge",
427
+ exportAppointmentServicesCsv: {
428
+ path: "/sites/{siteId}/bookings/services/export.csv",
326
429
  method: "GET",
327
- auth: "public",
430
+ tags: [
431
+ "site-{siteId}",
432
+ "bookings",
433
+ "appointment-services-{siteId}"
434
+ ],
328
435
  errors: [],
329
- responseKind: "text"
436
+ auth: "user",
437
+ responseKind: "blob"
330
438
  },
331
- checkRedirect: {
332
- path: "/public/content/redirect",
333
- method: "GET",
334
- revalidate: 86400,
335
- tags: ["redirect"],
336
- errors: [],
337
- auth: "public",
338
- responseKind: "json"
439
+ createAppointmentService: {
440
+ path: "/sites/{siteId}/bookings/services",
441
+ method: "POST",
442
+ auth: "user",
443
+ responseKind: "json",
444
+ errors: ["validation:invalid_input", "server:internal_error"]
339
445
  },
340
- listRedirectRules: {
341
- path: "/sites/{siteId}/redirects",
446
+ getAppointmentService: {
447
+ path: "/sites/{siteId}/bookings/services/{serviceId}",
342
448
  method: "GET",
343
449
  auth: "user",
344
450
  responseKind: "json"
345
451
  },
346
- createRedirectRule: {
347
- path: "/sites/{siteId}/redirects",
348
- method: "POST",
349
- errors: ["validation:invalid_input", "resource:not_found"],
452
+ updateAppointmentService: {
453
+ path: "/sites/{siteId}/bookings/services/{serviceId}",
454
+ method: "PUT",
350
455
  auth: "user",
351
- responseKind: "json"
456
+ responseKind: "json",
457
+ errors: [
458
+ "validation:invalid_input",
459
+ "resource:not_found",
460
+ "server:internal_error"
461
+ ]
352
462
  },
353
- deleteRedirectRule: {
354
- path: "/sites/{siteId}/redirects/{ruleId}",
463
+ deleteAppointmentService: {
464
+ path: "/sites/{siteId}/bookings/services/{serviceId}",
355
465
  method: "DELETE",
356
- errors: ["resource:not_found"],
357
466
  auth: "user",
358
- responseKind: "json"
467
+ responseKind: "json",
468
+ errors: ["resource:not_found", "server:internal_error"]
359
469
  },
360
- listWebhooks: {
361
- path: "/sites/{siteId}/webhooks",
470
+ getAppointmentSetup: {
471
+ path: "/sites/{siteId}/bookings/appointment-setup",
362
472
  method: "GET",
363
- tags: ["site-{siteId}", "webhooks"],
364
473
  auth: "user",
365
- responseKind: "json"
474
+ responseKind: "json",
475
+ errors: ["server:internal_error"]
366
476
  },
367
- createWebhook: {
368
- path: "/sites/{siteId}/webhooks",
477
+ applyAppointmentSetup: {
478
+ path: "/sites/{siteId}/bookings/appointment-setup",
369
479
  method: "POST",
370
- tags: ["site-{siteId}", "webhooks"],
480
+ auth: "user",
481
+ responseKind: "json",
482
+ errors: ["validation:invalid_input", "server:internal_error"]
483
+ },
484
+ getAppointmentServicesReference: {
485
+ path: "/sites/{siteId}/bookings/services/reference",
486
+ method: "GET",
371
487
  auth: "user",
372
488
  responseKind: "json"
373
489
  },
374
- getWebhook: {
375
- path: "/sites/{siteId}/webhooks/{webhookId}",
490
+ getAppointmentResourcesReference: {
491
+ path: "/sites/{siteId}/bookings/resources/reference",
376
492
  method: "GET",
377
- tags: ["site-{siteId}", "webhooks"],
378
493
  auth: "user",
379
494
  responseKind: "json"
380
495
  },
381
- updateWebhook: {
382
- path: "/sites/{siteId}/webhooks/{webhookId}",
383
- method: "PATCH",
384
- tags: ["site-{siteId}", "webhooks"],
496
+ getResourceServices: {
497
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/services",
498
+ method: "GET",
385
499
  auth: "user",
386
500
  responseKind: "json"
387
501
  },
388
- deleteWebhook: {
389
- path: "/sites/{siteId}/webhooks/{webhookId}",
390
- method: "DELETE",
391
- tags: ["site-{siteId}", "webhooks"],
502
+ updateResourceServices: {
503
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/services",
504
+ method: "PUT",
392
505
  auth: "user",
393
506
  responseKind: "json"
394
507
  },
395
- getSdkDeploymentHealth: {
396
- path: "/sites/{siteId}/sdk-deployment/health",
508
+ getServiceResources: {
509
+ path: "/sites/{siteId}/bookings/services/{serviceId}/resources",
397
510
  method: "GET",
398
- tags: ["site-{siteId}", "webhooks"],
399
511
  auth: "user",
400
- errors: [],
401
512
  responseKind: "json"
402
513
  },
403
- setupSdkDeploymentRevalidationWebhook: {
404
- path: "/sites/{siteId}/sdk-deployment/revalidation-webhook",
405
- method: "POST",
406
- tags: ["site-{siteId}", "webhooks"],
514
+ updateServiceResources: {
515
+ path: "/sites/{siteId}/bookings/services/{serviceId}/resources",
516
+ method: "PUT",
407
517
  auth: "user",
408
- errors: ["validation:invalid_input", "resource:conflict"],
409
- responseKind: "json",
410
- demoMutation: DEMO_MUTATION_BLOCKED_DISABLED
518
+ responseKind: "json"
411
519
  },
412
- listSiteApiKeys: {
413
- path: "/sites/{siteId}/api-keys",
520
+ listAvailabilityRules: {
521
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/availability",
414
522
  method: "GET",
415
523
  auth: "user",
416
- tags: ["site-{siteId}", "api-keys"],
417
- responseKind: "json"
524
+ responseKind: "json",
525
+ errors: ["resource:not_found", "server:internal_error"]
418
526
  },
419
- createSiteApiKey: {
420
- path: "/sites/{siteId}/api-keys",
421
- method: "POST",
527
+ setWeeklyAvailability: {
528
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/weekly-availability",
529
+ method: "PUT",
422
530
  auth: "user",
423
- tags: ["site-{siteId}", "api-keys"],
424
- responseKind: "json"
531
+ responseKind: "json",
532
+ errors: [
533
+ "validation:invalid_input",
534
+ "resource:not_found",
535
+ "server:internal_error"
536
+ ]
425
537
  },
426
- revokeSiteApiKey: {
427
- path: "/sites/{siteId}/api-keys/{keyId}",
538
+ setServiceSpecificAvailability: {
539
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/service-availability",
540
+ method: "PUT",
541
+ auth: "user",
542
+ responseKind: "json",
543
+ errors: [
544
+ "validation:invalid_input",
545
+ "resource:not_found",
546
+ "server:internal_error"
547
+ ]
548
+ },
549
+ deleteServiceSpecificAvailability: {
550
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/service-availability/{scheduleId}",
428
551
  method: "DELETE",
429
552
  auth: "user",
430
- tags: ["site-{siteId}", "api-keys"],
431
- responseKind: "json"
553
+ responseKind: "json",
554
+ errors: ["resource:not_found", "server:internal_error"]
432
555
  },
433
- getSitePreviewKey: {
434
- path: "/sites/{siteId}/api-keys/preview",
556
+ listBlackouts: {
557
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/blackouts",
435
558
  method: "GET",
436
559
  auth: "user",
437
- tags: [
438
- "site-{siteId}",
439
- "api-keys",
440
- "preview-key"
441
- ],
442
- responseKind: "json"
560
+ responseKind: "json",
561
+ errors: ["resource:not_found", "server:internal_error"]
443
562
  },
444
- createSitePreviewKey: {
445
- path: "/sites/{siteId}/api-keys/preview",
563
+ createBlackout: {
564
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/blackouts",
446
565
  method: "POST",
447
566
  auth: "user",
448
- tags: [
449
- "site-{siteId}",
450
- "api-keys",
451
- "preview-key"
452
- ],
453
- responseKind: "json"
567
+ responseKind: "json",
568
+ errors: [
569
+ "validation:invalid_input",
570
+ "resource:not_found",
571
+ "server:internal_error"
572
+ ]
454
573
  },
455
- getSiteApiKeyAccessLogs: {
456
- path: "/sites/{siteId}/api-keys/access-logs",
574
+ deleteBlackout: {
575
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/blackouts/{blackoutId}",
576
+ method: "DELETE",
577
+ auth: "user",
578
+ responseKind: "json",
579
+ errors: ["resource:not_found", "server:internal_error"]
580
+ },
581
+ getCalendarStatus: {
582
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/calendar",
457
583
  method: "GET",
458
584
  auth: "user",
459
- tags: [
460
- "site-{siteId}",
461
- "api-keys",
462
- "access-logs"
463
- ],
464
- responseKind: "json"
585
+ responseKind: "json",
586
+ errors: ["auth:forbidden", "server:internal_error"]
465
587
  },
466
- listManagementKeys: {
467
- path: "/sites/{siteId}/api-keys/management",
588
+ updateCalendarPreferences: {
589
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/calendar",
590
+ method: "PUT",
591
+ auth: "user",
592
+ responseKind: "json",
593
+ errors: [
594
+ "validation:invalid_input",
595
+ "auth:forbidden",
596
+ "resource:not_found",
597
+ "server:internal_error"
598
+ ]
599
+ },
600
+ disconnectCalendar: {
601
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/calendar",
602
+ method: "DELETE",
603
+ auth: "user",
604
+ responseKind: "json",
605
+ errors: [
606
+ "auth:forbidden",
607
+ "resource:not_found",
608
+ "server:internal_error"
609
+ ]
610
+ },
611
+ getResourceCalendarFeed: {
612
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/calendar/feed",
468
613
  method: "GET",
469
614
  auth: "user",
470
- tags: [
471
- "site-{siteId}",
472
- "api-keys",
473
- "management-keys"
474
- ],
475
- responseKind: "json"
615
+ responseKind: "json",
616
+ errors: [
617
+ "auth:forbidden",
618
+ "resource:not_found",
619
+ "server:internal_error"
620
+ ]
476
621
  },
477
- createManagementKey: {
478
- path: "/sites/{siteId}/api-keys/management",
622
+ regenerateResourceCalendarFeed: {
623
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/calendar/feed",
479
624
  method: "POST",
480
625
  auth: "user",
481
- tags: [
482
- "site-{siteId}",
483
- "api-keys",
484
- "management-keys"
485
- ],
486
- responseKind: "json"
626
+ responseKind: "json",
627
+ errors: [
628
+ "auth:forbidden",
629
+ "resource:not_found",
630
+ "server:internal_error"
631
+ ]
487
632
  },
488
- revokeManagementKey: {
489
- path: "/sites/{siteId}/api-keys/management",
633
+ revokeResourceCalendarFeed: {
634
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/calendar/feed",
490
635
  method: "DELETE",
491
636
  auth: "user",
492
- tags: [
493
- "site-{siteId}",
494
- "api-keys",
495
- "management-keys"
496
- ],
497
- responseKind: "json"
637
+ responseKind: "json",
638
+ errors: [
639
+ "auth:forbidden",
640
+ "resource:not_found",
641
+ "server:internal_error"
642
+ ]
498
643
  },
499
- getBookingSettings: {
500
- path: "/sites/{siteId}/bookings/settings",
644
+ getVenueCalendarFeed: {
645
+ path: "/sites/{siteId}/bookings/venues/{venueId}/calendar/feed",
501
646
  method: "GET",
502
647
  auth: "user",
503
- tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteBookingSettings],
504
- responseKind: "json"
648
+ responseKind: "json",
649
+ errors: [
650
+ "auth:forbidden",
651
+ "resource:not_found",
652
+ "server:internal_error"
653
+ ]
505
654
  },
506
- updateBookingSettings: {
507
- path: "/sites/{siteId}/bookings/settings",
508
- method: "PUT",
655
+ regenerateVenueCalendarFeed: {
656
+ path: "/sites/{siteId}/bookings/venues/{venueId}/calendar/feed",
657
+ method: "POST",
509
658
  auth: "user",
510
- tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteBookingSettings],
511
659
  responseKind: "json",
512
660
  errors: [
513
- "validation:invalid_input",
514
661
  "auth:forbidden",
662
+ "resource:not_found",
515
663
  "server:internal_error"
516
664
  ]
517
665
  },
518
- listBookingClosures: {
519
- path: "/sites/{siteId}/bookings/closures",
520
- method: "GET",
666
+ revokeVenueCalendarFeed: {
667
+ path: "/sites/{siteId}/bookings/venues/{venueId}/calendar/feed",
668
+ method: "DELETE",
521
669
  auth: "user",
522
- tags: [
523
- "site-{siteId}",
524
- "bookings",
525
- "closures-{siteId}"
526
- ],
527
670
  responseKind: "json",
528
- errors: ["auth:forbidden", "server:internal_error"]
671
+ errors: [
672
+ "auth:forbidden",
673
+ "resource:not_found",
674
+ "server:internal_error"
675
+ ]
676
+ },
677
+ googleCalendarAuthorize: {
678
+ path: "/sites/{siteId}/bookings/calendar/google/authorize",
679
+ method: "GET",
680
+ auth: "user",
681
+ responseKind: "void"
682
+ },
683
+ googleCalendarCallback: {
684
+ path: "/bookings/calendar/google/callback",
685
+ method: "GET",
686
+ auth: "user",
687
+ responseKind: "void"
688
+ },
689
+ getAvailableSlots: {
690
+ path: "/sites/{siteId}/bookings/availability/slots",
691
+ method: "GET",
692
+ auth: "user",
693
+ responseKind: "json"
694
+ },
695
+ listAppointments: {
696
+ path: "/sites/{siteId}/bookings/appointments",
697
+ method: "GET",
698
+ auth: "user",
699
+ responseKind: "json"
700
+ },
701
+ exportBookingAppointmentsCsv: {
702
+ path: "/sites/{siteId}/bookings/appointments/export.csv",
703
+ method: "GET",
704
+ auth: "user",
705
+ errors: [],
706
+ responseKind: "blob"
529
707
  },
530
- previewBookingClosure: {
531
- path: "/sites/{siteId}/bookings/closures/preview",
708
+ createAppointment: {
709
+ path: "/sites/{siteId}/bookings/appointments",
532
710
  method: "POST",
533
711
  auth: "user",
534
- tags: [
535
- "site-{siteId}",
536
- "bookings",
537
- "closures-{siteId}"
538
- ],
712
+ responseKind: "json"
713
+ },
714
+ upsertBookingRequirementConfig: {
715
+ path: "/sites/{siteId}/bookings/requirements/config",
716
+ method: "PUT",
717
+ auth: "user",
539
718
  responseKind: "json",
540
719
  errors: [
541
720
  "validation:invalid_input",
542
- "auth:forbidden",
721
+ "resource:not_found",
543
722
  "server:internal_error"
544
723
  ]
545
724
  },
546
- createBookingClosure: {
547
- path: "/sites/{siteId}/bookings/closures",
725
+ cancelAppointment: {
726
+ path: "/sites/{siteId}/bookings/appointments/{appointmentId}/cancel",
727
+ method: "POST",
728
+ auth: "user",
729
+ responseKind: "json"
730
+ },
731
+ rescheduleAppointment: {
732
+ path: "/sites/{siteId}/bookings/appointments/{appointmentId}/reschedule",
548
733
  method: "POST",
549
734
  auth: "user",
550
- tags: [
551
- "site-{siteId}",
552
- "bookings",
553
- "closures-{siteId}"
554
- ],
555
735
  responseKind: "json",
556
736
  errors: [
557
737
  "validation:invalid_input",
558
- "resource:conflict",
738
+ "resource:not_found",
559
739
  "auth:forbidden",
740
+ "resource:conflict",
560
741
  "server:internal_error"
561
742
  ]
562
- },
563
- getBookingClosure: {
564
- path: "/sites/{siteId}/bookings/closures/{closureId}",
743
+ }
744
+ });
745
+ //#endregion
746
+ //#region ../api/src/courseEndpointDefinitions.ts
747
+ const COURSE_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
748
+ listCourses: {
749
+ path: "/sites/{siteId}/bookings/courses",
565
750
  method: "GET",
566
751
  auth: "user",
567
- tags: [
568
- "site-{siteId}",
569
- "bookings",
570
- "closures-{siteId}"
571
- ],
572
- responseKind: "json",
573
- errors: ["resource:not_found", "server:internal_error"]
752
+ responseKind: "json"
574
753
  },
575
- deleteBookingClosure: {
576
- path: "/sites/{siteId}/bookings/closures/{closureId}",
577
- method: "DELETE",
578
- auth: "user",
754
+ exportCoursesCsv: {
755
+ path: "/sites/{siteId}/bookings/courses/export.csv",
756
+ method: "GET",
579
757
  tags: [
580
758
  "site-{siteId}",
581
759
  "bookings",
582
- "closures-{siteId}"
760
+ "courses-{siteId}"
583
761
  ],
584
- responseKind: "json",
585
- errors: ["resource:not_found", "server:internal_error"]
762
+ errors: [],
763
+ auth: "user",
764
+ responseKind: "blob"
586
765
  },
587
- opsListUpcomingEventOccurrences: {
588
- path: "/ops/sites/{siteId}/events",
589
- method: "GET",
766
+ createCourse: {
767
+ path: "/sites/{siteId}/bookings/courses",
768
+ method: "POST",
590
769
  auth: "user",
591
- responseKind: "json"
770
+ responseKind: "json",
771
+ errors: [
772
+ "validation:invalid_input",
773
+ "resource:not_found",
774
+ "resource:already_exists",
775
+ "resource:conflict",
776
+ "server:internal_error"
777
+ ]
592
778
  },
593
- opsListOccurrenceAttendees: {
594
- path: "/ops/sites/{siteId}/events/{occurrenceId}/attendees",
779
+ getCourse: {
780
+ path: "/sites/{siteId}/bookings/courses/{courseId}",
595
781
  method: "GET",
596
782
  auth: "user",
597
783
  responseKind: "json"
598
784
  },
599
- opsValidateEventTicket: {
600
- path: "/ops/sites/{siteId}/events/tickets/validate",
601
- method: "POST",
785
+ updateCourse: {
786
+ path: "/sites/{siteId}/bookings/courses/{courseId}",
787
+ method: "PATCH",
602
788
  auth: "user",
603
789
  responseKind: "json",
604
- demoMutation: DEMO_MUTATION_INTERNAL_ONLY,
605
790
  errors: [
606
791
  "validation:invalid_input",
607
- "auth:forbidden",
608
792
  "resource:not_found",
793
+ "resource:conflict",
609
794
  "server:internal_error"
610
795
  ]
611
796
  },
612
- opsUpdateEventAttendeeCheckin: {
613
- path: "/ops/sites/{siteId}/events/attendees/{attendeeId}/checkin",
614
- method: "POST",
797
+ deleteCourse: {
798
+ path: "/sites/{siteId}/bookings/courses/{courseId}",
799
+ method: "DELETE",
615
800
  auth: "user",
616
801
  responseKind: "json",
617
- demoMutation: DEMO_MUTATION_INTERNAL_ONLY,
618
802
  errors: [
619
803
  "validation:invalid_input",
620
- "auth:forbidden",
621
804
  "resource:not_found",
805
+ "resource:conflict",
622
806
  "server:internal_error"
623
807
  ]
624
808
  },
625
- opsGetEventAttendeeDetails: {
626
- path: "/ops/sites/{siteId}/events/attendees/{attendeeId}",
627
- method: "GET",
628
- auth: "user",
629
- responseKind: "json"
630
- },
631
- opsCancelEventAttendee: {
632
- path: "/ops/sites/{siteId}/events/attendees/{attendeeId}/cancel",
633
- method: "POST",
809
+ deleteEventOffering: {
810
+ path: "/sites/{siteId}/bookings/event-offerings/{eventOfferingId}",
811
+ method: "DELETE",
634
812
  auth: "user",
635
813
  responseKind: "json",
636
- demoMutation: DEMO_MUTATION_INTERNAL_ONLY,
637
814
  errors: [
638
815
  "validation:invalid_input",
639
- "auth:forbidden",
640
816
  "resource:not_found",
641
817
  "resource:conflict",
642
818
  "server:internal_error"
643
819
  ]
644
820
  },
645
- getEventAttendeeDetails: {
646
- path: "/sites/{siteId}/bookings/event-attendees/{attendeeId}",
647
- method: "GET",
821
+ duplicateCourse: {
822
+ path: "/sites/{siteId}/bookings/courses/{courseId}/duplicate",
823
+ method: "POST",
648
824
  auth: "user",
649
825
  responseKind: "json",
650
- errors: []
826
+ errors: [
827
+ "validation:invalid_input",
828
+ "resource:not_found",
829
+ "resource:already_exists",
830
+ "server:internal_error"
831
+ ]
651
832
  },
652
- cancelEventAttendee: {
653
- path: "/sites/{siteId}/bookings/event-attendees/{attendeeId}/cancel",
833
+ changeCourseContentOwnership: {
834
+ path: "/sites/{siteId}/bookings/courses/{courseId}/content-ownership",
654
835
  method: "POST",
655
836
  auth: "user",
656
837
  responseKind: "json",
657
838
  errors: [
658
839
  "validation:invalid_input",
659
- "auth:forbidden",
660
840
  "resource:not_found",
661
841
  "resource:conflict",
662
842
  "server:internal_error"
663
843
  ]
664
844
  },
665
- opsRefundEventAttendee: {
666
- path: "/ops/sites/{siteId}/events/attendees/{attendeeId}/refund",
845
+ addCourseEnrollment: {
846
+ path: "/sites/{siteId}/bookings/courses/{courseId}/enrollments",
667
847
  method: "POST",
668
848
  auth: "user",
669
849
  responseKind: "json",
670
- demoMutation: DEMO_MUTATION_INTERNAL_ONLY,
671
850
  errors: [
672
851
  "validation:invalid_input",
673
- "auth:forbidden",
674
852
  "resource:not_found",
675
853
  "resource:conflict",
676
854
  "server:internal_error"
677
855
  ]
678
856
  },
679
- getEmailSettings: {
680
- path: "/sites/{siteId}/settings/emails",
857
+ listCourseEnrollments: {
858
+ path: "/sites/{siteId}/bookings/courses/{courseId}/enrollments",
681
859
  method: "GET",
682
- tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings],
683
860
  auth: "user",
684
861
  responseKind: "json"
685
862
  },
686
- updateEmailSettings: {
687
- path: "/sites/{siteId}/settings/emails",
688
- method: "PUT",
689
- tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings],
863
+ exportCourseEnrollmentsCsv: {
864
+ path: "/sites/{siteId}/bookings/courses/{courseId}/enrollments/export.csv",
865
+ method: "GET",
690
866
  auth: "user",
691
- responseKind: "json"
867
+ errors: [],
868
+ responseKind: "blob"
692
869
  },
693
- sendTestEmail: {
694
- path: "/sites/{siteId}/settings/emails/test",
695
- method: "POST",
696
- tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings],
870
+ exportCourseWaitlistCsv: {
871
+ path: "/sites/{siteId}/bookings/courses/{courseId}/waitlist/export.csv",
872
+ method: "GET",
873
+ tags: [
874
+ "site-{siteId}",
875
+ "bookings",
876
+ "courses-{courseId}"
877
+ ],
697
878
  auth: "user",
698
- responseKind: "json",
699
- demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
879
+ responseKind: "blob",
880
+ errors: []
700
881
  },
701
- previewEmailTemplate: {
702
- path: "/sites/{siteId}/settings/emails/preview",
703
- method: "POST",
704
- tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings],
882
+ updateCourseEnrollment: {
883
+ path: "/sites/{siteId}/bookings/courses/{courseId}/enrollments/{enrollmentId}",
884
+ method: "PATCH",
705
885
  auth: "user",
706
- responseKind: "json"
707
- },
886
+ responseKind: "json",
887
+ errors: [
888
+ "validation:invalid_input",
889
+ "resource:not_found",
890
+ "server:internal_error"
891
+ ]
892
+ }
893
+ });
894
+ //#endregion
895
+ //#region ../api/src/newsletterEndpointDefinitions.ts
896
+ const NEWSLETTER_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
708
897
  getNewsletterSettings: {
709
898
  path: "/sites/{siteId}/newsletter/settings",
710
899
  method: "GET",
@@ -1057,770 +1246,701 @@ const API_ENDPOINTS = {
1057
1246
  tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
1058
1247
  auth: "user",
1059
1248
  responseKind: "json"
1060
- },
1061
- listAppointmentResources: {
1062
- path: "/sites/{siteId}/bookings/resources",
1249
+ }
1250
+ });
1251
+ //#endregion
1252
+ //#region ../api/src/publicWholeSeriesEndpointDefinitions.ts
1253
+ const PUBLIC_WHOLE_SERIES_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
1254
+ listPublicWholeSeriesOfferings: {
1255
+ path: "/public/sites/{siteId}/dated-offerings/whole-series",
1063
1256
  method: "GET",
1064
- auth: "user",
1257
+ revalidate: 60,
1258
+ tags: [TAG_TEMPLATES.publicWholeSeriesOfferings],
1259
+ errors: ["server:internal_error"],
1260
+ auth: "public",
1065
1261
  responseKind: "json"
1066
1262
  },
1067
- createAppointmentResource: {
1068
- path: "/sites/{siteId}/bookings/resources",
1069
- method: "POST",
1070
- auth: "user",
1071
- responseKind: "json",
1072
- errors: [
1073
- "validation:invalid_input",
1074
- "billing:plan_limit_exceeded",
1075
- "server:internal_error"
1076
- ]
1077
- },
1078
- createAppointmentResourceWithAccountAccess: {
1079
- path: "/sites/{siteId}/bookings/resources/account-access",
1080
- method: "POST",
1081
- auth: "user",
1082
- responseKind: "json",
1083
- errors: [
1084
- "validation:invalid_input",
1085
- "auth:forbidden",
1086
- "billing:plan_limit_exceeded",
1087
- "resource:conflict",
1088
- "resource:not_found",
1089
- "server:internal_error"
1090
- ]
1091
- },
1092
- getAppointmentResource: {
1093
- path: "/sites/{siteId}/bookings/resources/{resourceId}",
1263
+ getPublicWholeSeriesOffering: {
1264
+ path: "/public/sites/{siteId}/dated-offerings/whole-series/{eventSeriesId}",
1094
1265
  method: "GET",
1095
- auth: "user",
1266
+ revalidate: 60,
1267
+ tags: [TAG_TEMPLATES.publicWholeSeriesOfferings],
1268
+ errors: ["resource:not_found", "server:internal_error"],
1269
+ auth: "public",
1096
1270
  responseKind: "json"
1097
1271
  },
1098
- updateAppointmentResource: {
1099
- path: "/sites/{siteId}/bookings/resources/{resourceId}",
1100
- method: "PUT",
1101
- auth: "user",
1102
- responseKind: "json",
1103
- errors: [
1104
- "validation:invalid_input",
1105
- "resource:not_found",
1106
- "server:internal_error"
1107
- ]
1108
- },
1109
- removeAppointmentResource: {
1110
- path: "/sites/{siteId}/bookings/resources/{resourceId}",
1111
- method: "DELETE",
1112
- auth: "user",
1113
- responseKind: "json",
1114
- errors: ["resource:not_found", "server:internal_error"]
1115
- },
1116
- listAppointmentReservations: {
1117
- path: "/sites/{siteId}/bookings/appointment-reservations",
1118
- method: "GET",
1119
- auth: "user",
1120
- responseKind: "json",
1121
- errors: []
1122
- },
1123
- createAppointmentReservation: {
1124
- path: "/sites/{siteId}/bookings/appointment-reservations",
1272
+ registerForWholeSeries: {
1273
+ path: "/public/sites/{siteId}/dated-offerings/whole-series/enroll",
1125
1274
  method: "POST",
1126
- auth: "user",
1127
- responseKind: "json",
1275
+ tags: [TAG_TEMPLATES.publicWholeSeriesOfferings, "course-enrollment"],
1128
1276
  errors: [
1277
+ "auth:unauthenticated",
1278
+ "auth:forbidden",
1129
1279
  "validation:invalid_input",
1130
1280
  "resource:not_found",
1131
1281
  "resource:conflict",
1282
+ "resource:already_exists",
1132
1283
  "server:internal_error"
1133
- ]
1134
- },
1135
- getAppointmentReservation: {
1136
- path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}",
1137
- method: "GET",
1138
- auth: "user",
1139
- responseKind: "json",
1140
- errors: ["resource:not_found", "server:internal_error"]
1284
+ ],
1285
+ auth: "public",
1286
+ responseKind: "json"
1141
1287
  },
1142
- updateAppointmentReservation: {
1143
- path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}",
1144
- method: "PUT",
1145
- auth: "user",
1146
- responseKind: "json",
1288
+ checkWholeSeriesEligibility: {
1289
+ path: "/public/sites/{siteId}/dated-offerings/whole-series/check-eligibility",
1290
+ method: "POST",
1291
+ tags: [TAG_TEMPLATES.publicWholeSeriesOfferings, "course-enrollment"],
1147
1292
  errors: [
1148
- "validation:invalid_input",
1293
+ "auth:unauthenticated",
1149
1294
  "resource:not_found",
1150
1295
  "resource:conflict",
1151
1296
  "server:internal_error"
1152
- ]
1297
+ ],
1298
+ auth: "public",
1299
+ responseKind: "json"
1153
1300
  },
1154
- pauseAppointmentReservation: {
1155
- path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/pause",
1301
+ createWholeSeriesCheckout: {
1302
+ path: "/public/sites/{siteId}/dated-offerings/whole-series/checkout",
1156
1303
  method: "POST",
1157
- auth: "user",
1304
+ tags: [TAG_TEMPLATES.publicWholeSeriesOfferings, "course-checkout"],
1305
+ auth: "public",
1158
1306
  responseKind: "json",
1159
1307
  errors: [
1308
+ "auth:unauthenticated",
1309
+ "validation:invalid_input",
1160
1310
  "resource:not_found",
1161
1311
  "resource:conflict",
1162
1312
  "server:internal_error"
1163
1313
  ]
1164
1314
  },
1165
- resumeAppointmentReservation: {
1166
- path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/resume",
1315
+ getWholeSeriesRegistrationStatus: {
1316
+ path: "/public/sites/{siteId}/dated-offerings/whole-series/registration-status",
1317
+ method: "GET",
1318
+ tags: [TAG_TEMPLATES.publicWholeSeriesOfferings, "course-checkout"],
1319
+ errors: ["resource:not_found", "server:internal_error"],
1320
+ auth: "public",
1321
+ responseKind: "json"
1322
+ }
1323
+ });
1324
+ const API_ENDPOINTS = {
1325
+ aiContentUpdateChat: {
1326
+ path: "/ai/content-update-chat",
1167
1327
  method: "POST",
1168
1328
  auth: "user",
1169
- responseKind: "json",
1170
- errors: [
1171
- "resource:not_found",
1172
- "resource:conflict",
1173
- "server:internal_error"
1174
- ]
1329
+ responseKind: "stream"
1175
1330
  },
1176
- endAppointmentReservation: {
1177
- path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/end",
1331
+ aiChat: {
1332
+ path: "/ai/chat",
1178
1333
  method: "POST",
1179
1334
  auth: "user",
1180
- responseKind: "json",
1181
- errors: [
1182
- "validation:invalid_input",
1183
- "resource:not_found",
1184
- "resource:conflict",
1185
- "server:internal_error"
1186
- ]
1335
+ responseKind: "stream"
1187
1336
  },
1188
- previewAppointmentReservationRun: {
1189
- path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/run-preview",
1337
+ aiDesignerThemeApply: {
1338
+ path: "/sites/{siteId}/ai/designer/theme/apply",
1190
1339
  method: "POST",
1340
+ tags: [TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme],
1191
1341
  auth: "user",
1192
- responseKind: "json",
1193
- errors: [
1194
- "validation:invalid_input",
1195
- "resource:not_found",
1196
- "resource:conflict",
1197
- "server:internal_error"
1198
- ]
1342
+ responseKind: "json"
1199
1343
  },
1200
- createAppointmentReservationRun: {
1201
- path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/runs",
1344
+ aiDesignerPageOpsApply: {
1345
+ path: "/sites/{siteId}/ai/designer/page/apply",
1202
1346
  method: "POST",
1347
+ tags: [TAG_TEMPLATES.siteCollection],
1203
1348
  auth: "user",
1204
- responseKind: "json",
1205
- errors: [
1206
- "validation:invalid_input",
1207
- "resource:not_found",
1208
- "resource:conflict",
1209
- "server:internal_error"
1210
- ]
1349
+ responseKind: "json"
1211
1350
  },
1212
- createTeamMemberProfile: {
1213
- path: "/sites/{siteId}/bookings/resources/{resourceId}/profile",
1351
+ applySeoChanges: {
1352
+ path: "/seo/apply",
1214
1353
  method: "POST",
1215
1354
  auth: "user",
1216
- responseKind: "json",
1217
- errors: [
1218
- "validation:invalid_input",
1219
- "resource:not_found",
1220
- "resource:conflict",
1221
- "server:internal_error"
1222
- ]
1355
+ responseKind: "json"
1223
1356
  },
1224
- updateTeamMemberProfilePolicy: {
1225
- path: "/sites/{siteId}/bookings/resources/profile-policy",
1226
- method: "PUT",
1357
+ aiCreateBriefChat: {
1358
+ path: "/ai/chat/create-brief",
1359
+ method: "POST",
1227
1360
  auth: "user",
1228
- responseKind: "json",
1229
- errors: ["validation:invalid_input", "server:internal_error"]
1361
+ responseKind: "json"
1230
1362
  },
1231
- updateTeamMemberProfileContent: {
1232
- path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/content",
1233
- method: "PUT",
1234
- tags: [
1235
- "site-{siteId}",
1236
- "content-{siteId}-team-member",
1237
- "content-entry-{entryId}"
1238
- ],
1363
+ aiPatchDryRun: {
1364
+ path: "/ai/patch/dry-run",
1365
+ method: "POST",
1239
1366
  auth: "user",
1240
- responseKind: "json",
1241
- errors: [
1242
- "validation:invalid_input",
1243
- "resource:not_found",
1244
- "resource:conflict",
1245
- "server:internal_error"
1246
- ]
1367
+ responseKind: "json"
1247
1368
  },
1248
- publishTeamMemberProfile: {
1249
- path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/publish",
1369
+ aiPatchApply: {
1370
+ path: "/ai/patch/apply",
1250
1371
  method: "POST",
1251
- tags: [
1252
- "site-{siteId}",
1253
- "content-{siteId}-team-member",
1254
- "content-entry-{entryId}"
1255
- ],
1256
1372
  auth: "user",
1257
- responseKind: "json",
1258
- errors: [
1259
- "validation:invalid_input",
1260
- "resource:not_found",
1261
- "server:internal_error"
1262
- ]
1373
+ responseKind: "json"
1263
1374
  },
1264
- discardTeamMemberProfileDraft: {
1265
- path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/discard",
1375
+ aiPlaygroundProposeMulti: {
1376
+ path: "/sites/{siteId}/ai/playground/propose-multi",
1266
1377
  method: "POST",
1267
- tags: [
1268
- "site-{siteId}",
1269
- "content-{siteId}-team-member",
1270
- "content-entry-{entryId}"
1271
- ],
1272
1378
  auth: "user",
1273
- responseKind: "json",
1274
- errors: [
1275
- "validation:invalid_input",
1276
- "resource:not_found",
1277
- "resource:conflict",
1278
- "server:internal_error"
1279
- ]
1379
+ responseKind: "stream"
1280
1380
  },
1281
- unpublishTeamMemberProfile: {
1282
- path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/unpublish",
1381
+ aiPlaygroundProposeMultiGet: {
1382
+ path: "/sites/{siteId}/ai/playground/propose-multi",
1383
+ method: "GET",
1384
+ auth: "user",
1385
+ responseKind: "stream"
1386
+ },
1387
+ aiAssistantChatSite: {
1388
+ path: "/sites/{siteId}/ai/assistant/chat",
1283
1389
  method: "POST",
1284
- tags: [
1285
- "site-{siteId}",
1286
- "content-{siteId}-team-member",
1287
- "content-entry-{entryId}"
1288
- ],
1289
1390
  auth: "user",
1290
- responseKind: "json",
1291
- errors: [
1292
- "validation:invalid_input",
1293
- "resource:not_found",
1294
- "resource:conflict",
1295
- "server:internal_error"
1296
- ]
1391
+ responseKind: "stream"
1297
1392
  },
1298
- scheduleTeamMemberProfile: {
1299
- path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/schedule",
1393
+ aiDesignerChat: {
1394
+ path: "/sites/{siteId}/ai/designer/chat",
1300
1395
  method: "POST",
1301
- tags: [
1302
- "site-{siteId}",
1303
- "content-{siteId}-team-member",
1304
- "content-entry-{entryId}"
1305
- ],
1306
1396
  auth: "user",
1307
- responseKind: "json",
1308
- errors: [
1309
- "validation:invalid_input",
1310
- "resource:not_found",
1311
- "resource:conflict",
1312
- "server:internal_error"
1313
- ]
1397
+ responseKind: "stream"
1314
1398
  },
1315
- cancelScheduledTeamMemberProfile: {
1316
- path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/schedule",
1317
- method: "DELETE",
1318
- tags: [
1319
- "site-{siteId}",
1320
- "content-{siteId}-team-member",
1321
- "content-entry-{entryId}"
1322
- ],
1399
+ aiPlaygroundPageConvert: {
1400
+ path: "/sites/{siteId}/ai/playground/page-convert",
1401
+ method: "POST",
1323
1402
  auth: "user",
1324
- responseKind: "json",
1325
- errors: [
1326
- "validation:invalid_input",
1327
- "resource:not_found",
1328
- "resource:conflict",
1329
- "server:internal_error"
1330
- ]
1403
+ responseKind: "json"
1331
1404
  },
1332
- updateTeamMemberProfileRouteMetadata: {
1333
- path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/routes/{routeId}/metadata",
1334
- method: "PATCH",
1335
- tags: [
1336
- TAG_TEMPLATES.siteCollection,
1337
- TAG_TEMPLATES.siteRoutableContent,
1338
- TAG_TEMPLATES.routeById
1339
- ],
1405
+ aiPlaygroundPageConvertJobsCreate: {
1406
+ path: "/sites/{siteId}/ai/playground/page-convert/jobs",
1407
+ method: "POST",
1340
1408
  auth: "user",
1341
- responseKind: "json",
1342
- errors: [
1343
- "validation:invalid_input",
1344
- "resource:not_found",
1345
- "resource:conflict",
1346
- "server:internal_error"
1347
- ]
1409
+ responseKind: "json"
1348
1410
  },
1349
- listAppointmentServices: {
1350
- path: "/sites/{siteId}/bookings/services",
1411
+ aiPlaygroundPageConvertJobsList: {
1412
+ path: "/sites/{siteId}/ai/playground/page-convert/jobs",
1351
1413
  method: "GET",
1352
1414
  auth: "user",
1353
1415
  responseKind: "json"
1354
1416
  },
1355
- exportAppointmentServicesCsv: {
1356
- path: "/sites/{siteId}/bookings/services/export.csv",
1357
- method: "GET",
1358
- tags: [
1359
- "site-{siteId}",
1360
- "bookings",
1361
- "appointment-services-{siteId}"
1362
- ],
1363
- errors: [],
1417
+ aiPlaygroundPageConvertJobGet: {
1418
+ path: "/sites/{siteId}/ai/playground/page-convert/jobs/{jobId}",
1419
+ method: "GET",
1364
1420
  auth: "user",
1365
- responseKind: "blob"
1421
+ responseKind: "json"
1366
1422
  },
1367
- createAppointmentService: {
1368
- path: "/sites/{siteId}/bookings/services",
1423
+ aiPlaygroundPageConvertJobRun: {
1424
+ path: "/sites/{siteId}/ai/playground/page-convert/jobs/{jobId}/run",
1369
1425
  method: "POST",
1370
1426
  auth: "user",
1371
- responseKind: "json",
1372
- errors: ["validation:invalid_input", "server:internal_error"]
1427
+ responseKind: "json"
1373
1428
  },
1374
- getAppointmentService: {
1375
- path: "/sites/{siteId}/bookings/services/{serviceId}",
1429
+ aiPlaygroundPageConvertJobEvents: {
1430
+ path: "/sites/{siteId}/ai/playground/page-convert/jobs/{jobId}/events",
1376
1431
  method: "GET",
1377
1432
  auth: "user",
1378
1433
  responseKind: "json"
1379
1434
  },
1380
- updateAppointmentService: {
1381
- path: "/sites/{siteId}/bookings/services/{serviceId}",
1382
- method: "PUT",
1435
+ aiGenerateSite: {
1436
+ path: "/sites/{siteId}/ai/generate",
1437
+ method: "POST",
1383
1438
  auth: "user",
1384
1439
  responseKind: "json",
1385
- errors: [
1386
- "validation:invalid_input",
1387
- "resource:not_found",
1388
- "server:internal_error"
1389
- ]
1440
+ demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
1390
1441
  },
1391
- deleteAppointmentService: {
1392
- path: "/sites/{siteId}/bookings/services/{serviceId}",
1393
- method: "DELETE",
1394
- auth: "user",
1395
- responseKind: "json",
1396
- errors: ["resource:not_found", "server:internal_error"]
1442
+ getOnboardingPreviewStatus: {
1443
+ path: "/public/sites/{siteId}/onboarding/preview-status",
1444
+ method: "GET",
1445
+ auth: "public",
1446
+ errors: [],
1447
+ responseKind: "json"
1397
1448
  },
1398
- getAppointmentSetup: {
1399
- path: "/sites/{siteId}/bookings/appointment-setup",
1449
+ listOnboardingPreviewThemes: {
1450
+ path: "/public/sites/{siteId}/onboarding/themes",
1400
1451
  method: "GET",
1401
- auth: "user",
1402
- responseKind: "json",
1403
- errors: ["server:internal_error"]
1452
+ auth: "public",
1453
+ errors: [],
1454
+ responseKind: "json"
1404
1455
  },
1405
- applyAppointmentSetup: {
1406
- path: "/sites/{siteId}/bookings/appointment-setup",
1456
+ acknowledgeLaunchRequirement: {
1457
+ path: "/sites/{siteId}/launch/acknowledge-requirement",
1407
1458
  method: "POST",
1408
1459
  auth: "user",
1460
+ errors: [],
1409
1461
  responseKind: "json",
1410
- errors: ["validation:invalid_input", "server:internal_error"]
1462
+ demoMutation: DEMO_MUTATION_BLOCKED_DISABLED
1411
1463
  },
1412
- getAppointmentServicesReference: {
1413
- path: "/sites/{siteId}/bookings/services/reference",
1414
- method: "GET",
1464
+ goLiveSite: {
1465
+ path: "/sites/{siteId}/launch/go-live",
1466
+ method: "POST",
1415
1467
  auth: "user",
1468
+ errors: [],
1416
1469
  responseKind: "json"
1417
1470
  },
1418
- getAppointmentResourcesReference: {
1419
- path: "/sites/{siteId}/bookings/resources/reference",
1420
- method: "GET",
1421
- auth: "user",
1471
+ resendOnboardingPreviewConfirmation: {
1472
+ path: "/public/sites/{siteId}/onboarding/resend-confirmation",
1473
+ method: "POST",
1474
+ auth: "public",
1475
+ errors: [],
1422
1476
  responseKind: "json"
1423
1477
  },
1424
- getResourceServices: {
1425
- path: "/sites/{siteId}/bookings/resources/{resourceId}/services",
1426
- method: "GET",
1427
- auth: "user",
1478
+ createPublicOnboardingAttempt: {
1479
+ path: "/public/onboarding/attempts",
1480
+ method: "POST",
1481
+ auth: "public",
1482
+ errors: [],
1428
1483
  responseKind: "json"
1429
1484
  },
1430
- updateResourceServices: {
1431
- path: "/sites/{siteId}/bookings/resources/{resourceId}/services",
1432
- method: "PUT",
1433
- auth: "user",
1485
+ createPublicOnboardingLogoUploadUrl: {
1486
+ path: "/public/onboarding/attempts/{attemptToken}/logo-upload-url",
1487
+ method: "POST",
1488
+ auth: "public",
1489
+ errors: [],
1434
1490
  responseKind: "json"
1435
1491
  },
1436
- getServiceResources: {
1437
- path: "/sites/{siteId}/bookings/services/{serviceId}/resources",
1438
- method: "GET",
1439
- auth: "user",
1492
+ uploadPublicOnboardingLogo: {
1493
+ path: "/public/onboarding/attempts/{attemptToken}/logo",
1494
+ method: "POST",
1495
+ auth: "public",
1496
+ errors: [],
1440
1497
  responseKind: "json"
1441
1498
  },
1442
- updateServiceResources: {
1443
- path: "/sites/{siteId}/bookings/services/{serviceId}/resources",
1444
- method: "PUT",
1445
- auth: "user",
1499
+ getPublicOnboardingAttempt: {
1500
+ path: "/public/onboarding/attempts/{attemptToken}",
1501
+ method: "GET",
1502
+ auth: "public",
1503
+ errors: [],
1446
1504
  responseKind: "json"
1447
1505
  },
1448
- listAvailabilityRules: {
1449
- path: "/sites/{siteId}/bookings/resources/{resourceId}/availability",
1506
+ getPublicOnboardingAttemptProgress: {
1507
+ path: "/public/onboarding/attempts/{attemptToken}/status",
1450
1508
  method: "GET",
1451
- auth: "user",
1452
- responseKind: "json",
1453
- errors: ["resource:not_found", "server:internal_error"]
1509
+ auth: "public",
1510
+ errors: [],
1511
+ responseKind: "json"
1454
1512
  },
1455
- setWeeklyAvailability: {
1456
- path: "/sites/{siteId}/bookings/resources/{resourceId}/weekly-availability",
1457
- method: "PUT",
1513
+ updatePublicOnboardingAttempt: {
1514
+ path: "/public/onboarding/attempts/{attemptToken}",
1515
+ method: "PATCH",
1516
+ auth: "public",
1517
+ errors: [],
1518
+ responseKind: "json"
1519
+ },
1520
+ runPublicOnboardingAttempt: {
1521
+ path: "/public/onboarding/attempts/{attemptToken}/run",
1522
+ method: "POST",
1523
+ auth: "public",
1524
+ errors: [],
1525
+ responseKind: "json"
1526
+ },
1527
+ aiSiteWizardSuggestGoals: {
1528
+ path: "/sites/{siteId}/ai/site-wizard/goals",
1529
+ method: "POST",
1458
1530
  auth: "user",
1459
1531
  responseKind: "json",
1460
- errors: [
1461
- "validation:invalid_input",
1462
- "resource:not_found",
1463
- "server:internal_error"
1464
- ]
1532
+ demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
1465
1533
  },
1466
- setServiceSpecificAvailability: {
1467
- path: "/sites/{siteId}/bookings/resources/{resourceId}/service-availability",
1468
- method: "PUT",
1534
+ aiSiteWizardIntakeTriage: {
1535
+ path: "/sites/{siteId}/ai/site-wizard/intake-triage",
1536
+ method: "POST",
1469
1537
  auth: "user",
1470
1538
  responseKind: "json",
1471
- errors: [
1472
- "validation:invalid_input",
1473
- "resource:not_found",
1474
- "server:internal_error"
1475
- ]
1539
+ demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
1476
1540
  },
1477
- deleteServiceSpecificAvailability: {
1478
- path: "/sites/{siteId}/bookings/resources/{resourceId}/service-availability/{scheduleId}",
1479
- method: "DELETE",
1541
+ aiSiteWizardTelemetry: {
1542
+ path: "/sites/{siteId}/ai/site-wizard/telemetry",
1543
+ method: "POST",
1480
1544
  auth: "user",
1545
+ errors: [],
1481
1546
  responseKind: "json",
1482
- errors: ["resource:not_found", "server:internal_error"]
1547
+ demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
1483
1548
  },
1484
- listBlackouts: {
1485
- path: "/sites/{siteId}/bookings/resources/{resourceId}/blackouts",
1549
+ listGscPropertiesAdmin: {
1550
+ path: "/admin/seo/gsc/properties",
1551
+ method: "GET",
1552
+ auth: "admin",
1553
+ errors: [],
1554
+ responseKind: "json"
1555
+ },
1556
+ getPublicChallenge: {
1557
+ path: "/public/challenge",
1558
+ method: "GET",
1559
+ auth: "public",
1560
+ errors: [],
1561
+ responseKind: "text"
1562
+ },
1563
+ checkRedirect: {
1564
+ path: "/public/content/redirect",
1565
+ method: "GET",
1566
+ revalidate: 86400,
1567
+ tags: ["redirect"],
1568
+ errors: [],
1569
+ auth: "public",
1570
+ responseKind: "json"
1571
+ },
1572
+ listRedirectRules: {
1573
+ path: "/sites/{siteId}/redirects",
1486
1574
  method: "GET",
1487
1575
  auth: "user",
1488
- responseKind: "json",
1489
- errors: ["resource:not_found", "server:internal_error"]
1576
+ responseKind: "json"
1490
1577
  },
1491
- createBlackout: {
1492
- path: "/sites/{siteId}/bookings/resources/{resourceId}/blackouts",
1578
+ createRedirectRule: {
1579
+ path: "/sites/{siteId}/redirects",
1493
1580
  method: "POST",
1581
+ errors: ["validation:invalid_input", "resource:not_found"],
1494
1582
  auth: "user",
1495
- responseKind: "json",
1496
- errors: [
1497
- "validation:invalid_input",
1498
- "resource:not_found",
1499
- "server:internal_error"
1500
- ]
1583
+ responseKind: "json"
1501
1584
  },
1502
- deleteBlackout: {
1503
- path: "/sites/{siteId}/bookings/resources/{resourceId}/blackouts/{blackoutId}",
1585
+ deleteRedirectRule: {
1586
+ path: "/sites/{siteId}/redirects/{ruleId}",
1504
1587
  method: "DELETE",
1588
+ errors: ["resource:not_found"],
1505
1589
  auth: "user",
1506
- responseKind: "json",
1507
- errors: ["resource:not_found", "server:internal_error"]
1590
+ responseKind: "json"
1508
1591
  },
1509
- getCalendarStatus: {
1510
- path: "/sites/{siteId}/bookings/resources/{resourceId}/calendar",
1592
+ listWebhooks: {
1593
+ path: "/sites/{siteId}/webhooks",
1511
1594
  method: "GET",
1595
+ tags: ["site-{siteId}", "webhooks"],
1512
1596
  auth: "user",
1513
- responseKind: "json",
1514
- errors: ["auth:forbidden", "server:internal_error"]
1597
+ responseKind: "json"
1515
1598
  },
1516
- updateCalendarPreferences: {
1517
- path: "/sites/{siteId}/bookings/resources/{resourceId}/calendar",
1518
- method: "PUT",
1599
+ createWebhook: {
1600
+ path: "/sites/{siteId}/webhooks",
1601
+ method: "POST",
1602
+ tags: ["site-{siteId}", "webhooks"],
1519
1603
  auth: "user",
1520
- responseKind: "json",
1521
- errors: [
1522
- "validation:invalid_input",
1523
- "auth:forbidden",
1524
- "resource:not_found",
1525
- "server:internal_error"
1526
- ]
1604
+ responseKind: "json"
1527
1605
  },
1528
- disconnectCalendar: {
1529
- path: "/sites/{siteId}/bookings/resources/{resourceId}/calendar",
1606
+ getWebhook: {
1607
+ path: "/sites/{siteId}/webhooks/{webhookId}",
1608
+ method: "GET",
1609
+ tags: ["site-{siteId}", "webhooks"],
1610
+ auth: "user",
1611
+ responseKind: "json"
1612
+ },
1613
+ updateWebhook: {
1614
+ path: "/sites/{siteId}/webhooks/{webhookId}",
1615
+ method: "PATCH",
1616
+ tags: ["site-{siteId}", "webhooks"],
1617
+ auth: "user",
1618
+ responseKind: "json"
1619
+ },
1620
+ deleteWebhook: {
1621
+ path: "/sites/{siteId}/webhooks/{webhookId}",
1530
1622
  method: "DELETE",
1623
+ tags: ["site-{siteId}", "webhooks"],
1531
1624
  auth: "user",
1532
- responseKind: "json",
1533
- errors: [
1534
- "auth:forbidden",
1535
- "resource:not_found",
1536
- "server:internal_error"
1537
- ]
1625
+ responseKind: "json"
1538
1626
  },
1539
- getResourceCalendarFeed: {
1540
- path: "/sites/{siteId}/bookings/resources/{resourceId}/calendar/feed",
1627
+ getSdkDeploymentHealth: {
1628
+ path: "/sites/{siteId}/sdk-deployment/health",
1541
1629
  method: "GET",
1630
+ tags: ["site-{siteId}", "webhooks"],
1542
1631
  auth: "user",
1543
- responseKind: "json",
1544
- errors: [
1545
- "auth:forbidden",
1546
- "resource:not_found",
1547
- "server:internal_error"
1548
- ]
1632
+ errors: [],
1633
+ responseKind: "json"
1549
1634
  },
1550
- regenerateResourceCalendarFeed: {
1551
- path: "/sites/{siteId}/bookings/resources/{resourceId}/calendar/feed",
1635
+ setupSdkDeploymentRevalidationWebhook: {
1636
+ path: "/sites/{siteId}/sdk-deployment/revalidation-webhook",
1552
1637
  method: "POST",
1638
+ tags: ["site-{siteId}", "webhooks"],
1553
1639
  auth: "user",
1640
+ errors: ["validation:invalid_input", "resource:conflict"],
1554
1641
  responseKind: "json",
1555
- errors: [
1556
- "auth:forbidden",
1557
- "resource:not_found",
1558
- "server:internal_error"
1559
- ]
1560
- },
1561
- revokeResourceCalendarFeed: {
1562
- path: "/sites/{siteId}/bookings/resources/{resourceId}/calendar/feed",
1563
- method: "DELETE",
1564
- auth: "user",
1565
- responseKind: "json",
1566
- errors: [
1567
- "auth:forbidden",
1568
- "resource:not_found",
1569
- "server:internal_error"
1570
- ]
1642
+ demoMutation: DEMO_MUTATION_BLOCKED_DISABLED
1571
1643
  },
1572
- getVenueCalendarFeed: {
1573
- path: "/sites/{siteId}/bookings/venues/{venueId}/calendar/feed",
1644
+ listSiteApiKeys: {
1645
+ path: "/sites/{siteId}/api-keys",
1574
1646
  method: "GET",
1575
1647
  auth: "user",
1576
- responseKind: "json",
1577
- errors: [
1578
- "auth:forbidden",
1579
- "resource:not_found",
1580
- "server:internal_error"
1581
- ]
1648
+ tags: ["site-{siteId}", "api-keys"],
1649
+ responseKind: "json"
1582
1650
  },
1583
- regenerateVenueCalendarFeed: {
1584
- path: "/sites/{siteId}/bookings/venues/{venueId}/calendar/feed",
1651
+ createSiteApiKey: {
1652
+ path: "/sites/{siteId}/api-keys",
1585
1653
  method: "POST",
1586
1654
  auth: "user",
1587
- responseKind: "json",
1588
- errors: [
1589
- "auth:forbidden",
1590
- "resource:not_found",
1591
- "server:internal_error"
1592
- ]
1655
+ tags: ["site-{siteId}", "api-keys"],
1656
+ responseKind: "json"
1593
1657
  },
1594
- revokeVenueCalendarFeed: {
1595
- path: "/sites/{siteId}/bookings/venues/{venueId}/calendar/feed",
1658
+ revokeSiteApiKey: {
1659
+ path: "/sites/{siteId}/api-keys/{keyId}",
1596
1660
  method: "DELETE",
1597
1661
  auth: "user",
1598
- responseKind: "json",
1599
- errors: [
1600
- "auth:forbidden",
1601
- "resource:not_found",
1602
- "server:internal_error"
1603
- ]
1604
- },
1605
- googleCalendarAuthorize: {
1606
- path: "/sites/{siteId}/bookings/calendar/google/authorize",
1607
- method: "GET",
1608
- auth: "user",
1609
- responseKind: "void"
1662
+ tags: ["site-{siteId}", "api-keys"],
1663
+ responseKind: "json"
1610
1664
  },
1611
- googleCalendarCallback: {
1612
- path: "/bookings/calendar/google/callback",
1665
+ getSitePreviewKey: {
1666
+ path: "/sites/{siteId}/api-keys/preview",
1613
1667
  method: "GET",
1614
1668
  auth: "user",
1615
- responseKind: "void"
1669
+ tags: [
1670
+ "site-{siteId}",
1671
+ "api-keys",
1672
+ "preview-key"
1673
+ ],
1674
+ responseKind: "json"
1616
1675
  },
1617
- getAvailableSlots: {
1618
- path: "/sites/{siteId}/bookings/availability/slots",
1619
- method: "GET",
1676
+ createSitePreviewKey: {
1677
+ path: "/sites/{siteId}/api-keys/preview",
1678
+ method: "POST",
1620
1679
  auth: "user",
1680
+ tags: [
1681
+ "site-{siteId}",
1682
+ "api-keys",
1683
+ "preview-key"
1684
+ ],
1621
1685
  responseKind: "json"
1622
1686
  },
1623
- listAppointments: {
1624
- path: "/sites/{siteId}/bookings/appointments",
1687
+ getSiteApiKeyAccessLogs: {
1688
+ path: "/sites/{siteId}/api-keys/access-logs",
1625
1689
  method: "GET",
1626
1690
  auth: "user",
1691
+ tags: [
1692
+ "site-{siteId}",
1693
+ "api-keys",
1694
+ "access-logs"
1695
+ ],
1627
1696
  responseKind: "json"
1628
1697
  },
1629
- exportBookingAppointmentsCsv: {
1630
- path: "/sites/{siteId}/bookings/appointments/export.csv",
1698
+ listManagementKeys: {
1699
+ path: "/sites/{siteId}/api-keys/management",
1631
1700
  method: "GET",
1632
1701
  auth: "user",
1633
- errors: [],
1634
- responseKind: "blob"
1702
+ tags: [
1703
+ "site-{siteId}",
1704
+ "api-keys",
1705
+ "management-keys"
1706
+ ],
1707
+ responseKind: "json"
1635
1708
  },
1636
- createAppointment: {
1637
- path: "/sites/{siteId}/bookings/appointments",
1709
+ createManagementKey: {
1710
+ path: "/sites/{siteId}/api-keys/management",
1638
1711
  method: "POST",
1639
1712
  auth: "user",
1713
+ tags: [
1714
+ "site-{siteId}",
1715
+ "api-keys",
1716
+ "management-keys"
1717
+ ],
1640
1718
  responseKind: "json"
1641
1719
  },
1642
- upsertBookingRequirementConfig: {
1643
- path: "/sites/{siteId}/bookings/requirements/config",
1644
- method: "PUT",
1720
+ revokeManagementKey: {
1721
+ path: "/sites/{siteId}/api-keys/management",
1722
+ method: "DELETE",
1645
1723
  auth: "user",
1646
- responseKind: "json",
1647
- errors: [
1648
- "validation:invalid_input",
1649
- "resource:not_found",
1650
- "server:internal_error"
1651
- ]
1724
+ tags: [
1725
+ "site-{siteId}",
1726
+ "api-keys",
1727
+ "management-keys"
1728
+ ],
1729
+ responseKind: "json"
1652
1730
  },
1653
- cancelAppointment: {
1654
- path: "/sites/{siteId}/bookings/appointments/{appointmentId}/cancel",
1655
- method: "POST",
1731
+ getBookingSettings: {
1732
+ path: "/sites/{siteId}/bookings/settings",
1733
+ method: "GET",
1656
1734
  auth: "user",
1735
+ tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteBookingSettings],
1657
1736
  responseKind: "json"
1658
1737
  },
1659
- rescheduleAppointment: {
1660
- path: "/sites/{siteId}/bookings/appointments/{appointmentId}/reschedule",
1661
- method: "POST",
1738
+ updateBookingSettings: {
1739
+ path: "/sites/{siteId}/bookings/settings",
1740
+ method: "PUT",
1662
1741
  auth: "user",
1742
+ tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteBookingSettings],
1663
1743
  responseKind: "json",
1664
1744
  errors: [
1665
1745
  "validation:invalid_input",
1666
- "resource:not_found",
1667
1746
  "auth:forbidden",
1668
1747
  "resource:conflict",
1669
1748
  "server:internal_error"
1670
1749
  ]
1671
1750
  },
1672
- listCourses: {
1673
- path: "/sites/{siteId}/bookings/courses",
1751
+ listBookingClosures: {
1752
+ path: "/sites/{siteId}/bookings/closures",
1674
1753
  method: "GET",
1675
1754
  auth: "user",
1676
- responseKind: "json"
1677
- },
1678
- exportCoursesCsv: {
1679
- path: "/sites/{siteId}/bookings/courses/export.csv",
1680
- method: "GET",
1681
1755
  tags: [
1682
1756
  "site-{siteId}",
1683
1757
  "bookings",
1684
- "courses-{siteId}"
1758
+ "closures-{siteId}"
1685
1759
  ],
1686
- errors: [],
1687
- auth: "user",
1688
- responseKind: "blob"
1760
+ responseKind: "json",
1761
+ errors: ["auth:forbidden", "server:internal_error"]
1689
1762
  },
1690
- createCourse: {
1691
- path: "/sites/{siteId}/bookings/courses",
1763
+ previewBookingClosure: {
1764
+ path: "/sites/{siteId}/bookings/closures/preview",
1692
1765
  method: "POST",
1693
1766
  auth: "user",
1767
+ tags: [
1768
+ "site-{siteId}",
1769
+ "bookings",
1770
+ "closures-{siteId}"
1771
+ ],
1694
1772
  responseKind: "json",
1695
1773
  errors: [
1696
1774
  "validation:invalid_input",
1697
- "resource:not_found",
1698
- "resource:already_exists",
1699
- "resource:conflict",
1775
+ "auth:forbidden",
1700
1776
  "server:internal_error"
1701
1777
  ]
1702
1778
  },
1703
- getCourse: {
1704
- path: "/sites/{siteId}/bookings/courses/{courseId}",
1705
- method: "GET",
1706
- auth: "user",
1707
- responseKind: "json"
1708
- },
1709
- updateCourse: {
1710
- path: "/sites/{siteId}/bookings/courses/{courseId}",
1711
- method: "PATCH",
1779
+ createBookingClosure: {
1780
+ path: "/sites/{siteId}/bookings/closures",
1781
+ method: "POST",
1712
1782
  auth: "user",
1783
+ tags: [
1784
+ "site-{siteId}",
1785
+ "bookings",
1786
+ "closures-{siteId}"
1787
+ ],
1713
1788
  responseKind: "json",
1714
1789
  errors: [
1715
1790
  "validation:invalid_input",
1716
- "resource:not_found",
1717
1791
  "resource:conflict",
1792
+ "auth:forbidden",
1718
1793
  "server:internal_error"
1719
1794
  ]
1720
1795
  },
1721
- deleteCourse: {
1722
- path: "/sites/{siteId}/bookings/courses/{courseId}",
1796
+ getBookingClosure: {
1797
+ path: "/sites/{siteId}/bookings/closures/{closureId}",
1798
+ method: "GET",
1799
+ auth: "user",
1800
+ tags: [
1801
+ "site-{siteId}",
1802
+ "bookings",
1803
+ "closures-{siteId}"
1804
+ ],
1805
+ responseKind: "json",
1806
+ errors: ["resource:not_found", "server:internal_error"]
1807
+ },
1808
+ deleteBookingClosure: {
1809
+ path: "/sites/{siteId}/bookings/closures/{closureId}",
1723
1810
  method: "DELETE",
1724
1811
  auth: "user",
1812
+ tags: [
1813
+ "site-{siteId}",
1814
+ "bookings",
1815
+ "closures-{siteId}"
1816
+ ],
1817
+ responseKind: "json",
1818
+ errors: ["resource:not_found", "server:internal_error"]
1819
+ },
1820
+ opsListUpcomingEventOccurrences: {
1821
+ path: "/ops/sites/{siteId}/events",
1822
+ method: "GET",
1823
+ auth: "user",
1824
+ responseKind: "json"
1825
+ },
1826
+ opsListOccurrenceAttendees: {
1827
+ path: "/ops/sites/{siteId}/events/{occurrenceId}/attendees",
1828
+ method: "GET",
1829
+ auth: "user",
1830
+ responseKind: "json"
1831
+ },
1832
+ opsValidateEventTicket: {
1833
+ path: "/ops/sites/{siteId}/events/tickets/validate",
1834
+ method: "POST",
1835
+ auth: "user",
1725
1836
  responseKind: "json",
1837
+ demoMutation: DEMO_MUTATION_INTERNAL_ONLY,
1726
1838
  errors: [
1727
1839
  "validation:invalid_input",
1840
+ "auth:forbidden",
1728
1841
  "resource:not_found",
1729
- "resource:conflict",
1730
1842
  "server:internal_error"
1731
1843
  ]
1732
1844
  },
1733
- deleteCourseProgram: {
1734
- path: "/sites/{siteId}/bookings/courses/programs/{programId}",
1735
- method: "DELETE",
1845
+ opsUpdateEventAttendeeCheckin: {
1846
+ path: "/ops/sites/{siteId}/events/attendees/{attendeeId}/checkin",
1847
+ method: "POST",
1736
1848
  auth: "user",
1737
1849
  responseKind: "json",
1850
+ demoMutation: DEMO_MUTATION_INTERNAL_ONLY,
1738
1851
  errors: [
1739
1852
  "validation:invalid_input",
1853
+ "auth:forbidden",
1740
1854
  "resource:not_found",
1741
- "resource:conflict",
1742
1855
  "server:internal_error"
1743
1856
  ]
1744
1857
  },
1745
- duplicateCourse: {
1746
- path: "/sites/{siteId}/bookings/courses/{courseId}/duplicate",
1858
+ opsGetEventAttendeeDetails: {
1859
+ path: "/ops/sites/{siteId}/events/attendees/{attendeeId}",
1860
+ method: "GET",
1861
+ auth: "user",
1862
+ responseKind: "json"
1863
+ },
1864
+ opsCancelEventAttendee: {
1865
+ path: "/ops/sites/{siteId}/events/attendees/{attendeeId}/cancel",
1747
1866
  method: "POST",
1748
1867
  auth: "user",
1749
1868
  responseKind: "json",
1869
+ demoMutation: DEMO_MUTATION_INTERNAL_ONLY,
1750
1870
  errors: [
1751
1871
  "validation:invalid_input",
1872
+ "auth:forbidden",
1752
1873
  "resource:not_found",
1753
- "resource:already_exists",
1874
+ "resource:conflict",
1754
1875
  "server:internal_error"
1755
1876
  ]
1756
1877
  },
1757
- changeCourseContentOwnership: {
1758
- path: "/sites/{siteId}/bookings/courses/{courseId}/content-ownership",
1878
+ getEventAttendeeDetails: {
1879
+ path: "/sites/{siteId}/bookings/event-attendees/{attendeeId}",
1880
+ method: "GET",
1881
+ auth: "user",
1882
+ responseKind: "json",
1883
+ errors: []
1884
+ },
1885
+ cancelEventAttendee: {
1886
+ path: "/sites/{siteId}/bookings/event-attendees/{attendeeId}/cancel",
1759
1887
  method: "POST",
1760
1888
  auth: "user",
1761
1889
  responseKind: "json",
1762
1890
  errors: [
1763
1891
  "validation:invalid_input",
1892
+ "auth:forbidden",
1764
1893
  "resource:not_found",
1765
1894
  "resource:conflict",
1766
1895
  "server:internal_error"
1767
1896
  ]
1768
1897
  },
1769
- addCourseEnrollment: {
1770
- path: "/sites/{siteId}/bookings/courses/{courseId}/enrollments",
1898
+ opsRefundEventAttendee: {
1899
+ path: "/ops/sites/{siteId}/events/attendees/{attendeeId}/refund",
1771
1900
  method: "POST",
1772
1901
  auth: "user",
1773
1902
  responseKind: "json",
1903
+ demoMutation: DEMO_MUTATION_INTERNAL_ONLY,
1774
1904
  errors: [
1775
1905
  "validation:invalid_input",
1906
+ "auth:forbidden",
1776
1907
  "resource:not_found",
1777
1908
  "resource:conflict",
1778
1909
  "server:internal_error"
1779
1910
  ]
1780
1911
  },
1781
- listCourseEnrollments: {
1782
- path: "/sites/{siteId}/bookings/courses/{courseId}/enrollments",
1912
+ getEmailSettings: {
1913
+ path: "/sites/{siteId}/settings/emails",
1783
1914
  method: "GET",
1915
+ tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings],
1784
1916
  auth: "user",
1785
1917
  responseKind: "json"
1786
1918
  },
1787
- exportCourseEnrollmentsCsv: {
1788
- path: "/sites/{siteId}/bookings/courses/{courseId}/enrollments/export.csv",
1789
- method: "GET",
1919
+ updateEmailSettings: {
1920
+ path: "/sites/{siteId}/settings/emails",
1921
+ method: "PUT",
1922
+ tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings],
1790
1923
  auth: "user",
1791
- errors: [],
1792
- responseKind: "blob"
1924
+ responseKind: "json"
1793
1925
  },
1794
- listCourseWaitlist: {
1795
- path: "/sites/{siteId}/bookings/courses/{courseId}/waitlist",
1796
- method: "GET",
1926
+ sendTestEmail: {
1927
+ path: "/sites/{siteId}/settings/emails/test",
1928
+ method: "POST",
1929
+ tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings],
1797
1930
  auth: "user",
1798
1931
  responseKind: "json",
1799
- errors: []
1800
- },
1801
- exportCourseWaitlistCsv: {
1802
- path: "/sites/{siteId}/bookings/courses/{courseId}/waitlist/export.csv",
1803
- method: "GET",
1804
- tags: [
1805
- "site-{siteId}",
1806
- "bookings",
1807
- "courses-{courseId}"
1808
- ],
1809
- auth: "user",
1810
- responseKind: "blob",
1811
- errors: []
1932
+ demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
1812
1933
  },
1813
- updateCourseEnrollment: {
1814
- path: "/sites/{siteId}/bookings/courses/{courseId}/enrollments/{enrollmentId}",
1815
- method: "PATCH",
1934
+ previewEmailTemplate: {
1935
+ path: "/sites/{siteId}/settings/emails/preview",
1936
+ method: "POST",
1937
+ tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings],
1816
1938
  auth: "user",
1817
- responseKind: "json",
1818
- errors: [
1819
- "validation:invalid_input",
1820
- "resource:not_found",
1821
- "server:internal_error"
1822
- ]
1939
+ responseKind: "json"
1823
1940
  },
1941
+ ...NEWSLETTER_ENDPOINT_DEFINITIONS,
1942
+ ...APPOINTMENT_ENDPOINT_DEFINITIONS,
1943
+ ...COURSE_ENDPOINT_DEFINITIONS,
1824
1944
  getSite: {
1825
1945
  path: "/sites",
1826
1946
  method: "GET",
@@ -2162,7 +2282,13 @@ const API_ENDPOINTS = {
2162
2282
  method: "POST",
2163
2283
  tags: ["site-{siteId}", "content-{siteId}-{type}"],
2164
2284
  auth: "user",
2165
- responseKind: "json"
2285
+ responseKind: "json",
2286
+ errors: [
2287
+ "validation:invalid_input",
2288
+ "resource:not_found",
2289
+ "resource:conflict",
2290
+ "server:internal_error"
2291
+ ]
2166
2292
  },
2167
2293
  getContentEntry: {
2168
2294
  path: "/sites/{siteId}/content/{type}/{entryId}",
@@ -2173,12 +2299,22 @@ const API_ENDPOINTS = {
2173
2299
  "content-entry-{entryId}"
2174
2300
  ],
2175
2301
  auth: "user",
2176
- responseKind: "json"
2302
+ responseKind: "json",
2303
+ errors: [
2304
+ "validation:invalid_input",
2305
+ "resource:not_found",
2306
+ "resource:conflict",
2307
+ "server:internal_error"
2308
+ ]
2177
2309
  },
2178
2310
  listContentEntryVersions: {
2179
2311
  path: "/sites/{siteId}/content/{type}/{entryId}/versions",
2180
2312
  method: "GET",
2181
- errors: ["validation:invalid_input", "resource:not_found"],
2313
+ errors: [
2314
+ "validation:invalid_input",
2315
+ "resource:not_found",
2316
+ "resource:conflict"
2317
+ ],
2182
2318
  tags: [
2183
2319
  "site-{siteId}",
2184
2320
  "content-{siteId}-{type}",
@@ -2190,7 +2326,11 @@ const API_ENDPOINTS = {
2190
2326
  getContentEntryVersion: {
2191
2327
  path: "/sites/{siteId}/content/{type}/{entryId}/versions/{versionId}",
2192
2328
  method: "GET",
2193
- errors: ["validation:invalid_input", "resource:not_found"],
2329
+ errors: [
2330
+ "validation:invalid_input",
2331
+ "resource:not_found",
2332
+ "resource:conflict"
2333
+ ],
2194
2334
  tags: [
2195
2335
  "site-{siteId}",
2196
2336
  "content-{siteId}-{type}",
@@ -2225,6 +2365,12 @@ const API_ENDPOINTS = {
2225
2365
  "content-entry-{entryId}"
2226
2366
  ],
2227
2367
  auth: "user",
2368
+ errors: [
2369
+ "validation:invalid_input",
2370
+ "resource:not_found",
2371
+ "resource:conflict",
2372
+ "server:internal_error"
2373
+ ],
2228
2374
  responseKind: "json"
2229
2375
  },
2230
2376
  updatePageSurfaceDraftContent: {
@@ -2294,6 +2440,7 @@ const API_ENDPOINTS = {
2294
2440
  errors: [
2295
2441
  "validation:invalid_input",
2296
2442
  "resource:not_found",
2443
+ "resource:conflict",
2297
2444
  "server:internal_error"
2298
2445
  ],
2299
2446
  tags: [
@@ -2310,6 +2457,7 @@ const API_ENDPOINTS = {
2310
2457
  errors: [
2311
2458
  "validation:invalid_input",
2312
2459
  "resource:not_found",
2460
+ "resource:conflict",
2313
2461
  "server:internal_error"
2314
2462
  ],
2315
2463
  tags: [
@@ -2330,6 +2478,12 @@ const API_ENDPOINTS = {
2330
2478
  TAG_TEMPLATES.routeById
2331
2479
  ],
2332
2480
  auth: "user",
2481
+ errors: [
2482
+ "validation:invalid_input",
2483
+ "resource:not_found",
2484
+ "resource:conflict",
2485
+ "server:internal_error"
2486
+ ],
2333
2487
  responseKind: "json"
2334
2488
  },
2335
2489
  publishContentEntry: {
@@ -2386,6 +2540,13 @@ const API_ENDPOINTS = {
2386
2540
  "content-entry-{entryId}"
2387
2541
  ],
2388
2542
  auth: "user",
2543
+ errors: [
2544
+ "auth:forbidden",
2545
+ "validation:invalid_input",
2546
+ "resource:not_found",
2547
+ "resource:conflict",
2548
+ "server:internal_error"
2549
+ ],
2389
2550
  responseKind: "json"
2390
2551
  },
2391
2552
  unpublishContentEntry: {
@@ -2438,7 +2599,13 @@ const API_ENDPOINTS = {
2438
2599
  "content-entry-{entryId}"
2439
2600
  ],
2440
2601
  auth: "user",
2441
- responseKind: "json"
2602
+ responseKind: "json",
2603
+ errors: [
2604
+ "validation:invalid_input",
2605
+ "resource:not_found",
2606
+ "resource:conflict",
2607
+ "server:internal_error"
2608
+ ]
2442
2609
  },
2443
2610
  bulkPublishContentEntries: {
2444
2611
  path: "/sites/{siteId}/content/{type}/bulk-publish",
@@ -2460,6 +2627,12 @@ const API_ENDPOINTS = {
2460
2627
  tags: ["site-{siteId}", "content-{siteId}-{type}"],
2461
2628
  auth: "user",
2462
2629
  responseKind: "json",
2630
+ errors: [
2631
+ "validation:invalid_input",
2632
+ "resource:not_found",
2633
+ "resource:conflict",
2634
+ "server:internal_error"
2635
+ ],
2463
2636
  demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
2464
2637
  },
2465
2638
  updateSiteGeneralSettings: {
@@ -3730,7 +3903,7 @@ const API_ENDPOINTS = {
3730
3903
  ],
3731
3904
  auth: "user",
3732
3905
  responseKind: "json",
3733
- errors: ["resource:not_found"]
3906
+ errors: ["resource:not_found", "resource:conflict"]
3734
3907
  },
3735
3908
  listEntryPageContentSlots: {
3736
3909
  path: "/sites/{siteId}/content/{type}/{entryId}/slots",
@@ -3743,7 +3916,7 @@ const API_ENDPOINTS = {
3743
3916
  ],
3744
3917
  auth: "user",
3745
3918
  responseKind: "json",
3746
- errors: ["resource:not_found"]
3919
+ errors: ["resource:not_found", "resource:conflict"]
3747
3920
  },
3748
3921
  createEntrySlotBlock: {
3749
3922
  path: "/sites/{siteId}/content/{type}/{entryId}/slots/{slotKey}/blocks",
@@ -3756,7 +3929,11 @@ const API_ENDPOINTS = {
3756
3929
  ],
3757
3930
  auth: "user",
3758
3931
  responseKind: "json",
3759
- errors: ["validation:invalid_input", "resource:not_found"]
3932
+ errors: [
3933
+ "validation:invalid_input",
3934
+ "resource:not_found",
3935
+ "resource:conflict"
3936
+ ]
3760
3937
  },
3761
3938
  reorderEntrySlotBlocks: {
3762
3939
  path: "/sites/{siteId}/content/{type}/{entryId}/slots/{slotKey}/blocks/reorder",
@@ -3769,7 +3946,11 @@ const API_ENDPOINTS = {
3769
3946
  ],
3770
3947
  auth: "user",
3771
3948
  responseKind: "json",
3772
- errors: ["validation:invalid_input", "resource:not_found"]
3949
+ errors: [
3950
+ "validation:invalid_input",
3951
+ "resource:not_found",
3952
+ "resource:conflict"
3953
+ ]
3773
3954
  },
3774
3955
  deleteEntrySlotBlock: {
3775
3956
  path: "/sites/{siteId}/content/{type}/{entryId}/slots/{slotKey}/blocks/{blockId}",
@@ -3782,7 +3963,7 @@ const API_ENDPOINTS = {
3782
3963
  ],
3783
3964
  auth: "user",
3784
3965
  responseKind: "json",
3785
- errors: ["resource:not_found"]
3966
+ errors: ["resource:not_found", "resource:conflict"]
3786
3967
  },
3787
3968
  listPageSurfaceContentSlots: {
3788
3969
  path: "/sites/{siteId}/page-surfaces/{pageSurfaceId}/slots",
@@ -4460,14 +4641,7 @@ const API_ENDPOINTS = {
4460
4641
  auth: "public",
4461
4642
  responseKind: "json"
4462
4643
  },
4463
- listPublicCourses: {
4464
- path: "/public/sites/{siteId}/courses",
4465
- method: "GET",
4466
- revalidate: 60,
4467
- tags: [TAG_TEMPLATES.publicCourses],
4468
- auth: "public",
4469
- responseKind: "json"
4470
- },
4644
+ ...PUBLIC_WHOLE_SERIES_ENDPOINT_DEFINITIONS,
4471
4645
  listPublicTeamMembers: {
4472
4646
  path: "/public/sites/{siteId}/team-members",
4473
4647
  method: "GET",
@@ -4477,33 +4651,11 @@ const API_ENDPOINTS = {
4477
4651
  auth: "public",
4478
4652
  responseKind: "json"
4479
4653
  },
4480
- getPublicCourse: {
4481
- path: "/public/sites/{siteId}/courses/{courseId}",
4482
- method: "GET",
4483
- revalidate: 60,
4484
- tags: [TAG_TEMPLATES.publicCourses],
4485
- auth: "public",
4486
- responseKind: "json"
4487
- },
4488
- enrollInCourse: {
4489
- path: "/public/sites/{siteId}/courses/enroll",
4490
- method: "POST",
4491
- tags: [TAG_TEMPLATES.publicCourses, "course-enrollment"],
4492
- auth: "public",
4493
- responseKind: "json"
4494
- },
4495
- checkCourseEligibility: {
4496
- path: "/public/sites/{siteId}/courses/check-eligibility",
4497
- method: "POST",
4498
- tags: [TAG_TEMPLATES.publicCourses, "course-enrollment"],
4499
- auth: "public",
4500
- responseKind: "json"
4501
- },
4502
4654
  resolveWaitlistClaim: {
4503
4655
  path: "/public/sites/{siteId}/waitlists/claim/resolve",
4504
4656
  method: "POST",
4505
4657
  tags: [
4506
- TAG_TEMPLATES.publicCourses,
4658
+ TAG_TEMPLATES.publicWholeSeriesOfferings,
4507
4659
  TAG_TEMPLATES.publicEvents,
4508
4660
  "waitlist-claims"
4509
4661
  ],
@@ -4516,27 +4668,6 @@ const API_ENDPOINTS = {
4516
4668
  "server:internal_error"
4517
4669
  ]
4518
4670
  },
4519
- createCourseCheckout: {
4520
- path: "/public/sites/{siteId}/courses/checkout",
4521
- method: "POST",
4522
- tags: [TAG_TEMPLATES.publicCourses, "course-checkout"],
4523
- auth: "public",
4524
- responseKind: "json",
4525
- errors: [
4526
- "auth:unauthenticated",
4527
- "validation:invalid_input",
4528
- "resource:not_found",
4529
- "resource:conflict",
4530
- "server:internal_error"
4531
- ]
4532
- },
4533
- getCourseRegistrationStatus: {
4534
- path: "/public/sites/{siteId}/courses/registration-status",
4535
- method: "GET",
4536
- tags: [TAG_TEMPLATES.publicCourses, "course-checkout"],
4537
- auth: "public",
4538
- responseKind: "json"
4539
- },
4540
4671
  listPublicPasses: {
4541
4672
  path: "/public/sites/{siteId}/bookings/products/passes",
4542
4673
  method: "GET",
@@ -4637,14 +4768,6 @@ const API_ENDPOINTS = {
4637
4768
  responseKind: "json",
4638
4769
  errors: []
4639
4770
  },
4640
- resolveEntrySubroute: {
4641
- path: "/public/sites/{siteId}/routing/subroutes/resolve",
4642
- method: "GET",
4643
- revalidate: 60,
4644
- tags: ["site-{siteId}", "entry-subroute"],
4645
- auth: "public",
4646
- responseKind: "json"
4647
- },
4648
4771
  resolveEventOccurrence: {
4649
4772
  path: "/public/sites/{siteId}/events/occurrences/resolve",
4650
4773
  method: "GET",
@@ -4988,13 +5111,6 @@ const API_ENDPOINTS = {
4988
5111
  auth: "user",
4989
5112
  responseKind: "json"
4990
5113
  },
4991
- getEventSeriesContentEditor: {
4992
- path: "/sites/{siteId}/bookings/event-series/{seriesId}/content-editor",
4993
- method: "GET",
4994
- tags: ["site-{siteId}", "event-series-{seriesId}"],
4995
- auth: "user",
4996
- responseKind: "json"
4997
- },
4998
5114
  updateEventSeries: {
4999
5115
  path: "/sites/{siteId}/bookings/event-series/{seriesId}",
5000
5116
  method: "PATCH",
@@ -6333,6 +6449,7 @@ const API_ENDPOINTS = {
6333
6449
  errors: [
6334
6450
  "validation:invalid_input",
6335
6451
  "resource:not_found",
6452
+ "resource:conflict",
6336
6453
  "server:internal_error"
6337
6454
  ],
6338
6455
  auth: "service",
@@ -6446,24 +6563,12 @@ const API_ENDPOINTS = {
6446
6563
  auth: "service",
6447
6564
  responseKind: "json"
6448
6565
  },
6449
- sdkPullCourses: {
6450
- path: "/sdk/{siteId}/pull/courses",
6451
- method: "GET",
6452
- auth: "service",
6453
- responseKind: "json"
6454
- },
6455
6566
  sdkPullEntries: {
6456
6567
  path: "/sdk/{siteId}/pull/entries",
6457
6568
  method: "GET",
6458
6569
  auth: "service",
6459
6570
  responseKind: "json"
6460
6571
  },
6461
- sdkPullEntriesByType: {
6462
- path: "/sdk/{siteId}/pull/entries/{type}",
6463
- method: "GET",
6464
- auth: "service",
6465
- responseKind: "json"
6466
- },
6467
6572
  sdkPullEntriesAll: {
6468
6573
  path: "/sdk/{siteId}/pull/entries/all",
6469
6574
  method: "GET",
@@ -6729,48 +6834,13 @@ const API_ENDPOINTS = {
6729
6834
  "server:internal_error"
6730
6835
  ]
6731
6836
  },
6732
- sdkListCourses: {
6733
- path: "/sdk/{siteId}/courses",
6734
- method: "GET",
6735
- auth: "service",
6736
- responseKind: "json"
6737
- },
6738
- sdkUpsertCourse: {
6739
- path: "/sdk/{siteId}/courses",
6740
- method: "POST",
6741
- auth: "service",
6742
- responseKind: "json"
6743
- },
6744
- sdkGetCourse: {
6745
- path: "/sdk/{siteId}/courses/{identifier}",
6746
- method: "GET",
6747
- auth: "service",
6748
- responseKind: "json"
6749
- },
6750
- sdkDeleteCourse: {
6751
- path: "/sdk/{siteId}/courses/{identifier}",
6752
- method: "DELETE",
6753
- auth: "service",
6754
- responseKind: "json"
6755
- },
6756
6837
  sdkUpsertEntry: {
6757
6838
  path: "/sdk/{siteId}/entries",
6758
6839
  method: "POST",
6759
6840
  auth: "service",
6760
6841
  responseKind: "json"
6761
6842
  },
6762
- sdkListEntries: {
6763
- path: "/sdk/{siteId}/entries/{contentType}",
6764
- method: "GET",
6765
- auth: "service",
6766
- responseKind: "json"
6767
- },
6768
- sdkGetEntry: {
6769
- path: "/sdk/{siteId}/entries/{contentType}/{identifier}",
6770
- method: "GET",
6771
- auth: "service",
6772
- responseKind: "json"
6773
- },
6843
+ ...SDK_ENTRY_READ_ENDPOINTS,
6774
6844
  sdkDeleteEntry: {
6775
6845
  path: "/sdk/{siteId}/entries/{contentType}/{identifier}",
6776
6846
  method: "DELETE",
@@ -6995,21 +7065,22 @@ const API_ENDPOINTS = {
6995
7065
  "server:internal_error"
6996
7066
  ]
6997
7067
  },
6998
- portalGetCourses: {
6999
- path: "/portal/courses",
7068
+ portalGetWholeSeriesRegistrations: {
7069
+ path: "/portal/dated-offerings/whole-series",
7000
7070
  method: "GET",
7001
7071
  auth: "public",
7002
- responseKind: "json"
7072
+ responseKind: "json",
7073
+ errors: ["server:internal_error"]
7003
7074
  },
7004
- portalGetCourseBookingQuestions: {
7005
- path: "/portal/courses/{enrollmentId}/booking-questions",
7075
+ portalGetWholeSeriesBookingQuestions: {
7076
+ path: "/portal/dated-offerings/whole-series/{enrollmentId}/booking-questions",
7006
7077
  method: "GET",
7007
7078
  auth: "public",
7008
7079
  responseKind: "json",
7009
7080
  errors: ["resource:not_found", "server:internal_error"]
7010
7081
  },
7011
- portalUpdateCourseBookingQuestions: {
7012
- path: "/portal/courses/{enrollmentId}/booking-questions",
7082
+ portalUpdateWholeSeriesBookingQuestions: {
7083
+ path: "/portal/dated-offerings/whole-series/{enrollmentId}/booking-questions",
7013
7084
  method: "PUT",
7014
7085
  auth: "public",
7015
7086
  responseKind: "json",
@@ -7019,8 +7090,8 @@ const API_ENDPOINTS = {
7019
7090
  "server:internal_error"
7020
7091
  ]
7021
7092
  },
7022
- portalCreateCourseBookingQuestionsUploadUrl: {
7023
- path: "/portal/courses/{enrollmentId}/booking-questions/upload-url",
7093
+ portalCreateWholeSeriesBookingQuestionsUploadUrl: {
7094
+ path: "/portal/dated-offerings/whole-series/{enrollmentId}/booking-questions/upload-url",
7024
7095
  method: "POST",
7025
7096
  auth: "public",
7026
7097
  responseKind: "json",
@@ -7030,8 +7101,8 @@ const API_ENDPOINTS = {
7030
7101
  "server:internal_error"
7031
7102
  ]
7032
7103
  },
7033
- portalFinalizeCourseBookingQuestionsUpload: {
7034
- path: "/portal/courses/{enrollmentId}/booking-questions/upload",
7104
+ portalFinalizeWholeSeriesBookingQuestionsUpload: {
7105
+ path: "/portal/dated-offerings/whole-series/{enrollmentId}/booking-questions/upload",
7035
7106
  method: "POST",
7036
7107
  auth: "public",
7037
7108
  responseKind: "json",
@@ -7041,11 +7112,12 @@ const API_ENDPOINTS = {
7041
7112
  "server:internal_error"
7042
7113
  ]
7043
7114
  },
7044
- portalCancelCourseEnrollment: {
7045
- path: "/portal/courses/{enrollmentId}/cancel",
7115
+ portalCancelWholeSeriesRegistration: {
7116
+ path: "/portal/dated-offerings/whole-series/{enrollmentId}/cancel",
7046
7117
  method: "POST",
7047
7118
  auth: "public",
7048
- responseKind: "json"
7119
+ responseKind: "json",
7120
+ errors: ["resource:not_found", "server:internal_error"]
7049
7121
  },
7050
7122
  portalCancelEventRegistration: {
7051
7123
  path: "/portal/events/{registrationId}/cancel",