@riverbankcms/sdk 0.123.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-DvJFmC29.mjs → PreviewEditorSidebar-DBmAJJkQ.mjs} +22 -39
  3. package/dist/{PreviewEditorUI-DVHP4bCo.mjs → PreviewEditorUI-CfGaz9cY.mjs} +3 -3
  4. package/dist/{PreviewQueryProvider-07EE4uWL.mjs → PreviewQueryProvider-BH-3-jSj.mjs} +1 -1
  5. package/dist/{SdkPreviewModeRuntime-BE5eFayo.mjs → SdkPreviewModeRuntime-BW9Z8j8T.mjs} +1020 -1234
  6. package/dist/{SiteChromeCustomizeContext-4hn4A0HX.mjs → SiteChromeCustomizeContext-2z8moxYf.mjs} +1900 -1959
  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 +72 -73
  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 +9 -11
  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 +3 -4
  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 +1580 -120
  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 +7250 -8478
  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 +6859 -7149
  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 -1044
  237. package/dist/preview-next/client/runtime.mjs +4 -4
  238. package/dist/preview-next/middleware.mjs +1118 -1047
  239. package/dist/{previewAuthStore-ShY26RNz.mjs → previewAuthStore-CJX21dGi.mjs} +1121 -1047
  240. package/dist/{sdk-runtime-CJxkFq2B.mjs → sdk-runtime-OnPM8Z69.mjs} +2 -2
  241. package/dist/{separator-CoFmo8uA.mjs → separator-CPtfzHqA.mjs} +1 -1
  242. package/dist/server/components.mjs +4560 -3672
  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 +1501 -1491
  247. package/dist/server/next.mjs +7524 -8067
  248. package/dist/server/page-converter.mjs +1898 -2040
  249. package/dist/server/prebuild.mjs +1 -1
  250. package/dist/server/rendering/server.mjs +4258 -3373
  251. package/dist/server/rendering.mjs +6228 -5393
  252. package/dist/server/routing.mjs +3614 -2509
  253. package/dist/server/server.mjs +3298 -3479
  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,628 +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",
515
- "resource:conflict",
662
+ "resource:not_found",
516
663
  "server:internal_error"
517
664
  ]
518
665
  },
519
- listBookingClosures: {
520
- path: "/sites/{siteId}/bookings/closures",
521
- method: "GET",
666
+ revokeVenueCalendarFeed: {
667
+ path: "/sites/{siteId}/bookings/venues/{venueId}/calendar/feed",
668
+ method: "DELETE",
522
669
  auth: "user",
523
- tags: [
524
- "site-{siteId}",
525
- "bookings",
526
- "closures-{siteId}"
527
- ],
528
670
  responseKind: "json",
529
- 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"
530
707
  },
531
- previewBookingClosure: {
532
- path: "/sites/{siteId}/bookings/closures/preview",
708
+ createAppointment: {
709
+ path: "/sites/{siteId}/bookings/appointments",
533
710
  method: "POST",
534
711
  auth: "user",
535
- tags: [
536
- "site-{siteId}",
537
- "bookings",
538
- "closures-{siteId}"
539
- ],
712
+ responseKind: "json"
713
+ },
714
+ upsertBookingRequirementConfig: {
715
+ path: "/sites/{siteId}/bookings/requirements/config",
716
+ method: "PUT",
717
+ auth: "user",
540
718
  responseKind: "json",
541
719
  errors: [
542
720
  "validation:invalid_input",
543
- "auth:forbidden",
721
+ "resource:not_found",
544
722
  "server:internal_error"
545
723
  ]
546
724
  },
547
- createBookingClosure: {
548
- 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",
549
733
  method: "POST",
550
734
  auth: "user",
551
- tags: [
552
- "site-{siteId}",
553
- "bookings",
554
- "closures-{siteId}"
555
- ],
556
735
  responseKind: "json",
557
736
  errors: [
558
737
  "validation:invalid_input",
559
- "resource:conflict",
738
+ "resource:not_found",
560
739
  "auth:forbidden",
740
+ "resource:conflict",
561
741
  "server:internal_error"
562
742
  ]
563
- },
564
- getBookingClosure: {
565
- 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",
566
750
  method: "GET",
567
751
  auth: "user",
568
- tags: [
569
- "site-{siteId}",
570
- "bookings",
571
- "closures-{siteId}"
572
- ],
573
- responseKind: "json",
574
- errors: ["resource:not_found", "server:internal_error"]
752
+ responseKind: "json"
575
753
  },
576
- deleteBookingClosure: {
577
- path: "/sites/{siteId}/bookings/closures/{closureId}",
578
- method: "DELETE",
579
- auth: "user",
754
+ exportCoursesCsv: {
755
+ path: "/sites/{siteId}/bookings/courses/export.csv",
756
+ method: "GET",
580
757
  tags: [
581
758
  "site-{siteId}",
582
759
  "bookings",
583
- "closures-{siteId}"
760
+ "courses-{siteId}"
584
761
  ],
585
- responseKind: "json",
586
- errors: ["resource:not_found", "server:internal_error"]
762
+ errors: [],
763
+ auth: "user",
764
+ responseKind: "blob"
587
765
  },
588
- opsListUpcomingEventOccurrences: {
589
- path: "/ops/sites/{siteId}/events",
590
- method: "GET",
766
+ createCourse: {
767
+ path: "/sites/{siteId}/bookings/courses",
768
+ method: "POST",
591
769
  auth: "user",
592
- 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
+ ]
593
778
  },
594
- opsListOccurrenceAttendees: {
595
- path: "/ops/sites/{siteId}/events/{occurrenceId}/attendees",
779
+ getCourse: {
780
+ path: "/sites/{siteId}/bookings/courses/{courseId}",
596
781
  method: "GET",
597
782
  auth: "user",
598
783
  responseKind: "json"
599
784
  },
600
- opsValidateEventTicket: {
601
- path: "/ops/sites/{siteId}/events/tickets/validate",
602
- method: "POST",
785
+ updateCourse: {
786
+ path: "/sites/{siteId}/bookings/courses/{courseId}",
787
+ method: "PATCH",
603
788
  auth: "user",
604
789
  responseKind: "json",
605
- demoMutation: DEMO_MUTATION_INTERNAL_ONLY,
606
790
  errors: [
607
791
  "validation:invalid_input",
608
- "auth:forbidden",
609
792
  "resource:not_found",
793
+ "resource:conflict",
610
794
  "server:internal_error"
611
795
  ]
612
796
  },
613
- opsUpdateEventAttendeeCheckin: {
614
- path: "/ops/sites/{siteId}/events/attendees/{attendeeId}/checkin",
615
- method: "POST",
797
+ deleteCourse: {
798
+ path: "/sites/{siteId}/bookings/courses/{courseId}",
799
+ method: "DELETE",
616
800
  auth: "user",
617
801
  responseKind: "json",
618
- demoMutation: DEMO_MUTATION_INTERNAL_ONLY,
619
802
  errors: [
620
803
  "validation:invalid_input",
621
- "auth:forbidden",
622
804
  "resource:not_found",
805
+ "resource:conflict",
623
806
  "server:internal_error"
624
807
  ]
625
808
  },
626
- opsGetEventAttendeeDetails: {
627
- path: "/ops/sites/{siteId}/events/attendees/{attendeeId}",
628
- method: "GET",
629
- auth: "user",
630
- responseKind: "json"
631
- },
632
- opsCancelEventAttendee: {
633
- path: "/ops/sites/{siteId}/events/attendees/{attendeeId}/cancel",
634
- method: "POST",
809
+ deleteEventOffering: {
810
+ path: "/sites/{siteId}/bookings/event-offerings/{eventOfferingId}",
811
+ method: "DELETE",
635
812
  auth: "user",
636
813
  responseKind: "json",
637
- demoMutation: DEMO_MUTATION_INTERNAL_ONLY,
638
814
  errors: [
639
815
  "validation:invalid_input",
640
- "auth:forbidden",
641
816
  "resource:not_found",
642
817
  "resource:conflict",
643
818
  "server:internal_error"
644
819
  ]
645
820
  },
646
- getEventAttendeeDetails: {
647
- path: "/sites/{siteId}/bookings/event-attendees/{attendeeId}",
648
- method: "GET",
821
+ duplicateCourse: {
822
+ path: "/sites/{siteId}/bookings/courses/{courseId}/duplicate",
823
+ method: "POST",
649
824
  auth: "user",
650
825
  responseKind: "json",
651
- errors: []
826
+ errors: [
827
+ "validation:invalid_input",
828
+ "resource:not_found",
829
+ "resource:already_exists",
830
+ "server:internal_error"
831
+ ]
652
832
  },
653
- cancelEventAttendee: {
654
- path: "/sites/{siteId}/bookings/event-attendees/{attendeeId}/cancel",
833
+ changeCourseContentOwnership: {
834
+ path: "/sites/{siteId}/bookings/courses/{courseId}/content-ownership",
655
835
  method: "POST",
656
836
  auth: "user",
657
837
  responseKind: "json",
658
838
  errors: [
659
839
  "validation:invalid_input",
660
- "auth:forbidden",
661
840
  "resource:not_found",
662
841
  "resource:conflict",
663
842
  "server:internal_error"
664
843
  ]
665
844
  },
666
- opsRefundEventAttendee: {
667
- path: "/ops/sites/{siteId}/events/attendees/{attendeeId}/refund",
845
+ addCourseEnrollment: {
846
+ path: "/sites/{siteId}/bookings/courses/{courseId}/enrollments",
668
847
  method: "POST",
669
848
  auth: "user",
670
849
  responseKind: "json",
671
- demoMutation: DEMO_MUTATION_INTERNAL_ONLY,
672
850
  errors: [
673
851
  "validation:invalid_input",
674
- "auth:forbidden",
675
852
  "resource:not_found",
676
853
  "resource:conflict",
677
854
  "server:internal_error"
678
855
  ]
679
856
  },
680
- getEmailSettings: {
681
- path: "/sites/{siteId}/settings/emails",
857
+ listCourseEnrollments: {
858
+ path: "/sites/{siteId}/bookings/courses/{courseId}/enrollments",
682
859
  method: "GET",
683
- tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings],
684
860
  auth: "user",
685
861
  responseKind: "json"
686
862
  },
687
- updateEmailSettings: {
688
- path: "/sites/{siteId}/settings/emails",
689
- method: "PUT",
690
- tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings],
863
+ exportCourseEnrollmentsCsv: {
864
+ path: "/sites/{siteId}/bookings/courses/{courseId}/enrollments/export.csv",
865
+ method: "GET",
691
866
  auth: "user",
692
- responseKind: "json"
867
+ errors: [],
868
+ responseKind: "blob"
693
869
  },
694
- sendTestEmail: {
695
- path: "/sites/{siteId}/settings/emails/test",
696
- method: "POST",
697
- 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
+ ],
698
878
  auth: "user",
699
- responseKind: "json",
700
- demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
879
+ responseKind: "blob",
880
+ errors: []
701
881
  },
702
- previewEmailTemplate: {
703
- path: "/sites/{siteId}/settings/emails/preview",
704
- method: "POST",
705
- tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings],
882
+ updateCourseEnrollment: {
883
+ path: "/sites/{siteId}/bookings/courses/{courseId}/enrollments/{enrollmentId}",
884
+ method: "PATCH",
706
885
  auth: "user",
707
- responseKind: "json"
708
- },
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({
709
897
  getNewsletterSettings: {
710
898
  path: "/sites/{siteId}/newsletter/settings",
711
899
  method: "GET",
@@ -1058,770 +1246,701 @@ const API_ENDPOINTS = {
1058
1246
  tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
1059
1247
  auth: "user",
1060
1248
  responseKind: "json"
1061
- },
1062
- listAppointmentResources: {
1063
- 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",
1064
1256
  method: "GET",
1065
- auth: "user",
1257
+ revalidate: 60,
1258
+ tags: [TAG_TEMPLATES.publicWholeSeriesOfferings],
1259
+ errors: ["server:internal_error"],
1260
+ auth: "public",
1066
1261
  responseKind: "json"
1067
1262
  },
1068
- createAppointmentResource: {
1069
- path: "/sites/{siteId}/bookings/resources",
1070
- method: "POST",
1071
- auth: "user",
1072
- responseKind: "json",
1073
- errors: [
1074
- "validation:invalid_input",
1075
- "billing:plan_limit_exceeded",
1076
- "server:internal_error"
1077
- ]
1078
- },
1079
- createAppointmentResourceWithAccountAccess: {
1080
- path: "/sites/{siteId}/bookings/resources/account-access",
1081
- method: "POST",
1082
- auth: "user",
1083
- responseKind: "json",
1084
- errors: [
1085
- "validation:invalid_input",
1086
- "auth:forbidden",
1087
- "billing:plan_limit_exceeded",
1088
- "resource:conflict",
1089
- "resource:not_found",
1090
- "server:internal_error"
1091
- ]
1092
- },
1093
- getAppointmentResource: {
1094
- path: "/sites/{siteId}/bookings/resources/{resourceId}",
1263
+ getPublicWholeSeriesOffering: {
1264
+ path: "/public/sites/{siteId}/dated-offerings/whole-series/{eventSeriesId}",
1095
1265
  method: "GET",
1096
- auth: "user",
1266
+ revalidate: 60,
1267
+ tags: [TAG_TEMPLATES.publicWholeSeriesOfferings],
1268
+ errors: ["resource:not_found", "server:internal_error"],
1269
+ auth: "public",
1097
1270
  responseKind: "json"
1098
1271
  },
1099
- updateAppointmentResource: {
1100
- path: "/sites/{siteId}/bookings/resources/{resourceId}",
1101
- method: "PUT",
1102
- auth: "user",
1103
- responseKind: "json",
1104
- errors: [
1105
- "validation:invalid_input",
1106
- "resource:not_found",
1107
- "server:internal_error"
1108
- ]
1109
- },
1110
- removeAppointmentResource: {
1111
- path: "/sites/{siteId}/bookings/resources/{resourceId}",
1112
- method: "DELETE",
1113
- auth: "user",
1114
- responseKind: "json",
1115
- errors: ["resource:not_found", "server:internal_error"]
1116
- },
1117
- listAppointmentReservations: {
1118
- path: "/sites/{siteId}/bookings/appointment-reservations",
1119
- method: "GET",
1120
- auth: "user",
1121
- responseKind: "json",
1122
- errors: []
1123
- },
1124
- createAppointmentReservation: {
1125
- path: "/sites/{siteId}/bookings/appointment-reservations",
1272
+ registerForWholeSeries: {
1273
+ path: "/public/sites/{siteId}/dated-offerings/whole-series/enroll",
1126
1274
  method: "POST",
1127
- auth: "user",
1128
- responseKind: "json",
1275
+ tags: [TAG_TEMPLATES.publicWholeSeriesOfferings, "course-enrollment"],
1129
1276
  errors: [
1277
+ "auth:unauthenticated",
1278
+ "auth:forbidden",
1130
1279
  "validation:invalid_input",
1131
1280
  "resource:not_found",
1132
1281
  "resource:conflict",
1282
+ "resource:already_exists",
1133
1283
  "server:internal_error"
1134
- ]
1135
- },
1136
- getAppointmentReservation: {
1137
- path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}",
1138
- method: "GET",
1139
- auth: "user",
1140
- responseKind: "json",
1141
- errors: ["resource:not_found", "server:internal_error"]
1284
+ ],
1285
+ auth: "public",
1286
+ responseKind: "json"
1142
1287
  },
1143
- updateAppointmentReservation: {
1144
- path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}",
1145
- method: "PUT",
1146
- auth: "user",
1147
- 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"],
1148
1292
  errors: [
1149
- "validation:invalid_input",
1293
+ "auth:unauthenticated",
1150
1294
  "resource:not_found",
1151
1295
  "resource:conflict",
1152
1296
  "server:internal_error"
1153
- ]
1297
+ ],
1298
+ auth: "public",
1299
+ responseKind: "json"
1154
1300
  },
1155
- pauseAppointmentReservation: {
1156
- path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/pause",
1301
+ createWholeSeriesCheckout: {
1302
+ path: "/public/sites/{siteId}/dated-offerings/whole-series/checkout",
1157
1303
  method: "POST",
1158
- auth: "user",
1304
+ tags: [TAG_TEMPLATES.publicWholeSeriesOfferings, "course-checkout"],
1305
+ auth: "public",
1159
1306
  responseKind: "json",
1160
1307
  errors: [
1308
+ "auth:unauthenticated",
1309
+ "validation:invalid_input",
1161
1310
  "resource:not_found",
1162
1311
  "resource:conflict",
1163
1312
  "server:internal_error"
1164
1313
  ]
1165
1314
  },
1166
- resumeAppointmentReservation: {
1167
- 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",
1168
1327
  method: "POST",
1169
1328
  auth: "user",
1170
- responseKind: "json",
1171
- errors: [
1172
- "resource:not_found",
1173
- "resource:conflict",
1174
- "server:internal_error"
1175
- ]
1329
+ responseKind: "stream"
1176
1330
  },
1177
- endAppointmentReservation: {
1178
- path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/end",
1331
+ aiChat: {
1332
+ path: "/ai/chat",
1179
1333
  method: "POST",
1180
1334
  auth: "user",
1181
- responseKind: "json",
1182
- errors: [
1183
- "validation:invalid_input",
1184
- "resource:not_found",
1185
- "resource:conflict",
1186
- "server:internal_error"
1187
- ]
1335
+ responseKind: "stream"
1188
1336
  },
1189
- previewAppointmentReservationRun: {
1190
- path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/run-preview",
1337
+ aiDesignerThemeApply: {
1338
+ path: "/sites/{siteId}/ai/designer/theme/apply",
1191
1339
  method: "POST",
1340
+ tags: [TAG_TEMPLATES.siteCollection, TAG_TEMPLATES.siteTheme],
1192
1341
  auth: "user",
1193
- responseKind: "json",
1194
- errors: [
1195
- "validation:invalid_input",
1196
- "resource:not_found",
1197
- "resource:conflict",
1198
- "server:internal_error"
1199
- ]
1342
+ responseKind: "json"
1200
1343
  },
1201
- createAppointmentReservationRun: {
1202
- path: "/sites/{siteId}/bookings/appointment-reservations/{reservationId}/runs",
1344
+ aiDesignerPageOpsApply: {
1345
+ path: "/sites/{siteId}/ai/designer/page/apply",
1203
1346
  method: "POST",
1347
+ tags: [TAG_TEMPLATES.siteCollection],
1204
1348
  auth: "user",
1205
- responseKind: "json",
1206
- errors: [
1207
- "validation:invalid_input",
1208
- "resource:not_found",
1209
- "resource:conflict",
1210
- "server:internal_error"
1211
- ]
1349
+ responseKind: "json"
1212
1350
  },
1213
- createTeamMemberProfile: {
1214
- path: "/sites/{siteId}/bookings/resources/{resourceId}/profile",
1351
+ applySeoChanges: {
1352
+ path: "/seo/apply",
1215
1353
  method: "POST",
1216
1354
  auth: "user",
1217
- responseKind: "json",
1218
- errors: [
1219
- "validation:invalid_input",
1220
- "resource:not_found",
1221
- "resource:conflict",
1222
- "server:internal_error"
1223
- ]
1355
+ responseKind: "json"
1224
1356
  },
1225
- updateTeamMemberProfilePolicy: {
1226
- path: "/sites/{siteId}/bookings/resources/profile-policy",
1227
- method: "PUT",
1357
+ aiCreateBriefChat: {
1358
+ path: "/ai/chat/create-brief",
1359
+ method: "POST",
1228
1360
  auth: "user",
1229
- responseKind: "json",
1230
- errors: ["validation:invalid_input", "server:internal_error"]
1361
+ responseKind: "json"
1231
1362
  },
1232
- updateTeamMemberProfileContent: {
1233
- path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/content",
1234
- method: "PUT",
1235
- tags: [
1236
- "site-{siteId}",
1237
- "content-{siteId}-team-member",
1238
- "content-entry-{entryId}"
1239
- ],
1363
+ aiPatchDryRun: {
1364
+ path: "/ai/patch/dry-run",
1365
+ method: "POST",
1240
1366
  auth: "user",
1241
- responseKind: "json",
1242
- errors: [
1243
- "validation:invalid_input",
1244
- "resource:not_found",
1245
- "resource:conflict",
1246
- "server:internal_error"
1247
- ]
1367
+ responseKind: "json"
1248
1368
  },
1249
- publishTeamMemberProfile: {
1250
- path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/publish",
1369
+ aiPatchApply: {
1370
+ path: "/ai/patch/apply",
1251
1371
  method: "POST",
1252
- tags: [
1253
- "site-{siteId}",
1254
- "content-{siteId}-team-member",
1255
- "content-entry-{entryId}"
1256
- ],
1257
1372
  auth: "user",
1258
- responseKind: "json",
1259
- errors: [
1260
- "validation:invalid_input",
1261
- "resource:not_found",
1262
- "server:internal_error"
1263
- ]
1373
+ responseKind: "json"
1264
1374
  },
1265
- discardTeamMemberProfileDraft: {
1266
- path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/discard",
1375
+ aiPlaygroundProposeMulti: {
1376
+ path: "/sites/{siteId}/ai/playground/propose-multi",
1267
1377
  method: "POST",
1268
- tags: [
1269
- "site-{siteId}",
1270
- "content-{siteId}-team-member",
1271
- "content-entry-{entryId}"
1272
- ],
1273
1378
  auth: "user",
1274
- responseKind: "json",
1275
- errors: [
1276
- "validation:invalid_input",
1277
- "resource:not_found",
1278
- "resource:conflict",
1279
- "server:internal_error"
1280
- ]
1379
+ responseKind: "stream"
1281
1380
  },
1282
- unpublishTeamMemberProfile: {
1283
- 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",
1284
1389
  method: "POST",
1285
- tags: [
1286
- "site-{siteId}",
1287
- "content-{siteId}-team-member",
1288
- "content-entry-{entryId}"
1289
- ],
1290
1390
  auth: "user",
1291
- responseKind: "json",
1292
- errors: [
1293
- "validation:invalid_input",
1294
- "resource:not_found",
1295
- "resource:conflict",
1296
- "server:internal_error"
1297
- ]
1391
+ responseKind: "stream"
1298
1392
  },
1299
- scheduleTeamMemberProfile: {
1300
- path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/schedule",
1393
+ aiDesignerChat: {
1394
+ path: "/sites/{siteId}/ai/designer/chat",
1301
1395
  method: "POST",
1302
- tags: [
1303
- "site-{siteId}",
1304
- "content-{siteId}-team-member",
1305
- "content-entry-{entryId}"
1306
- ],
1307
1396
  auth: "user",
1308
- responseKind: "json",
1309
- errors: [
1310
- "validation:invalid_input",
1311
- "resource:not_found",
1312
- "resource:conflict",
1313
- "server:internal_error"
1314
- ]
1397
+ responseKind: "stream"
1315
1398
  },
1316
- cancelScheduledTeamMemberProfile: {
1317
- path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/schedule",
1318
- method: "DELETE",
1319
- tags: [
1320
- "site-{siteId}",
1321
- "content-{siteId}-team-member",
1322
- "content-entry-{entryId}"
1323
- ],
1399
+ aiPlaygroundPageConvert: {
1400
+ path: "/sites/{siteId}/ai/playground/page-convert",
1401
+ method: "POST",
1324
1402
  auth: "user",
1325
- responseKind: "json",
1326
- errors: [
1327
- "validation:invalid_input",
1328
- "resource:not_found",
1329
- "resource:conflict",
1330
- "server:internal_error"
1331
- ]
1403
+ responseKind: "json"
1332
1404
  },
1333
- updateTeamMemberProfileRouteMetadata: {
1334
- path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/routes/{routeId}/metadata",
1335
- method: "PATCH",
1336
- tags: [
1337
- TAG_TEMPLATES.siteCollection,
1338
- TAG_TEMPLATES.siteRoutableContent,
1339
- TAG_TEMPLATES.routeById
1340
- ],
1405
+ aiPlaygroundPageConvertJobsCreate: {
1406
+ path: "/sites/{siteId}/ai/playground/page-convert/jobs",
1407
+ method: "POST",
1341
1408
  auth: "user",
1342
- responseKind: "json",
1343
- errors: [
1344
- "validation:invalid_input",
1345
- "resource:not_found",
1346
- "resource:conflict",
1347
- "server:internal_error"
1348
- ]
1409
+ responseKind: "json"
1349
1410
  },
1350
- listAppointmentServices: {
1351
- path: "/sites/{siteId}/bookings/services",
1411
+ aiPlaygroundPageConvertJobsList: {
1412
+ path: "/sites/{siteId}/ai/playground/page-convert/jobs",
1352
1413
  method: "GET",
1353
1414
  auth: "user",
1354
1415
  responseKind: "json"
1355
1416
  },
1356
- exportAppointmentServicesCsv: {
1357
- path: "/sites/{siteId}/bookings/services/export.csv",
1358
- method: "GET",
1359
- tags: [
1360
- "site-{siteId}",
1361
- "bookings",
1362
- "appointment-services-{siteId}"
1363
- ],
1364
- errors: [],
1417
+ aiPlaygroundPageConvertJobGet: {
1418
+ path: "/sites/{siteId}/ai/playground/page-convert/jobs/{jobId}",
1419
+ method: "GET",
1365
1420
  auth: "user",
1366
- responseKind: "blob"
1421
+ responseKind: "json"
1367
1422
  },
1368
- createAppointmentService: {
1369
- path: "/sites/{siteId}/bookings/services",
1423
+ aiPlaygroundPageConvertJobRun: {
1424
+ path: "/sites/{siteId}/ai/playground/page-convert/jobs/{jobId}/run",
1370
1425
  method: "POST",
1371
1426
  auth: "user",
1372
- responseKind: "json",
1373
- errors: ["validation:invalid_input", "server:internal_error"]
1427
+ responseKind: "json"
1374
1428
  },
1375
- getAppointmentService: {
1376
- path: "/sites/{siteId}/bookings/services/{serviceId}",
1429
+ aiPlaygroundPageConvertJobEvents: {
1430
+ path: "/sites/{siteId}/ai/playground/page-convert/jobs/{jobId}/events",
1377
1431
  method: "GET",
1378
1432
  auth: "user",
1379
1433
  responseKind: "json"
1380
1434
  },
1381
- updateAppointmentService: {
1382
- path: "/sites/{siteId}/bookings/services/{serviceId}",
1383
- method: "PUT",
1435
+ aiGenerateSite: {
1436
+ path: "/sites/{siteId}/ai/generate",
1437
+ method: "POST",
1384
1438
  auth: "user",
1385
1439
  responseKind: "json",
1386
- errors: [
1387
- "validation:invalid_input",
1388
- "resource:not_found",
1389
- "server:internal_error"
1390
- ]
1440
+ demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
1391
1441
  },
1392
- deleteAppointmentService: {
1393
- path: "/sites/{siteId}/bookings/services/{serviceId}",
1394
- method: "DELETE",
1395
- auth: "user",
1396
- responseKind: "json",
1397
- 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"
1398
1448
  },
1399
- getAppointmentSetup: {
1400
- path: "/sites/{siteId}/bookings/appointment-setup",
1449
+ listOnboardingPreviewThemes: {
1450
+ path: "/public/sites/{siteId}/onboarding/themes",
1401
1451
  method: "GET",
1402
- auth: "user",
1403
- responseKind: "json",
1404
- errors: ["server:internal_error"]
1452
+ auth: "public",
1453
+ errors: [],
1454
+ responseKind: "json"
1405
1455
  },
1406
- applyAppointmentSetup: {
1407
- path: "/sites/{siteId}/bookings/appointment-setup",
1456
+ acknowledgeLaunchRequirement: {
1457
+ path: "/sites/{siteId}/launch/acknowledge-requirement",
1408
1458
  method: "POST",
1409
1459
  auth: "user",
1460
+ errors: [],
1410
1461
  responseKind: "json",
1411
- errors: ["validation:invalid_input", "server:internal_error"]
1462
+ demoMutation: DEMO_MUTATION_BLOCKED_DISABLED
1412
1463
  },
1413
- getAppointmentServicesReference: {
1414
- path: "/sites/{siteId}/bookings/services/reference",
1415
- method: "GET",
1464
+ goLiveSite: {
1465
+ path: "/sites/{siteId}/launch/go-live",
1466
+ method: "POST",
1416
1467
  auth: "user",
1468
+ errors: [],
1417
1469
  responseKind: "json"
1418
1470
  },
1419
- getAppointmentResourcesReference: {
1420
- path: "/sites/{siteId}/bookings/resources/reference",
1421
- method: "GET",
1422
- auth: "user",
1471
+ resendOnboardingPreviewConfirmation: {
1472
+ path: "/public/sites/{siteId}/onboarding/resend-confirmation",
1473
+ method: "POST",
1474
+ auth: "public",
1475
+ errors: [],
1423
1476
  responseKind: "json"
1424
1477
  },
1425
- getResourceServices: {
1426
- path: "/sites/{siteId}/bookings/resources/{resourceId}/services",
1427
- method: "GET",
1428
- auth: "user",
1478
+ createPublicOnboardingAttempt: {
1479
+ path: "/public/onboarding/attempts",
1480
+ method: "POST",
1481
+ auth: "public",
1482
+ errors: [],
1429
1483
  responseKind: "json"
1430
1484
  },
1431
- updateResourceServices: {
1432
- path: "/sites/{siteId}/bookings/resources/{resourceId}/services",
1433
- method: "PUT",
1434
- auth: "user",
1485
+ createPublicOnboardingLogoUploadUrl: {
1486
+ path: "/public/onboarding/attempts/{attemptToken}/logo-upload-url",
1487
+ method: "POST",
1488
+ auth: "public",
1489
+ errors: [],
1435
1490
  responseKind: "json"
1436
1491
  },
1437
- getServiceResources: {
1438
- path: "/sites/{siteId}/bookings/services/{serviceId}/resources",
1439
- method: "GET",
1440
- auth: "user",
1492
+ uploadPublicOnboardingLogo: {
1493
+ path: "/public/onboarding/attempts/{attemptToken}/logo",
1494
+ method: "POST",
1495
+ auth: "public",
1496
+ errors: [],
1441
1497
  responseKind: "json"
1442
1498
  },
1443
- updateServiceResources: {
1444
- path: "/sites/{siteId}/bookings/services/{serviceId}/resources",
1445
- method: "PUT",
1446
- auth: "user",
1499
+ getPublicOnboardingAttempt: {
1500
+ path: "/public/onboarding/attempts/{attemptToken}",
1501
+ method: "GET",
1502
+ auth: "public",
1503
+ errors: [],
1447
1504
  responseKind: "json"
1448
1505
  },
1449
- listAvailabilityRules: {
1450
- path: "/sites/{siteId}/bookings/resources/{resourceId}/availability",
1506
+ getPublicOnboardingAttemptProgress: {
1507
+ path: "/public/onboarding/attempts/{attemptToken}/status",
1451
1508
  method: "GET",
1452
- auth: "user",
1453
- responseKind: "json",
1454
- errors: ["resource:not_found", "server:internal_error"]
1509
+ auth: "public",
1510
+ errors: [],
1511
+ responseKind: "json"
1455
1512
  },
1456
- setWeeklyAvailability: {
1457
- path: "/sites/{siteId}/bookings/resources/{resourceId}/weekly-availability",
1458
- 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",
1459
1530
  auth: "user",
1460
1531
  responseKind: "json",
1461
- errors: [
1462
- "validation:invalid_input",
1463
- "resource:not_found",
1464
- "server:internal_error"
1465
- ]
1532
+ demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
1466
1533
  },
1467
- setServiceSpecificAvailability: {
1468
- path: "/sites/{siteId}/bookings/resources/{resourceId}/service-availability",
1469
- method: "PUT",
1534
+ aiSiteWizardIntakeTriage: {
1535
+ path: "/sites/{siteId}/ai/site-wizard/intake-triage",
1536
+ method: "POST",
1470
1537
  auth: "user",
1471
1538
  responseKind: "json",
1472
- errors: [
1473
- "validation:invalid_input",
1474
- "resource:not_found",
1475
- "server:internal_error"
1476
- ]
1539
+ demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
1477
1540
  },
1478
- deleteServiceSpecificAvailability: {
1479
- path: "/sites/{siteId}/bookings/resources/{resourceId}/service-availability/{scheduleId}",
1480
- method: "DELETE",
1541
+ aiSiteWizardTelemetry: {
1542
+ path: "/sites/{siteId}/ai/site-wizard/telemetry",
1543
+ method: "POST",
1481
1544
  auth: "user",
1545
+ errors: [],
1482
1546
  responseKind: "json",
1483
- errors: ["resource:not_found", "server:internal_error"]
1547
+ demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
1484
1548
  },
1485
- listBlackouts: {
1486
- 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",
1487
1574
  method: "GET",
1488
1575
  auth: "user",
1489
- responseKind: "json",
1490
- errors: ["resource:not_found", "server:internal_error"]
1576
+ responseKind: "json"
1491
1577
  },
1492
- createBlackout: {
1493
- path: "/sites/{siteId}/bookings/resources/{resourceId}/blackouts",
1578
+ createRedirectRule: {
1579
+ path: "/sites/{siteId}/redirects",
1494
1580
  method: "POST",
1581
+ errors: ["validation:invalid_input", "resource:not_found"],
1495
1582
  auth: "user",
1496
- responseKind: "json",
1497
- errors: [
1498
- "validation:invalid_input",
1499
- "resource:not_found",
1500
- "server:internal_error"
1501
- ]
1583
+ responseKind: "json"
1502
1584
  },
1503
- deleteBlackout: {
1504
- path: "/sites/{siteId}/bookings/resources/{resourceId}/blackouts/{blackoutId}",
1585
+ deleteRedirectRule: {
1586
+ path: "/sites/{siteId}/redirects/{ruleId}",
1505
1587
  method: "DELETE",
1588
+ errors: ["resource:not_found"],
1506
1589
  auth: "user",
1507
- responseKind: "json",
1508
- errors: ["resource:not_found", "server:internal_error"]
1590
+ responseKind: "json"
1509
1591
  },
1510
- getCalendarStatus: {
1511
- path: "/sites/{siteId}/bookings/resources/{resourceId}/calendar",
1592
+ listWebhooks: {
1593
+ path: "/sites/{siteId}/webhooks",
1512
1594
  method: "GET",
1595
+ tags: ["site-{siteId}", "webhooks"],
1513
1596
  auth: "user",
1514
- responseKind: "json",
1515
- errors: ["auth:forbidden", "server:internal_error"]
1597
+ responseKind: "json"
1516
1598
  },
1517
- updateCalendarPreferences: {
1518
- path: "/sites/{siteId}/bookings/resources/{resourceId}/calendar",
1519
- method: "PUT",
1599
+ createWebhook: {
1600
+ path: "/sites/{siteId}/webhooks",
1601
+ method: "POST",
1602
+ tags: ["site-{siteId}", "webhooks"],
1520
1603
  auth: "user",
1521
- responseKind: "json",
1522
- errors: [
1523
- "validation:invalid_input",
1524
- "auth:forbidden",
1525
- "resource:not_found",
1526
- "server:internal_error"
1527
- ]
1604
+ responseKind: "json"
1528
1605
  },
1529
- disconnectCalendar: {
1530
- 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}",
1531
1622
  method: "DELETE",
1623
+ tags: ["site-{siteId}", "webhooks"],
1532
1624
  auth: "user",
1533
- responseKind: "json",
1534
- errors: [
1535
- "auth:forbidden",
1536
- "resource:not_found",
1537
- "server:internal_error"
1538
- ]
1625
+ responseKind: "json"
1539
1626
  },
1540
- getResourceCalendarFeed: {
1541
- path: "/sites/{siteId}/bookings/resources/{resourceId}/calendar/feed",
1627
+ getSdkDeploymentHealth: {
1628
+ path: "/sites/{siteId}/sdk-deployment/health",
1542
1629
  method: "GET",
1630
+ tags: ["site-{siteId}", "webhooks"],
1543
1631
  auth: "user",
1544
- responseKind: "json",
1545
- errors: [
1546
- "auth:forbidden",
1547
- "resource:not_found",
1548
- "server:internal_error"
1549
- ]
1632
+ errors: [],
1633
+ responseKind: "json"
1550
1634
  },
1551
- regenerateResourceCalendarFeed: {
1552
- path: "/sites/{siteId}/bookings/resources/{resourceId}/calendar/feed",
1635
+ setupSdkDeploymentRevalidationWebhook: {
1636
+ path: "/sites/{siteId}/sdk-deployment/revalidation-webhook",
1553
1637
  method: "POST",
1638
+ tags: ["site-{siteId}", "webhooks"],
1554
1639
  auth: "user",
1640
+ errors: ["validation:invalid_input", "resource:conflict"],
1555
1641
  responseKind: "json",
1556
- errors: [
1557
- "auth:forbidden",
1558
- "resource:not_found",
1559
- "server:internal_error"
1560
- ]
1561
- },
1562
- revokeResourceCalendarFeed: {
1563
- path: "/sites/{siteId}/bookings/resources/{resourceId}/calendar/feed",
1564
- method: "DELETE",
1565
- auth: "user",
1566
- responseKind: "json",
1567
- errors: [
1568
- "auth:forbidden",
1569
- "resource:not_found",
1570
- "server:internal_error"
1571
- ]
1642
+ demoMutation: DEMO_MUTATION_BLOCKED_DISABLED
1572
1643
  },
1573
- getVenueCalendarFeed: {
1574
- path: "/sites/{siteId}/bookings/venues/{venueId}/calendar/feed",
1644
+ listSiteApiKeys: {
1645
+ path: "/sites/{siteId}/api-keys",
1575
1646
  method: "GET",
1576
1647
  auth: "user",
1577
- responseKind: "json",
1578
- errors: [
1579
- "auth:forbidden",
1580
- "resource:not_found",
1581
- "server:internal_error"
1582
- ]
1648
+ tags: ["site-{siteId}", "api-keys"],
1649
+ responseKind: "json"
1583
1650
  },
1584
- regenerateVenueCalendarFeed: {
1585
- path: "/sites/{siteId}/bookings/venues/{venueId}/calendar/feed",
1651
+ createSiteApiKey: {
1652
+ path: "/sites/{siteId}/api-keys",
1586
1653
  method: "POST",
1587
1654
  auth: "user",
1588
- responseKind: "json",
1589
- errors: [
1590
- "auth:forbidden",
1591
- "resource:not_found",
1592
- "server:internal_error"
1593
- ]
1655
+ tags: ["site-{siteId}", "api-keys"],
1656
+ responseKind: "json"
1594
1657
  },
1595
- revokeVenueCalendarFeed: {
1596
- path: "/sites/{siteId}/bookings/venues/{venueId}/calendar/feed",
1658
+ revokeSiteApiKey: {
1659
+ path: "/sites/{siteId}/api-keys/{keyId}",
1597
1660
  method: "DELETE",
1598
1661
  auth: "user",
1599
- responseKind: "json",
1600
- errors: [
1601
- "auth:forbidden",
1602
- "resource:not_found",
1603
- "server:internal_error"
1604
- ]
1605
- },
1606
- googleCalendarAuthorize: {
1607
- path: "/sites/{siteId}/bookings/calendar/google/authorize",
1608
- method: "GET",
1609
- auth: "user",
1610
- responseKind: "void"
1662
+ tags: ["site-{siteId}", "api-keys"],
1663
+ responseKind: "json"
1611
1664
  },
1612
- googleCalendarCallback: {
1613
- path: "/bookings/calendar/google/callback",
1665
+ getSitePreviewKey: {
1666
+ path: "/sites/{siteId}/api-keys/preview",
1614
1667
  method: "GET",
1615
1668
  auth: "user",
1616
- responseKind: "void"
1669
+ tags: [
1670
+ "site-{siteId}",
1671
+ "api-keys",
1672
+ "preview-key"
1673
+ ],
1674
+ responseKind: "json"
1617
1675
  },
1618
- getAvailableSlots: {
1619
- path: "/sites/{siteId}/bookings/availability/slots",
1620
- method: "GET",
1676
+ createSitePreviewKey: {
1677
+ path: "/sites/{siteId}/api-keys/preview",
1678
+ method: "POST",
1621
1679
  auth: "user",
1680
+ tags: [
1681
+ "site-{siteId}",
1682
+ "api-keys",
1683
+ "preview-key"
1684
+ ],
1622
1685
  responseKind: "json"
1623
1686
  },
1624
- listAppointments: {
1625
- path: "/sites/{siteId}/bookings/appointments",
1687
+ getSiteApiKeyAccessLogs: {
1688
+ path: "/sites/{siteId}/api-keys/access-logs",
1626
1689
  method: "GET",
1627
1690
  auth: "user",
1691
+ tags: [
1692
+ "site-{siteId}",
1693
+ "api-keys",
1694
+ "access-logs"
1695
+ ],
1628
1696
  responseKind: "json"
1629
1697
  },
1630
- exportBookingAppointmentsCsv: {
1631
- path: "/sites/{siteId}/bookings/appointments/export.csv",
1698
+ listManagementKeys: {
1699
+ path: "/sites/{siteId}/api-keys/management",
1632
1700
  method: "GET",
1633
1701
  auth: "user",
1634
- errors: [],
1635
- responseKind: "blob"
1702
+ tags: [
1703
+ "site-{siteId}",
1704
+ "api-keys",
1705
+ "management-keys"
1706
+ ],
1707
+ responseKind: "json"
1636
1708
  },
1637
- createAppointment: {
1638
- path: "/sites/{siteId}/bookings/appointments",
1709
+ createManagementKey: {
1710
+ path: "/sites/{siteId}/api-keys/management",
1639
1711
  method: "POST",
1640
1712
  auth: "user",
1713
+ tags: [
1714
+ "site-{siteId}",
1715
+ "api-keys",
1716
+ "management-keys"
1717
+ ],
1641
1718
  responseKind: "json"
1642
1719
  },
1643
- upsertBookingRequirementConfig: {
1644
- path: "/sites/{siteId}/bookings/requirements/config",
1645
- method: "PUT",
1720
+ revokeManagementKey: {
1721
+ path: "/sites/{siteId}/api-keys/management",
1722
+ method: "DELETE",
1646
1723
  auth: "user",
1647
- responseKind: "json",
1648
- errors: [
1649
- "validation:invalid_input",
1650
- "resource:not_found",
1651
- "server:internal_error"
1652
- ]
1724
+ tags: [
1725
+ "site-{siteId}",
1726
+ "api-keys",
1727
+ "management-keys"
1728
+ ],
1729
+ responseKind: "json"
1653
1730
  },
1654
- cancelAppointment: {
1655
- path: "/sites/{siteId}/bookings/appointments/{appointmentId}/cancel",
1656
- method: "POST",
1731
+ getBookingSettings: {
1732
+ path: "/sites/{siteId}/bookings/settings",
1733
+ method: "GET",
1657
1734
  auth: "user",
1735
+ tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteBookingSettings],
1658
1736
  responseKind: "json"
1659
1737
  },
1660
- rescheduleAppointment: {
1661
- path: "/sites/{siteId}/bookings/appointments/{appointmentId}/reschedule",
1662
- method: "POST",
1738
+ updateBookingSettings: {
1739
+ path: "/sites/{siteId}/bookings/settings",
1740
+ method: "PUT",
1663
1741
  auth: "user",
1742
+ tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteBookingSettings],
1664
1743
  responseKind: "json",
1665
1744
  errors: [
1666
1745
  "validation:invalid_input",
1667
- "resource:not_found",
1668
1746
  "auth:forbidden",
1669
1747
  "resource:conflict",
1670
1748
  "server:internal_error"
1671
1749
  ]
1672
1750
  },
1673
- listCourses: {
1674
- path: "/sites/{siteId}/bookings/courses",
1751
+ listBookingClosures: {
1752
+ path: "/sites/{siteId}/bookings/closures",
1675
1753
  method: "GET",
1676
1754
  auth: "user",
1677
- responseKind: "json"
1678
- },
1679
- exportCoursesCsv: {
1680
- path: "/sites/{siteId}/bookings/courses/export.csv",
1681
- method: "GET",
1682
1755
  tags: [
1683
1756
  "site-{siteId}",
1684
1757
  "bookings",
1685
- "courses-{siteId}"
1758
+ "closures-{siteId}"
1686
1759
  ],
1687
- errors: [],
1688
- auth: "user",
1689
- responseKind: "blob"
1760
+ responseKind: "json",
1761
+ errors: ["auth:forbidden", "server:internal_error"]
1690
1762
  },
1691
- createCourse: {
1692
- path: "/sites/{siteId}/bookings/courses",
1763
+ previewBookingClosure: {
1764
+ path: "/sites/{siteId}/bookings/closures/preview",
1693
1765
  method: "POST",
1694
1766
  auth: "user",
1767
+ tags: [
1768
+ "site-{siteId}",
1769
+ "bookings",
1770
+ "closures-{siteId}"
1771
+ ],
1695
1772
  responseKind: "json",
1696
1773
  errors: [
1697
1774
  "validation:invalid_input",
1698
- "resource:not_found",
1699
- "resource:already_exists",
1700
- "resource:conflict",
1775
+ "auth:forbidden",
1701
1776
  "server:internal_error"
1702
1777
  ]
1703
1778
  },
1704
- getCourse: {
1705
- path: "/sites/{siteId}/bookings/courses/{courseId}",
1706
- method: "GET",
1707
- auth: "user",
1708
- responseKind: "json"
1709
- },
1710
- updateCourse: {
1711
- path: "/sites/{siteId}/bookings/courses/{courseId}",
1712
- method: "PATCH",
1779
+ createBookingClosure: {
1780
+ path: "/sites/{siteId}/bookings/closures",
1781
+ method: "POST",
1713
1782
  auth: "user",
1783
+ tags: [
1784
+ "site-{siteId}",
1785
+ "bookings",
1786
+ "closures-{siteId}"
1787
+ ],
1714
1788
  responseKind: "json",
1715
1789
  errors: [
1716
1790
  "validation:invalid_input",
1717
- "resource:not_found",
1718
1791
  "resource:conflict",
1792
+ "auth:forbidden",
1719
1793
  "server:internal_error"
1720
1794
  ]
1721
1795
  },
1722
- deleteCourse: {
1723
- 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}",
1724
1810
  method: "DELETE",
1725
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",
1726
1836
  responseKind: "json",
1837
+ demoMutation: DEMO_MUTATION_INTERNAL_ONLY,
1727
1838
  errors: [
1728
1839
  "validation:invalid_input",
1840
+ "auth:forbidden",
1729
1841
  "resource:not_found",
1730
- "resource:conflict",
1731
1842
  "server:internal_error"
1732
1843
  ]
1733
1844
  },
1734
- deleteCourseProgram: {
1735
- path: "/sites/{siteId}/bookings/courses/programs/{programId}",
1736
- method: "DELETE",
1845
+ opsUpdateEventAttendeeCheckin: {
1846
+ path: "/ops/sites/{siteId}/events/attendees/{attendeeId}/checkin",
1847
+ method: "POST",
1737
1848
  auth: "user",
1738
1849
  responseKind: "json",
1850
+ demoMutation: DEMO_MUTATION_INTERNAL_ONLY,
1739
1851
  errors: [
1740
1852
  "validation:invalid_input",
1853
+ "auth:forbidden",
1741
1854
  "resource:not_found",
1742
- "resource:conflict",
1743
1855
  "server:internal_error"
1744
1856
  ]
1745
1857
  },
1746
- duplicateCourse: {
1747
- 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",
1748
1866
  method: "POST",
1749
1867
  auth: "user",
1750
1868
  responseKind: "json",
1869
+ demoMutation: DEMO_MUTATION_INTERNAL_ONLY,
1751
1870
  errors: [
1752
1871
  "validation:invalid_input",
1872
+ "auth:forbidden",
1753
1873
  "resource:not_found",
1754
- "resource:already_exists",
1874
+ "resource:conflict",
1755
1875
  "server:internal_error"
1756
1876
  ]
1757
1877
  },
1758
- changeCourseContentOwnership: {
1759
- 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",
1760
1887
  method: "POST",
1761
1888
  auth: "user",
1762
1889
  responseKind: "json",
1763
1890
  errors: [
1764
1891
  "validation:invalid_input",
1892
+ "auth:forbidden",
1765
1893
  "resource:not_found",
1766
1894
  "resource:conflict",
1767
1895
  "server:internal_error"
1768
1896
  ]
1769
1897
  },
1770
- addCourseEnrollment: {
1771
- path: "/sites/{siteId}/bookings/courses/{courseId}/enrollments",
1898
+ opsRefundEventAttendee: {
1899
+ path: "/ops/sites/{siteId}/events/attendees/{attendeeId}/refund",
1772
1900
  method: "POST",
1773
1901
  auth: "user",
1774
1902
  responseKind: "json",
1903
+ demoMutation: DEMO_MUTATION_INTERNAL_ONLY,
1775
1904
  errors: [
1776
1905
  "validation:invalid_input",
1906
+ "auth:forbidden",
1777
1907
  "resource:not_found",
1778
1908
  "resource:conflict",
1779
1909
  "server:internal_error"
1780
1910
  ]
1781
1911
  },
1782
- listCourseEnrollments: {
1783
- path: "/sites/{siteId}/bookings/courses/{courseId}/enrollments",
1912
+ getEmailSettings: {
1913
+ path: "/sites/{siteId}/settings/emails",
1784
1914
  method: "GET",
1915
+ tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings],
1785
1916
  auth: "user",
1786
1917
  responseKind: "json"
1787
1918
  },
1788
- exportCourseEnrollmentsCsv: {
1789
- path: "/sites/{siteId}/bookings/courses/{courseId}/enrollments/export.csv",
1790
- method: "GET",
1919
+ updateEmailSettings: {
1920
+ path: "/sites/{siteId}/settings/emails",
1921
+ method: "PUT",
1922
+ tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings],
1791
1923
  auth: "user",
1792
- errors: [],
1793
- responseKind: "blob"
1924
+ responseKind: "json"
1794
1925
  },
1795
- listCourseWaitlist: {
1796
- path: "/sites/{siteId}/bookings/courses/{courseId}/waitlist",
1797
- method: "GET",
1926
+ sendTestEmail: {
1927
+ path: "/sites/{siteId}/settings/emails/test",
1928
+ method: "POST",
1929
+ tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings],
1798
1930
  auth: "user",
1799
1931
  responseKind: "json",
1800
- errors: []
1801
- },
1802
- exportCourseWaitlistCsv: {
1803
- path: "/sites/{siteId}/bookings/courses/{courseId}/waitlist/export.csv",
1804
- method: "GET",
1805
- tags: [
1806
- "site-{siteId}",
1807
- "bookings",
1808
- "courses-{courseId}"
1809
- ],
1810
- auth: "user",
1811
- responseKind: "blob",
1812
- errors: []
1932
+ demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
1813
1933
  },
1814
- updateCourseEnrollment: {
1815
- path: "/sites/{siteId}/bookings/courses/{courseId}/enrollments/{enrollmentId}",
1816
- method: "PATCH",
1934
+ previewEmailTemplate: {
1935
+ path: "/sites/{siteId}/settings/emails/preview",
1936
+ method: "POST",
1937
+ tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteEmailSettings],
1817
1938
  auth: "user",
1818
- responseKind: "json",
1819
- errors: [
1820
- "validation:invalid_input",
1821
- "resource:not_found",
1822
- "server:internal_error"
1823
- ]
1939
+ responseKind: "json"
1824
1940
  },
1941
+ ...NEWSLETTER_ENDPOINT_DEFINITIONS,
1942
+ ...APPOINTMENT_ENDPOINT_DEFINITIONS,
1943
+ ...COURSE_ENDPOINT_DEFINITIONS,
1825
1944
  getSite: {
1826
1945
  path: "/sites",
1827
1946
  method: "GET",
@@ -2163,7 +2282,13 @@ const API_ENDPOINTS = {
2163
2282
  method: "POST",
2164
2283
  tags: ["site-{siteId}", "content-{siteId}-{type}"],
2165
2284
  auth: "user",
2166
- responseKind: "json"
2285
+ responseKind: "json",
2286
+ errors: [
2287
+ "validation:invalid_input",
2288
+ "resource:not_found",
2289
+ "resource:conflict",
2290
+ "server:internal_error"
2291
+ ]
2167
2292
  },
2168
2293
  getContentEntry: {
2169
2294
  path: "/sites/{siteId}/content/{type}/{entryId}",
@@ -2174,12 +2299,22 @@ const API_ENDPOINTS = {
2174
2299
  "content-entry-{entryId}"
2175
2300
  ],
2176
2301
  auth: "user",
2177
- responseKind: "json"
2302
+ responseKind: "json",
2303
+ errors: [
2304
+ "validation:invalid_input",
2305
+ "resource:not_found",
2306
+ "resource:conflict",
2307
+ "server:internal_error"
2308
+ ]
2178
2309
  },
2179
2310
  listContentEntryVersions: {
2180
2311
  path: "/sites/{siteId}/content/{type}/{entryId}/versions",
2181
2312
  method: "GET",
2182
- errors: ["validation:invalid_input", "resource:not_found"],
2313
+ errors: [
2314
+ "validation:invalid_input",
2315
+ "resource:not_found",
2316
+ "resource:conflict"
2317
+ ],
2183
2318
  tags: [
2184
2319
  "site-{siteId}",
2185
2320
  "content-{siteId}-{type}",
@@ -2191,7 +2326,11 @@ const API_ENDPOINTS = {
2191
2326
  getContentEntryVersion: {
2192
2327
  path: "/sites/{siteId}/content/{type}/{entryId}/versions/{versionId}",
2193
2328
  method: "GET",
2194
- errors: ["validation:invalid_input", "resource:not_found"],
2329
+ errors: [
2330
+ "validation:invalid_input",
2331
+ "resource:not_found",
2332
+ "resource:conflict"
2333
+ ],
2195
2334
  tags: [
2196
2335
  "site-{siteId}",
2197
2336
  "content-{siteId}-{type}",
@@ -2226,6 +2365,12 @@ const API_ENDPOINTS = {
2226
2365
  "content-entry-{entryId}"
2227
2366
  ],
2228
2367
  auth: "user",
2368
+ errors: [
2369
+ "validation:invalid_input",
2370
+ "resource:not_found",
2371
+ "resource:conflict",
2372
+ "server:internal_error"
2373
+ ],
2229
2374
  responseKind: "json"
2230
2375
  },
2231
2376
  updatePageSurfaceDraftContent: {
@@ -2295,6 +2440,7 @@ const API_ENDPOINTS = {
2295
2440
  errors: [
2296
2441
  "validation:invalid_input",
2297
2442
  "resource:not_found",
2443
+ "resource:conflict",
2298
2444
  "server:internal_error"
2299
2445
  ],
2300
2446
  tags: [
@@ -2311,6 +2457,7 @@ const API_ENDPOINTS = {
2311
2457
  errors: [
2312
2458
  "validation:invalid_input",
2313
2459
  "resource:not_found",
2460
+ "resource:conflict",
2314
2461
  "server:internal_error"
2315
2462
  ],
2316
2463
  tags: [
@@ -2331,6 +2478,12 @@ const API_ENDPOINTS = {
2331
2478
  TAG_TEMPLATES.routeById
2332
2479
  ],
2333
2480
  auth: "user",
2481
+ errors: [
2482
+ "validation:invalid_input",
2483
+ "resource:not_found",
2484
+ "resource:conflict",
2485
+ "server:internal_error"
2486
+ ],
2334
2487
  responseKind: "json"
2335
2488
  },
2336
2489
  publishContentEntry: {
@@ -2387,6 +2540,13 @@ const API_ENDPOINTS = {
2387
2540
  "content-entry-{entryId}"
2388
2541
  ],
2389
2542
  auth: "user",
2543
+ errors: [
2544
+ "auth:forbidden",
2545
+ "validation:invalid_input",
2546
+ "resource:not_found",
2547
+ "resource:conflict",
2548
+ "server:internal_error"
2549
+ ],
2390
2550
  responseKind: "json"
2391
2551
  },
2392
2552
  unpublishContentEntry: {
@@ -2439,7 +2599,13 @@ const API_ENDPOINTS = {
2439
2599
  "content-entry-{entryId}"
2440
2600
  ],
2441
2601
  auth: "user",
2442
- responseKind: "json"
2602
+ responseKind: "json",
2603
+ errors: [
2604
+ "validation:invalid_input",
2605
+ "resource:not_found",
2606
+ "resource:conflict",
2607
+ "server:internal_error"
2608
+ ]
2443
2609
  },
2444
2610
  bulkPublishContentEntries: {
2445
2611
  path: "/sites/{siteId}/content/{type}/bulk-publish",
@@ -2461,6 +2627,12 @@ const API_ENDPOINTS = {
2461
2627
  tags: ["site-{siteId}", "content-{siteId}-{type}"],
2462
2628
  auth: "user",
2463
2629
  responseKind: "json",
2630
+ errors: [
2631
+ "validation:invalid_input",
2632
+ "resource:not_found",
2633
+ "resource:conflict",
2634
+ "server:internal_error"
2635
+ ],
2464
2636
  demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
2465
2637
  },
2466
2638
  updateSiteGeneralSettings: {
@@ -3731,7 +3903,7 @@ const API_ENDPOINTS = {
3731
3903
  ],
3732
3904
  auth: "user",
3733
3905
  responseKind: "json",
3734
- errors: ["resource:not_found"]
3906
+ errors: ["resource:not_found", "resource:conflict"]
3735
3907
  },
3736
3908
  listEntryPageContentSlots: {
3737
3909
  path: "/sites/{siteId}/content/{type}/{entryId}/slots",
@@ -3744,7 +3916,7 @@ const API_ENDPOINTS = {
3744
3916
  ],
3745
3917
  auth: "user",
3746
3918
  responseKind: "json",
3747
- errors: ["resource:not_found"]
3919
+ errors: ["resource:not_found", "resource:conflict"]
3748
3920
  },
3749
3921
  createEntrySlotBlock: {
3750
3922
  path: "/sites/{siteId}/content/{type}/{entryId}/slots/{slotKey}/blocks",
@@ -3757,7 +3929,11 @@ const API_ENDPOINTS = {
3757
3929
  ],
3758
3930
  auth: "user",
3759
3931
  responseKind: "json",
3760
- errors: ["validation:invalid_input", "resource:not_found"]
3932
+ errors: [
3933
+ "validation:invalid_input",
3934
+ "resource:not_found",
3935
+ "resource:conflict"
3936
+ ]
3761
3937
  },
3762
3938
  reorderEntrySlotBlocks: {
3763
3939
  path: "/sites/{siteId}/content/{type}/{entryId}/slots/{slotKey}/blocks/reorder",
@@ -3770,7 +3946,11 @@ const API_ENDPOINTS = {
3770
3946
  ],
3771
3947
  auth: "user",
3772
3948
  responseKind: "json",
3773
- errors: ["validation:invalid_input", "resource:not_found"]
3949
+ errors: [
3950
+ "validation:invalid_input",
3951
+ "resource:not_found",
3952
+ "resource:conflict"
3953
+ ]
3774
3954
  },
3775
3955
  deleteEntrySlotBlock: {
3776
3956
  path: "/sites/{siteId}/content/{type}/{entryId}/slots/{slotKey}/blocks/{blockId}",
@@ -3783,7 +3963,7 @@ const API_ENDPOINTS = {
3783
3963
  ],
3784
3964
  auth: "user",
3785
3965
  responseKind: "json",
3786
- errors: ["resource:not_found"]
3966
+ errors: ["resource:not_found", "resource:conflict"]
3787
3967
  },
3788
3968
  listPageSurfaceContentSlots: {
3789
3969
  path: "/sites/{siteId}/page-surfaces/{pageSurfaceId}/slots",
@@ -4461,14 +4641,7 @@ const API_ENDPOINTS = {
4461
4641
  auth: "public",
4462
4642
  responseKind: "json"
4463
4643
  },
4464
- listPublicCourses: {
4465
- path: "/public/sites/{siteId}/courses",
4466
- method: "GET",
4467
- revalidate: 60,
4468
- tags: [TAG_TEMPLATES.publicCourses],
4469
- auth: "public",
4470
- responseKind: "json"
4471
- },
4644
+ ...PUBLIC_WHOLE_SERIES_ENDPOINT_DEFINITIONS,
4472
4645
  listPublicTeamMembers: {
4473
4646
  path: "/public/sites/{siteId}/team-members",
4474
4647
  method: "GET",
@@ -4478,33 +4651,11 @@ const API_ENDPOINTS = {
4478
4651
  auth: "public",
4479
4652
  responseKind: "json"
4480
4653
  },
4481
- getPublicCourse: {
4482
- path: "/public/sites/{siteId}/courses/{courseId}",
4483
- method: "GET",
4484
- revalidate: 60,
4485
- tags: [TAG_TEMPLATES.publicCourses],
4486
- auth: "public",
4487
- responseKind: "json"
4488
- },
4489
- enrollInCourse: {
4490
- path: "/public/sites/{siteId}/courses/enroll",
4491
- method: "POST",
4492
- tags: [TAG_TEMPLATES.publicCourses, "course-enrollment"],
4493
- auth: "public",
4494
- responseKind: "json"
4495
- },
4496
- checkCourseEligibility: {
4497
- path: "/public/sites/{siteId}/courses/check-eligibility",
4498
- method: "POST",
4499
- tags: [TAG_TEMPLATES.publicCourses, "course-enrollment"],
4500
- auth: "public",
4501
- responseKind: "json"
4502
- },
4503
4654
  resolveWaitlistClaim: {
4504
4655
  path: "/public/sites/{siteId}/waitlists/claim/resolve",
4505
4656
  method: "POST",
4506
4657
  tags: [
4507
- TAG_TEMPLATES.publicCourses,
4658
+ TAG_TEMPLATES.publicWholeSeriesOfferings,
4508
4659
  TAG_TEMPLATES.publicEvents,
4509
4660
  "waitlist-claims"
4510
4661
  ],
@@ -4517,27 +4668,6 @@ const API_ENDPOINTS = {
4517
4668
  "server:internal_error"
4518
4669
  ]
4519
4670
  },
4520
- createCourseCheckout: {
4521
- path: "/public/sites/{siteId}/courses/checkout",
4522
- method: "POST",
4523
- tags: [TAG_TEMPLATES.publicCourses, "course-checkout"],
4524
- auth: "public",
4525
- responseKind: "json",
4526
- errors: [
4527
- "auth:unauthenticated",
4528
- "validation:invalid_input",
4529
- "resource:not_found",
4530
- "resource:conflict",
4531
- "server:internal_error"
4532
- ]
4533
- },
4534
- getCourseRegistrationStatus: {
4535
- path: "/public/sites/{siteId}/courses/registration-status",
4536
- method: "GET",
4537
- tags: [TAG_TEMPLATES.publicCourses, "course-checkout"],
4538
- auth: "public",
4539
- responseKind: "json"
4540
- },
4541
4671
  listPublicPasses: {
4542
4672
  path: "/public/sites/{siteId}/bookings/products/passes",
4543
4673
  method: "GET",
@@ -4638,14 +4768,6 @@ const API_ENDPOINTS = {
4638
4768
  responseKind: "json",
4639
4769
  errors: []
4640
4770
  },
4641
- resolveEntrySubroute: {
4642
- path: "/public/sites/{siteId}/routing/subroutes/resolve",
4643
- method: "GET",
4644
- revalidate: 60,
4645
- tags: ["site-{siteId}", "entry-subroute"],
4646
- auth: "public",
4647
- responseKind: "json"
4648
- },
4649
4771
  resolveEventOccurrence: {
4650
4772
  path: "/public/sites/{siteId}/events/occurrences/resolve",
4651
4773
  method: "GET",
@@ -4989,13 +5111,6 @@ const API_ENDPOINTS = {
4989
5111
  auth: "user",
4990
5112
  responseKind: "json"
4991
5113
  },
4992
- getEventSeriesContentEditor: {
4993
- path: "/sites/{siteId}/bookings/event-series/{seriesId}/content-editor",
4994
- method: "GET",
4995
- tags: ["site-{siteId}", "event-series-{seriesId}"],
4996
- auth: "user",
4997
- responseKind: "json"
4998
- },
4999
5114
  updateEventSeries: {
5000
5115
  path: "/sites/{siteId}/bookings/event-series/{seriesId}",
5001
5116
  method: "PATCH",
@@ -6334,6 +6449,7 @@ const API_ENDPOINTS = {
6334
6449
  errors: [
6335
6450
  "validation:invalid_input",
6336
6451
  "resource:not_found",
6452
+ "resource:conflict",
6337
6453
  "server:internal_error"
6338
6454
  ],
6339
6455
  auth: "service",
@@ -6447,24 +6563,12 @@ const API_ENDPOINTS = {
6447
6563
  auth: "service",
6448
6564
  responseKind: "json"
6449
6565
  },
6450
- sdkPullCourses: {
6451
- path: "/sdk/{siteId}/pull/courses",
6452
- method: "GET",
6453
- auth: "service",
6454
- responseKind: "json"
6455
- },
6456
6566
  sdkPullEntries: {
6457
6567
  path: "/sdk/{siteId}/pull/entries",
6458
6568
  method: "GET",
6459
6569
  auth: "service",
6460
6570
  responseKind: "json"
6461
6571
  },
6462
- sdkPullEntriesByType: {
6463
- path: "/sdk/{siteId}/pull/entries/{type}",
6464
- method: "GET",
6465
- auth: "service",
6466
- responseKind: "json"
6467
- },
6468
6572
  sdkPullEntriesAll: {
6469
6573
  path: "/sdk/{siteId}/pull/entries/all",
6470
6574
  method: "GET",
@@ -6730,48 +6834,13 @@ const API_ENDPOINTS = {
6730
6834
  "server:internal_error"
6731
6835
  ]
6732
6836
  },
6733
- sdkListCourses: {
6734
- path: "/sdk/{siteId}/courses",
6735
- method: "GET",
6736
- auth: "service",
6737
- responseKind: "json"
6738
- },
6739
- sdkUpsertCourse: {
6740
- path: "/sdk/{siteId}/courses",
6741
- method: "POST",
6742
- auth: "service",
6743
- responseKind: "json"
6744
- },
6745
- sdkGetCourse: {
6746
- path: "/sdk/{siteId}/courses/{identifier}",
6747
- method: "GET",
6748
- auth: "service",
6749
- responseKind: "json"
6750
- },
6751
- sdkDeleteCourse: {
6752
- path: "/sdk/{siteId}/courses/{identifier}",
6753
- method: "DELETE",
6754
- auth: "service",
6755
- responseKind: "json"
6756
- },
6757
6837
  sdkUpsertEntry: {
6758
6838
  path: "/sdk/{siteId}/entries",
6759
6839
  method: "POST",
6760
6840
  auth: "service",
6761
6841
  responseKind: "json"
6762
6842
  },
6763
- sdkListEntries: {
6764
- path: "/sdk/{siteId}/entries/{contentType}",
6765
- method: "GET",
6766
- auth: "service",
6767
- responseKind: "json"
6768
- },
6769
- sdkGetEntry: {
6770
- path: "/sdk/{siteId}/entries/{contentType}/{identifier}",
6771
- method: "GET",
6772
- auth: "service",
6773
- responseKind: "json"
6774
- },
6843
+ ...SDK_ENTRY_READ_ENDPOINTS,
6775
6844
  sdkDeleteEntry: {
6776
6845
  path: "/sdk/{siteId}/entries/{contentType}/{identifier}",
6777
6846
  method: "DELETE",
@@ -6996,21 +7065,22 @@ const API_ENDPOINTS = {
6996
7065
  "server:internal_error"
6997
7066
  ]
6998
7067
  },
6999
- portalGetCourses: {
7000
- path: "/portal/courses",
7068
+ portalGetWholeSeriesRegistrations: {
7069
+ path: "/portal/dated-offerings/whole-series",
7001
7070
  method: "GET",
7002
7071
  auth: "public",
7003
- responseKind: "json"
7072
+ responseKind: "json",
7073
+ errors: ["server:internal_error"]
7004
7074
  },
7005
- portalGetCourseBookingQuestions: {
7006
- path: "/portal/courses/{enrollmentId}/booking-questions",
7075
+ portalGetWholeSeriesBookingQuestions: {
7076
+ path: "/portal/dated-offerings/whole-series/{enrollmentId}/booking-questions",
7007
7077
  method: "GET",
7008
7078
  auth: "public",
7009
7079
  responseKind: "json",
7010
7080
  errors: ["resource:not_found", "server:internal_error"]
7011
7081
  },
7012
- portalUpdateCourseBookingQuestions: {
7013
- path: "/portal/courses/{enrollmentId}/booking-questions",
7082
+ portalUpdateWholeSeriesBookingQuestions: {
7083
+ path: "/portal/dated-offerings/whole-series/{enrollmentId}/booking-questions",
7014
7084
  method: "PUT",
7015
7085
  auth: "public",
7016
7086
  responseKind: "json",
@@ -7020,8 +7090,8 @@ const API_ENDPOINTS = {
7020
7090
  "server:internal_error"
7021
7091
  ]
7022
7092
  },
7023
- portalCreateCourseBookingQuestionsUploadUrl: {
7024
- path: "/portal/courses/{enrollmentId}/booking-questions/upload-url",
7093
+ portalCreateWholeSeriesBookingQuestionsUploadUrl: {
7094
+ path: "/portal/dated-offerings/whole-series/{enrollmentId}/booking-questions/upload-url",
7025
7095
  method: "POST",
7026
7096
  auth: "public",
7027
7097
  responseKind: "json",
@@ -7031,8 +7101,8 @@ const API_ENDPOINTS = {
7031
7101
  "server:internal_error"
7032
7102
  ]
7033
7103
  },
7034
- portalFinalizeCourseBookingQuestionsUpload: {
7035
- path: "/portal/courses/{enrollmentId}/booking-questions/upload",
7104
+ portalFinalizeWholeSeriesBookingQuestionsUpload: {
7105
+ path: "/portal/dated-offerings/whole-series/{enrollmentId}/booking-questions/upload",
7036
7106
  method: "POST",
7037
7107
  auth: "public",
7038
7108
  responseKind: "json",
@@ -7042,11 +7112,12 @@ const API_ENDPOINTS = {
7042
7112
  "server:internal_error"
7043
7113
  ]
7044
7114
  },
7045
- portalCancelCourseEnrollment: {
7046
- path: "/portal/courses/{enrollmentId}/cancel",
7115
+ portalCancelWholeSeriesRegistration: {
7116
+ path: "/portal/dated-offerings/whole-series/{enrollmentId}/cancel",
7047
7117
  method: "POST",
7048
7118
  auth: "public",
7049
- responseKind: "json"
7119
+ responseKind: "json",
7120
+ errors: ["resource:not_found", "server:internal_error"]
7050
7121
  },
7051
7122
  portalCancelEventRegistration: {
7052
7123
  path: "/portal/events/{registrationId}/cancel",