@wix/auto_sdk_bookings_services 1.0.32 → 1.0.33

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 (130) hide show
  1. package/build/{es/src/bookings-services-v2-service-services.types.d.ts → bookings-services-v2-service-services.universal-Dn8Flkdi.d.mts} +729 -424
  2. package/build/{cjs/src/bookings-services-v2-service-services.types.d.ts → bookings-services-v2-service-services.universal-Dn8Flkdi.d.ts} +729 -424
  3. package/build/{internal/cjs/src/bookings-services-v2-service-services.public.d.ts → index.d.mts} +62 -30
  4. package/build/{cjs/src/bookings-services-v2-service-services.public.d.ts → index.d.ts} +62 -30
  5. package/build/index.js +3208 -0
  6. package/build/index.js.map +1 -0
  7. package/build/index.mjs +3124 -0
  8. package/build/index.mjs.map +1 -0
  9. package/build/internal/{cjs/src/bookings-services-v2-service-services.types.d.ts → bookings-services-v2-service-services.universal-Dn8Flkdi.d.mts} +729 -424
  10. package/build/internal/{es/src/bookings-services-v2-service-services.types.d.ts → bookings-services-v2-service-services.universal-Dn8Flkdi.d.ts} +729 -424
  11. package/build/{es/src/bookings-services-v2-service-services.public.d.ts → internal/index.d.mts} +62 -30
  12. package/build/internal/{es/src/bookings-services-v2-service-services.public.d.ts → index.d.ts} +62 -30
  13. package/build/internal/index.js +3208 -0
  14. package/build/internal/index.js.map +1 -0
  15. package/build/internal/index.mjs +3124 -0
  16. package/build/internal/index.mjs.map +1 -0
  17. package/build/internal/meta.d.mts +2302 -0
  18. package/build/internal/meta.d.ts +2302 -0
  19. package/build/internal/meta.js +1761 -0
  20. package/build/internal/meta.js.map +1 -0
  21. package/build/internal/meta.mjs +1714 -0
  22. package/build/internal/meta.mjs.map +1 -0
  23. package/build/meta.d.mts +2302 -0
  24. package/build/meta.d.ts +2302 -0
  25. package/build/meta.js +1761 -0
  26. package/build/meta.js.map +1 -0
  27. package/build/meta.mjs +1714 -0
  28. package/build/meta.mjs.map +1 -0
  29. package/package.json +13 -12
  30. package/build/cjs/index.d.ts +0 -1
  31. package/build/cjs/index.js +0 -18
  32. package/build/cjs/index.js.map +0 -1
  33. package/build/cjs/index.typings.d.ts +0 -1
  34. package/build/cjs/index.typings.js +0 -18
  35. package/build/cjs/index.typings.js.map +0 -1
  36. package/build/cjs/meta.d.ts +0 -1
  37. package/build/cjs/meta.js +0 -18
  38. package/build/cjs/meta.js.map +0 -1
  39. package/build/cjs/src/bookings-services-v2-service-services.context.d.ts +0 -41
  40. package/build/cjs/src/bookings-services-v2-service-services.context.js +0 -82
  41. package/build/cjs/src/bookings-services-v2-service-services.context.js.map +0 -1
  42. package/build/cjs/src/bookings-services-v2-service-services.http.d.ts +0 -489
  43. package/build/cjs/src/bookings-services-v2-service-services.http.js +0 -1797
  44. package/build/cjs/src/bookings-services-v2-service-services.http.js.map +0 -1
  45. package/build/cjs/src/bookings-services-v2-service-services.meta.d.ts +0 -47
  46. package/build/cjs/src/bookings-services-v2-service-services.meta.js +0 -427
  47. package/build/cjs/src/bookings-services-v2-service-services.meta.js.map +0 -1
  48. package/build/cjs/src/bookings-services-v2-service-services.public.js +0 -304
  49. package/build/cjs/src/bookings-services-v2-service-services.public.js.map +0 -1
  50. package/build/cjs/src/bookings-services-v2-service-services.types.js +0 -349
  51. package/build/cjs/src/bookings-services-v2-service-services.types.js.map +0 -1
  52. package/build/cjs/src/bookings-services-v2-service-services.universal.d.ts +0 -5240
  53. package/build/cjs/src/bookings-services-v2-service-services.universal.js +0 -2252
  54. package/build/cjs/src/bookings-services-v2-service-services.universal.js.map +0 -1
  55. package/build/es/index.d.ts +0 -1
  56. package/build/es/index.js +0 -2
  57. package/build/es/index.js.map +0 -1
  58. package/build/es/index.typings.d.ts +0 -1
  59. package/build/es/index.typings.js +0 -2
  60. package/build/es/index.typings.js.map +0 -1
  61. package/build/es/meta.d.ts +0 -1
  62. package/build/es/meta.js +0 -2
  63. package/build/es/meta.js.map +0 -1
  64. package/build/es/package.json +0 -3
  65. package/build/es/src/bookings-services-v2-service-services.context.d.ts +0 -41
  66. package/build/es/src/bookings-services-v2-service-services.context.js +0 -41
  67. package/build/es/src/bookings-services-v2-service-services.context.js.map +0 -1
  68. package/build/es/src/bookings-services-v2-service-services.http.d.ts +0 -489
  69. package/build/es/src/bookings-services-v2-service-services.http.js +0 -1773
  70. package/build/es/src/bookings-services-v2-service-services.http.js.map +0 -1
  71. package/build/es/src/bookings-services-v2-service-services.meta.d.ts +0 -47
  72. package/build/es/src/bookings-services-v2-service-services.meta.js +0 -380
  73. package/build/es/src/bookings-services-v2-service-services.meta.js.map +0 -1
  74. package/build/es/src/bookings-services-v2-service-services.public.js +0 -242
  75. package/build/es/src/bookings-services-v2-service-services.public.js.map +0 -1
  76. package/build/es/src/bookings-services-v2-service-services.types.js +0 -346
  77. package/build/es/src/bookings-services-v2-service-services.types.js.map +0 -1
  78. package/build/es/src/bookings-services-v2-service-services.universal.d.ts +0 -5240
  79. package/build/es/src/bookings-services-v2-service-services.universal.js +0 -2204
  80. package/build/es/src/bookings-services-v2-service-services.universal.js.map +0 -1
  81. package/build/internal/cjs/index.d.ts +0 -1
  82. package/build/internal/cjs/index.js +0 -18
  83. package/build/internal/cjs/index.js.map +0 -1
  84. package/build/internal/cjs/index.typings.d.ts +0 -1
  85. package/build/internal/cjs/index.typings.js +0 -18
  86. package/build/internal/cjs/index.typings.js.map +0 -1
  87. package/build/internal/cjs/meta.d.ts +0 -1
  88. package/build/internal/cjs/meta.js +0 -18
  89. package/build/internal/cjs/meta.js.map +0 -1
  90. package/build/internal/cjs/src/bookings-services-v2-service-services.context.d.ts +0 -41
  91. package/build/internal/cjs/src/bookings-services-v2-service-services.context.js +0 -82
  92. package/build/internal/cjs/src/bookings-services-v2-service-services.context.js.map +0 -1
  93. package/build/internal/cjs/src/bookings-services-v2-service-services.http.d.ts +0 -489
  94. package/build/internal/cjs/src/bookings-services-v2-service-services.http.js +0 -1797
  95. package/build/internal/cjs/src/bookings-services-v2-service-services.http.js.map +0 -1
  96. package/build/internal/cjs/src/bookings-services-v2-service-services.meta.d.ts +0 -47
  97. package/build/internal/cjs/src/bookings-services-v2-service-services.meta.js +0 -427
  98. package/build/internal/cjs/src/bookings-services-v2-service-services.meta.js.map +0 -1
  99. package/build/internal/cjs/src/bookings-services-v2-service-services.public.js +0 -304
  100. package/build/internal/cjs/src/bookings-services-v2-service-services.public.js.map +0 -1
  101. package/build/internal/cjs/src/bookings-services-v2-service-services.types.js +0 -349
  102. package/build/internal/cjs/src/bookings-services-v2-service-services.types.js.map +0 -1
  103. package/build/internal/cjs/src/bookings-services-v2-service-services.universal.d.ts +0 -5240
  104. package/build/internal/cjs/src/bookings-services-v2-service-services.universal.js +0 -2252
  105. package/build/internal/cjs/src/bookings-services-v2-service-services.universal.js.map +0 -1
  106. package/build/internal/es/index.d.ts +0 -1
  107. package/build/internal/es/index.js +0 -2
  108. package/build/internal/es/index.js.map +0 -1
  109. package/build/internal/es/index.typings.d.ts +0 -1
  110. package/build/internal/es/index.typings.js +0 -2
  111. package/build/internal/es/index.typings.js.map +0 -1
  112. package/build/internal/es/meta.d.ts +0 -1
  113. package/build/internal/es/meta.js +0 -2
  114. package/build/internal/es/meta.js.map +0 -1
  115. package/build/internal/es/src/bookings-services-v2-service-services.context.d.ts +0 -41
  116. package/build/internal/es/src/bookings-services-v2-service-services.context.js +0 -41
  117. package/build/internal/es/src/bookings-services-v2-service-services.context.js.map +0 -1
  118. package/build/internal/es/src/bookings-services-v2-service-services.http.d.ts +0 -489
  119. package/build/internal/es/src/bookings-services-v2-service-services.http.js +0 -1773
  120. package/build/internal/es/src/bookings-services-v2-service-services.http.js.map +0 -1
  121. package/build/internal/es/src/bookings-services-v2-service-services.meta.d.ts +0 -47
  122. package/build/internal/es/src/bookings-services-v2-service-services.meta.js +0 -380
  123. package/build/internal/es/src/bookings-services-v2-service-services.meta.js.map +0 -1
  124. package/build/internal/es/src/bookings-services-v2-service-services.public.js +0 -242
  125. package/build/internal/es/src/bookings-services-v2-service-services.public.js.map +0 -1
  126. package/build/internal/es/src/bookings-services-v2-service-services.types.js +0 -346
  127. package/build/internal/es/src/bookings-services-v2-service-services.types.js.map +0 -1
  128. package/build/internal/es/src/bookings-services-v2-service-services.universal.d.ts +0 -5240
  129. package/build/internal/es/src/bookings-services-v2-service-services.universal.js +0 -2204
  130. package/build/internal/es/src/bookings-services-v2-service-services.universal.js.map +0 -1
@@ -0,0 +1,2302 @@
1
+ import { bJ as CreateServiceRequest$1, bK as CreateServiceResponse$1, bU as GetServiceRequest$1, bV as GetServiceResponse$1, b_ as UpdateServiceRequest$1, b$ as UpdateServiceResponse$1, c0 as BulkUpdateServicesRequest$1, a as BulkUpdateServicesResponse$1, c2 as BulkUpdateServicesByFilterRequest$1, c as BulkUpdateServicesByFilterResponse$1, c3 as DeleteServiceRequest$1, c5 as DeleteServiceResponse$1, c6 as BulkDeleteServicesRequest$1, e as BulkDeleteServicesResponse$1, c7 as BulkDeleteServicesByFilterRequest$1, g as BulkDeleteServicesByFilterResponse$1, c8 as QueryServicesRequest$1, ce as QueryServicesResponse$1, ch as SearchServicesRequest$1, i as SearchServicesResponse$1, cU as QueryPoliciesRequest$1, k as QueryPoliciesResponse$1, cX as QueryBookingFormsRequest$1, m as QueryBookingFormsResponse$1, c$ as CountServicesRequest$1, o as CountServicesResponse$1, d0 as QueryLocationsRequest$1, q as QueryLocationsResponse$1, d5 as QueryCategoriesRequest$1, s as QueryCategoriesResponse$1, d9 as SetServiceLocationsRequest$1, u as SetServiceLocationsResponse$1, dd as EnablePricingPlansForServiceRequest$1, E as EnablePricingPlansForServiceResponse$1, df as DisablePricingPlansForServiceRequest$1, w as DisablePricingPlansForServiceResponse$1, dg as SetCustomSlugRequest$1, y as SetCustomSlugResponse$1, dh as ValidateSlugRequest$1, A as ValidateSlugResponse$1, di as CloneServiceRequest$1, F as CloneServiceResponse$1 } from './bookings-services-v2-service-services.universal-Dn8Flkdi.mjs';
2
+
3
+ /** The `service` object represents an offering that a business provides to its customers. */
4
+ interface Service {
5
+ /**
6
+ * Service ID.
7
+ * @format GUID
8
+ * @readonly
9
+ */
10
+ id?: string | null;
11
+ /**
12
+ * Service type.
13
+ * Learn more about *service types*
14
+ * ([SDK](https://dev.wix.com/docs/sdk/backend-modules/bookings/services/about-service-types) | [REST](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/about-service-types)).
15
+ */
16
+ type?: ServiceType;
17
+ /**
18
+ * Order of the service within a *category*
19
+ * ([SDK](https://dev.wix.com/docs/sdk/backend-modules/bookings/categories/setup) | [REST](https://dev.wix.com/docs/rest/business-solutions/bookings/services/categories-v1/category-object)).
20
+ */
21
+ sortOrder?: number | null;
22
+ /**
23
+ * Service name.
24
+ * @maxLength 400
25
+ * @minLength 1
26
+ */
27
+ name?: string | null;
28
+ /**
29
+ * Service description. For example, `High-class hair styling, cuts, straightening and color`.
30
+ * @maxLength 7000
31
+ */
32
+ description?: string | null;
33
+ /**
34
+ * Short service description, such as `Hair styling`.
35
+ * @maxLength 6000
36
+ */
37
+ tagLine?: string | null;
38
+ /**
39
+ * Default maximum number of customers that can book the service. The service cannot be booked beyond this capacity.
40
+ * @min 1
41
+ * @max 1000
42
+ */
43
+ defaultCapacity?: number | null;
44
+ /** Media associated with the service. */
45
+ media?: Media;
46
+ /** Whether the service is hidden from the site. */
47
+ hidden?: boolean | null;
48
+ /**
49
+ * _Category_
50
+ * ([SDK](https://dev.wix.com/docs/sdk/backend-modules/bookings/categories/setup) | [REST](https://dev.wix.com/docs/rest/business-solutions/bookings/services/categories-v1/category-object))
51
+ * the service is associated with.
52
+ */
53
+ category?: V2Category;
54
+ /** Form the customer filled out when booking the service. */
55
+ form?: Form;
56
+ /**
57
+ * Payment options for booking the service.
58
+ * Learn more about *service payments*
59
+ * ([SDK](https://dev.wix.com/docs/sdk/backend-modules/bookings/services/about-service-payments) | [REST](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/about-service-payments)).
60
+ */
61
+ payment?: Payment;
62
+ /** Online booking settings. */
63
+ onlineBooking?: OnlineBooking;
64
+ /** Conferencing options for the service. */
65
+ conferencing?: Conferencing;
66
+ /**
67
+ * The locations this service is offered at. Read more about *service locations*
68
+ * ([SDK](https://dev.wix.com/docs/sdk/backend-modules/bookings/services/about-service-locations) | [REST](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/about-service-locations)).
69
+ * @immutable
70
+ * @maxSize 500
71
+ */
72
+ locations?: V2Location[];
73
+ /**
74
+ * _Policy_
75
+ * ([SDK](https://dev.wix.com/docs/sdk/backend-modules/bookings/booking-policies/introduction) | [REST](https://dev.wix.com/docs/rest/business-solutions/bookings/policies/booking-policies/introduction))
76
+ * determining under what conditions this service can be booked. For example, whether the service can only be booked up to 30 minutes before it begins.
77
+ */
78
+ bookingPolicy?: BookingPolicy;
79
+ /**
80
+ * The service's *schedule*
81
+ * ([SDK](https://dev.wix.com/docs/sdk/backend-modules/calendar/schedules/introduction) | [REST](https://dev.wix.com/docs/rest/business-management/calendar/schedules-v3/introduction)),
82
+ * which can be used to manage the service's *events*
83
+ * ([SDK](https://dev.wix.com/docs/sdk/backend-modules/calendar/events/introduction) | [REST](https://dev.wix.com/docs/rest/business-management/calendar/events-v3/introduction)).
84
+ */
85
+ schedule?: V2Schedule;
86
+ /**
87
+ * IDs of the *staff members*
88
+ * ([SDK](https://dev.wix.com/docs/sdk/backend-modules/bookings/staff-members/introduction) | [REST](https://dev.wix.com/docs/rest/business-solutions/bookings/staff-members/introduction))
89
+ * providing the service. Available only for appointment-based services.
90
+ * @maxSize 220
91
+ * @format GUID
92
+ */
93
+ staffMemberIds?: string[];
94
+ /**
95
+ * Information about which resources must be available so customers can book the service.
96
+ * For example, a meeting room or equipment.
97
+ * @maxSize 3
98
+ */
99
+ serviceResources?: ServiceResource[];
100
+ /**
101
+ * A slug is the last part of the URL address that serves as a unique identifier of the service.
102
+ * The list of supported slugs includes past service names for backwards compatibility, and a custom slug if one was set by the business owner.
103
+ * @readonly
104
+ * @maxSize 100
105
+ */
106
+ supportedSlugs?: Slug[];
107
+ /**
108
+ * Active slug for the service.
109
+ * Learn more about *service slugs*
110
+ * ([SDK](https://dev.wix.com/docs/sdk/backend-modules/bookings/services/about-service-slugs) | [REST](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/about-service-slugs)).
111
+ * @readonly
112
+ */
113
+ mainSlug?: Slug;
114
+ /**
115
+ * URLs to various service-related pages, such as the calendar page and the booking page.
116
+ * @readonly
117
+ */
118
+ urls?: URLs;
119
+ /** Extensions enabling users to save custom data related to the service. */
120
+ extendedFields?: ExtendedFields;
121
+ /** Custom SEO data for the service. */
122
+ seoData?: SeoSchema;
123
+ /**
124
+ * Date and time the service was created in `YYYY-MM-DDThh:mm:ss.sssZ` format.
125
+ * @readonly
126
+ */
127
+ createdDate?: Date | null;
128
+ /**
129
+ * Date and time the service was updated in `YYYY-MM-DDThh:mm:ss.sssZ` format.
130
+ * @readonly
131
+ */
132
+ updatedDate?: Date | null;
133
+ /**
134
+ * Revision number, which increments by 1 each time the service is updated. To
135
+ * prevent conflicting changes, the existing revision must be used when updating
136
+ * a service.
137
+ * @readonly
138
+ */
139
+ revision?: string | null;
140
+ }
141
+ declare enum ServiceType {
142
+ /** Appointment-based service. */
143
+ APPOINTMENT = "APPOINTMENT",
144
+ /** Class service. */
145
+ CLASS = "CLASS",
146
+ /** Course service. */
147
+ COURSE = "COURSE"
148
+ }
149
+ interface Media {
150
+ /**
151
+ * Media items associated with the service.
152
+ * @maxSize 100
153
+ */
154
+ items?: MediaItem[];
155
+ /** Primary media associated with the service. */
156
+ mainMedia?: MediaItem;
157
+ /** Cover media associated with the service. */
158
+ coverMedia?: MediaItem;
159
+ }
160
+ interface MediaItem extends MediaItemItemOneOf {
161
+ /** Details of the image associated with the service, such as URL and size. */
162
+ image?: Image;
163
+ }
164
+ /** @oneof */
165
+ interface MediaItemItemOneOf {
166
+ /** Details of the image associated with the service, such as URL and size. */
167
+ image?: Image;
168
+ }
169
+ interface Image {
170
+ /**
171
+ * WixMedia image ID. (e.g. "4b3901ffcb8d7ad81a613779d92c9702.jpg")
172
+ * @maxLength 2048
173
+ */
174
+ id?: string;
175
+ /**
176
+ * Image URL. (similar to image.id e.g. "4b3901ffcb8d7ad81a613779d92c9702.jpg")
177
+ * @maxLength 2048
178
+ */
179
+ url?: string;
180
+ /** Original image height. */
181
+ height?: number;
182
+ /** Original image width. */
183
+ width?: number;
184
+ /**
185
+ * Image alt text.
186
+ * @maxLength 134061
187
+ */
188
+ altText?: string | null;
189
+ /**
190
+ * Image file name.
191
+ * @readonly
192
+ * @maxLength 2048
193
+ */
194
+ filename?: string | null;
195
+ }
196
+ interface V2Category {
197
+ /**
198
+ * Category ID.
199
+ * @format GUID
200
+ */
201
+ id?: string;
202
+ /**
203
+ * Category name.
204
+ * @maxLength 500
205
+ * @readonly
206
+ */
207
+ name?: string | null;
208
+ /**
209
+ * Order of a category within a category list.
210
+ * @readonly
211
+ */
212
+ sortOrder?: number | null;
213
+ }
214
+ interface Form {
215
+ /**
216
+ * ID of the form associated with the service.
217
+ * The form information that you submit when booking includes contact details, participants, and other form fields set up for the service.
218
+ * You can manage the service booking form fields using the Bookings Forms API.
219
+ * @format GUID
220
+ */
221
+ id?: string;
222
+ }
223
+ interface Payment extends PaymentRateOneOf {
224
+ /**
225
+ * The details for the fixed price of the service.
226
+ *
227
+ * Required when: `rateType` is `FIXED`
228
+ */
229
+ fixed?: FixedPayment;
230
+ /**
231
+ * The details for the custom price of the service.
232
+ *
233
+ * Required when: `rateType` is `CUSTOM`
234
+ */
235
+ custom?: CustomPayment;
236
+ /**
237
+ * The details for the varied pricing of the service.
238
+ * Read more about [varied price options](https://support.wix.com/en/article/wix-bookings-about-getting-paid-online#offering-varied-price-options).
239
+ *
240
+ * Required when: `rateType` is `VARIED`
241
+ */
242
+ varied?: VariedPayment;
243
+ /** The rate the customer is expected to pay for the service. */
244
+ rateType?: RateType;
245
+ /** The payment options a customer can use to pay for the service. */
246
+ options?: PaymentOptions;
247
+ /**
248
+ * IDs of pricing plans that can be used as payment for the service.
249
+ * @readonly
250
+ * @maxSize 75
251
+ * @format GUID
252
+ */
253
+ pricingPlanIds?: string[];
254
+ }
255
+ /** @oneof */
256
+ interface PaymentRateOneOf {
257
+ /**
258
+ * The details for the fixed price of the service.
259
+ *
260
+ * Required when: `rateType` is `FIXED`
261
+ */
262
+ fixed?: FixedPayment;
263
+ /**
264
+ * The details for the custom price of the service.
265
+ *
266
+ * Required when: `rateType` is `CUSTOM`
267
+ */
268
+ custom?: CustomPayment;
269
+ /**
270
+ * The details for the varied pricing of the service.
271
+ * Read more about [varied price options](https://support.wix.com/en/article/wix-bookings-about-getting-paid-online#offering-varied-price-options).
272
+ *
273
+ * Required when: `rateType` is `VARIED`
274
+ */
275
+ varied?: VariedPayment;
276
+ }
277
+ declare enum RateType {
278
+ /** Unknown rate type. */
279
+ UNKNOWN_RATE_TYPE = "UNKNOWN_RATE_TYPE",
280
+ /** The service has a fixed price. */
281
+ FIXED = "FIXED",
282
+ /** The service has a custom price, expressed as a price description. */
283
+ CUSTOM = "CUSTOM",
284
+ /** This service is offered with a set of different prices based on different terms. */
285
+ VARIED = "VARIED",
286
+ /** This service is offered free of charge. */
287
+ NO_FEE = "NO_FEE"
288
+ }
289
+ interface FixedPayment {
290
+ /**
291
+ * The fixed price required to book the service.
292
+ *
293
+ * Required when: `rateType` is `FIXED`
294
+ */
295
+ price?: Money;
296
+ /**
297
+ * The deposit price required to book the service.
298
+ *
299
+ * Required when: `rateType` is `FIXED` and `paymentOptions.deposit` is `true`
300
+ */
301
+ deposit?: Money;
302
+ }
303
+ /**
304
+ * Money.
305
+ * Default format to use. Sufficiently compliant with majority of standards: w3c, ISO 4217, ISO 20022, ISO 8583:2003.
306
+ */
307
+ interface Money {
308
+ /**
309
+ * Monetary amount. Decimal string with a period as a decimal separator (e.g., 3.99). Optionally, a single (-), to indicate that the amount is negative.
310
+ * @format DECIMAL_VALUE
311
+ * @decimalValue options { gt:0, maxScale:2 }
312
+ */
313
+ value?: string;
314
+ /**
315
+ * Currency code. Must be valid ISO 4217 currency code (e.g., USD).
316
+ * @format CURRENCY
317
+ * @readonly
318
+ */
319
+ currency?: string;
320
+ /**
321
+ * Monetary amount. Decimal string in local format (e.g., 1 000,30). Optionally, a single (-), to indicate that the amount is negative.
322
+ * @maxLength 50
323
+ */
324
+ formattedValue?: string | null;
325
+ }
326
+ interface CustomPayment {
327
+ /**
328
+ * A custom description explaining to the customer how to pay for the service.
329
+ * @maxLength 50
330
+ */
331
+ description?: string | null;
332
+ }
333
+ interface VariedPayment {
334
+ /** The default price for the service without any variants. It will also be used as the default price for any new variant. */
335
+ defaultPrice?: Money;
336
+ /**
337
+ * The deposit price required to book the service.
338
+ *
339
+ * Required when: `rateType` is `VARIED` and `paymentOptions.deposit` is `true`
340
+ */
341
+ deposit?: Money;
342
+ /**
343
+ * The minimal price a customer may pay for this service, based on its variants.
344
+ * @readonly
345
+ */
346
+ minPrice?: Money;
347
+ /**
348
+ * The maximum price a customer may pay for this service, based on its variants.
349
+ * @readonly
350
+ */
351
+ maxPrice?: Money;
352
+ }
353
+ interface PaymentOptions {
354
+ /**
355
+ * Customers can pay for the service online.
356
+ * When `true`:
357
+ * + `rateType` must be either `FIXED` or `VARIED`.
358
+ * + `fixed.price` or `varied.default_price` must be specified respectively. Read more about [getting paid online](https://support.wix.com/en/article/wix-bookings-about-getting-paid-online).
359
+ */
360
+ online?: boolean | null;
361
+ /** Customers can pay for the service in person. */
362
+ inPerson?: boolean | null;
363
+ /**
364
+ * This service requires a deposit to be made online in order to book it.
365
+ * When `true`:
366
+ * + `rateType` must be `VARIED` or `FIXED`.
367
+ * + A `deposit` must be specified.
368
+ */
369
+ deposit?: boolean | null;
370
+ /** Customers can pay for the service using a pricing plan. */
371
+ pricingPlan?: boolean | null;
372
+ }
373
+ interface OnlineBooking {
374
+ /**
375
+ * Whether the service can be booked online.
376
+ * When set to `true`, customers can book the service online. Configure the payment options via the `service.payment` property.
377
+ * When set to `false`, customers cannot book the service online, and the service can only be paid for in person.
378
+ */
379
+ enabled?: boolean | null;
380
+ /** Booking the service requires approval by the Wix user. */
381
+ requireManualApproval?: boolean | null;
382
+ /** Multiple customers can request to book the same time slot. This is relevant when `requireManualApproval` is `true`. */
383
+ allowMultipleRequests?: boolean | null;
384
+ }
385
+ interface Conferencing {
386
+ /** Whether a conference link is generated for the service's sessions. */
387
+ enabled?: boolean | null;
388
+ }
389
+ interface V2Location extends V2LocationOptionsOneOf {
390
+ /** Information about business locations. */
391
+ business?: BusinessLocationOptions;
392
+ /** Information about custom locations. */
393
+ custom?: CustomLocationOptions;
394
+ /**
395
+ * Location ID.
396
+ * @format GUID
397
+ * @readonly
398
+ */
399
+ id?: string;
400
+ /**
401
+ * Location type.
402
+ *
403
+ * Default: `CUSTOM`
404
+ */
405
+ type?: LocationTypeEnumLocationType;
406
+ /**
407
+ * Location address. Empty for `{"type": "CUSTOMER"}`.
408
+ * @readonly
409
+ */
410
+ calculatedAddress?: CommonAddress;
411
+ }
412
+ /** @oneof */
413
+ interface V2LocationOptionsOneOf {
414
+ /** Information about business locations. */
415
+ business?: BusinessLocationOptions;
416
+ /** Information about custom locations. */
417
+ custom?: CustomLocationOptions;
418
+ }
419
+ declare enum LocationTypeEnumLocationType {
420
+ UNKNOWN_LOCATION_TYPE = "UNKNOWN_LOCATION_TYPE",
421
+ /**
422
+ * Location set by the business that is not a standard business *location*
423
+ * ([SDK](https://dev.wix.com/docs/sdk/backend-modules/business-tools/locations/introduction) | [REST](https://dev.wix.com/docs/rest/business-management/locations/introduction)).
424
+ */
425
+ CUSTOM = "CUSTOM",
426
+ /**
427
+ * Business *location*
428
+ * ([SDK](https://dev.wix.com/docs/sdk/backend-modules/business-tools/locations/introduction) | [REST](https://dev.wix.com/docs/rest/business-management/locations/introduction)).
429
+ */
430
+ BUSINESS = "BUSINESS",
431
+ /**
432
+ * The customer specifies any address when booking. Available only for
433
+ * appointment-based services.
434
+ */
435
+ CUSTOMER = "CUSTOMER"
436
+ }
437
+ interface CommonAddress extends CommonAddressStreetOneOf {
438
+ /** Street name and number. */
439
+ streetAddress?: CommonStreetAddress;
440
+ /** @maxLength 255 */
441
+ addressLine?: string | null;
442
+ /**
443
+ * 2-letter country code in an [ISO-3166 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format.
444
+ * @format COUNTRY
445
+ */
446
+ country?: string | null;
447
+ /**
448
+ * Code for a subdivision (such as state, prefecture, or province) in [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2) format.
449
+ * @maxLength 255
450
+ */
451
+ subdivision?: string | null;
452
+ /**
453
+ * City name.
454
+ * @maxLength 255
455
+ */
456
+ city?: string | null;
457
+ /**
458
+ * Postal or zip code.
459
+ * @maxLength 255
460
+ */
461
+ postalCode?: string | null;
462
+ /**
463
+ * Full address of the location.
464
+ * @maxLength 512
465
+ */
466
+ formattedAddress?: string | null;
467
+ }
468
+ /** @oneof */
469
+ interface CommonAddressStreetOneOf {
470
+ /** Street name and number. */
471
+ streetAddress?: CommonStreetAddress;
472
+ /** @maxLength 255 */
473
+ addressLine?: string | null;
474
+ }
475
+ /** Street address. Includes street name, number, and apartment number in separate fields. */
476
+ interface CommonStreetAddress {
477
+ /**
478
+ * Street number.
479
+ * @maxLength 255
480
+ */
481
+ number?: string;
482
+ /**
483
+ * Street name.
484
+ * @maxLength 255
485
+ */
486
+ name?: string;
487
+ /**
488
+ * Apartment number.
489
+ * @maxLength 255
490
+ */
491
+ apt?: string;
492
+ }
493
+ interface BusinessLocationOptions {
494
+ /**
495
+ * ID of the business *location*
496
+ * ([SDK](https://dev.wix.com/docs/sdk/backend-modules/business-tools/locations/introduction) | [REST](https://dev.wix.com/docs/rest/business-management/locations/introduction)).
497
+ * When setting a business location, specify only the location ID. Other location details are overwritten.
498
+ * @format GUID
499
+ */
500
+ id?: string;
501
+ /**
502
+ * Business location name.
503
+ * @readonly
504
+ * @maxLength 150
505
+ */
506
+ name?: string;
507
+ /**
508
+ * Whether this is the default location. There can only be a single default location per site.
509
+ * @readonly
510
+ */
511
+ default?: boolean | null;
512
+ /**
513
+ * Business location address.
514
+ * @readonly
515
+ */
516
+ address?: CommonAddress;
517
+ /**
518
+ * Business location email.
519
+ * @format EMAIL
520
+ * @readonly
521
+ */
522
+ email?: string | null;
523
+ /**
524
+ * Business location phone.
525
+ * @format PHONE
526
+ * @readonly
527
+ */
528
+ phone?: string | null;
529
+ }
530
+ interface CustomLocationOptions {
531
+ /**
532
+ * ID of the custom location.
533
+ * @format GUID
534
+ * @readonly
535
+ */
536
+ id?: string;
537
+ /** Address of the custom location. */
538
+ address?: CommonAddress;
539
+ }
540
+ /**
541
+ * `BookingPolicy` is the main entity of `BookingPolicyService` and specifies a set of rules for booking a service
542
+ * by visitors and members.
543
+ *
544
+ * Each `BookingPolicy` consists of a number of sub-policies. When the Bookings App is provisioned to a meta site then a
545
+ * default `BookingPolicy` will be created with defaults for each of these sub-policies. This also applies when a request
546
+ * is received to create a new `BookingPolicy` and one or more of these sub-policies are not provided.
547
+ *
548
+ * Sub-policies are defined in separate objects as specified below.
549
+ *
550
+ * - The `LimitEarlyBookingPolicy` object defines the policy for limiting early bookings.
551
+ * - The `LimitLateBookingPolicy` object defines the policy for limiting late bookings.
552
+ * - The `BookAfterStartPolicy` object defines the policy for booking after the start of the schedule.
553
+ * - The `CancellationPolicy` object defines the policy for canceling a booked entity.
554
+ * - The `ReschedulePolicy` object defines the policy for rescheduling booked entity.
555
+ * - The `WaitlistPolicy` object defines the policy for a waitlist.
556
+ * - The `ParticipantsPolicy` object defines the policy regarding the participants per booking.
557
+ * - The `ResourcesPolicy` object defines the policy regarding the resources per booking.
558
+ * - The `CancellationFeePolicy` object defines the policy regarding cancellation fees.
559
+ * - The `SaveCreditCardPolicy` object defines the policy for saving credit card details.
560
+ *
561
+ * By default each sub-policy is disabled. A more detailed specification of the default settings of each sub-policy
562
+ * can be found in the description of the corresponding object.
563
+ *
564
+ * Partial updates are supported on the main entity level, however in order to update a sub-policy the client needs to provide the whole sub-policy object.
565
+ */
566
+ interface BookingPolicy {
567
+ /**
568
+ * The ID to the policy for the booking.
569
+ * @format GUID
570
+ */
571
+ id?: string;
572
+ /**
573
+ * Date and time the policy was created.
574
+ * @readonly
575
+ */
576
+ createdDate?: Date | null;
577
+ /**
578
+ * Date and time the policy was updated.
579
+ * @readonly
580
+ */
581
+ updatedDate?: Date | null;
582
+ /**
583
+ * Name of the policy.
584
+ * @maxLength 400
585
+ * @readonly
586
+ */
587
+ name?: string | null;
588
+ /**
589
+ * Custom description for the policy. This policy is displayed to the participant.
590
+ * @readonly
591
+ */
592
+ customPolicyDescription?: PolicyDescription;
593
+ /**
594
+ * Whether the policy is the default for the meta site.
595
+ * @readonly
596
+ */
597
+ default?: boolean | null;
598
+ /**
599
+ * Policy for limiting early bookings.
600
+ * @readonly
601
+ */
602
+ limitEarlyBookingPolicy?: LimitEarlyBookingPolicy;
603
+ /**
604
+ * Policy for limiting late bookings.
605
+ * @readonly
606
+ */
607
+ limitLateBookingPolicy?: LimitLateBookingPolicy;
608
+ /**
609
+ * Policy on booking an entity after the start of the schedule.
610
+ * @readonly
611
+ */
612
+ bookAfterStartPolicy?: BookAfterStartPolicy;
613
+ /**
614
+ * Policy for canceling a booked entity.
615
+ * @readonly
616
+ */
617
+ cancellationPolicy?: CancellationPolicy;
618
+ /**
619
+ * Policy for rescheduling a booked entity.
620
+ * @readonly
621
+ */
622
+ reschedulePolicy?: ReschedulePolicy;
623
+ /**
624
+ * Waitlist policy for the service.
625
+ * @readonly
626
+ */
627
+ waitlistPolicy?: WaitlistPolicy;
628
+ /**
629
+ * Policy regarding the participants per booking.
630
+ * @readonly
631
+ */
632
+ participantsPolicy?: ParticipantsPolicy;
633
+ /**
634
+ * Policy for allocating resources.
635
+ * @readonly
636
+ */
637
+ resourcesPolicy?: ResourcesPolicy;
638
+ /**
639
+ * Rules for cancellation fees.
640
+ * @readonly
641
+ */
642
+ cancellationFeePolicy?: CancellationFeePolicy;
643
+ /**
644
+ * Rule for saving credit card.
645
+ * @readonly
646
+ */
647
+ saveCreditCardPolicy?: SaveCreditCardPolicy;
648
+ }
649
+ /** A description of the policy to display to participants. */
650
+ interface PolicyDescription {
651
+ /**
652
+ * Whether the description should be displayed. If `true`, the description is displayed.
653
+ *
654
+ * Default: `false`
655
+ */
656
+ enabled?: boolean;
657
+ /**
658
+ * The description to display.
659
+ *
660
+ * Default: Empty
661
+ * Max length: 2500 characters
662
+ * @maxLength 2500
663
+ */
664
+ description?: string;
665
+ }
666
+ /** The policy for limiting early bookings. */
667
+ interface LimitEarlyBookingPolicy {
668
+ /**
669
+ * Whether there is a limit on how early a customer
670
+ * can book. When `false`, there is no limit on the earliest
671
+ * booking time and customers can book in advance, as early as they like.
672
+ *
673
+ * Default: `false`
674
+ */
675
+ enabled?: boolean;
676
+ /**
677
+ * Maximum number of minutes before the start of the session that a booking can be made. This value must be greater
678
+ * than `latest_booking_in_minutes` in the `LimitLateBookingPolicy` policy.
679
+ *
680
+ * Default: 10080 minutes (7 days)
681
+ * Min: 1 minute
682
+ * @min 1
683
+ */
684
+ earliestBookingInMinutes?: number;
685
+ }
686
+ /**
687
+ * The policy for limiting late bookings.
688
+ *
689
+ * This policy and the `BookAfterStartPolicy` policy cannot be enabled at the same time. So if this policy
690
+ * is enabled, `BookAfterStartPolicy` must be disabled.
691
+ */
692
+ interface LimitLateBookingPolicy {
693
+ /**
694
+ * Whether there is a limit on how late a customer
695
+ * can book. When `false`, there is no limit on the latest
696
+ * booking time and customers can book up to the last minute.
697
+ *
698
+ * Default: `false`
699
+ */
700
+ enabled?: boolean;
701
+ /**
702
+ * Minimum number of minutes before the start of the session that a booking can be made.
703
+ * For a schedule, this is relative to the start time of the next booked session, excluding past-booked sessions.
704
+ * This value must be less than `earliest_booking_in_minutes` in the `LimitEarlyBookingPolicy` policy.
705
+ *
706
+ * Default: 1440 minutes (1 day)
707
+ * Min: 1 minute
708
+ * @min 1
709
+ */
710
+ latestBookingInMinutes?: number;
711
+ }
712
+ /**
713
+ * The policy for whether a session can be booked after the start of the schedule.
714
+ * This policy and `LimitLateBookingPolicy` cannot be enabled at the same time. So if this policy
715
+ * is enabled, the `LimitLateBookingPolicy` policy must be disabled.
716
+ */
717
+ interface BookAfterStartPolicy {
718
+ /**
719
+ * Whether booking is allowed after the start of the schedule. When `true`,
720
+ * customers can book after the start of the schedule.
721
+ *
722
+ * Default: `false`
723
+ */
724
+ enabled?: boolean;
725
+ }
726
+ /** The policy for canceling a booked session. */
727
+ interface CancellationPolicy {
728
+ /**
729
+ * Whether canceling a booking is allowed. When `true`, customers
730
+ * can cancel the booking.
731
+ *
732
+ * Default: `false`
733
+ */
734
+ enabled?: boolean;
735
+ /**
736
+ * Whether there is a limit on the latest cancellation time. When `true`,
737
+ * a time limit is enforced.
738
+ *
739
+ * Default: `false`
740
+ */
741
+ limitLatestCancellation?: boolean;
742
+ /**
743
+ * Minimum number of minutes before the start of the booked session that the booking can be canceled.
744
+ *
745
+ * Default: 1440 minutes (1 day)
746
+ * Min: 1 minute
747
+ * @min 1
748
+ */
749
+ latestCancellationInMinutes?: number;
750
+ }
751
+ /** The policy for rescheduling a booked session. */
752
+ interface ReschedulePolicy {
753
+ /**
754
+ * Whether rescheduling a booking is allowed. When `true`, customers
755
+ * can reschedule the booking.
756
+ *
757
+ * Default: `false`
758
+ */
759
+ enabled?: boolean;
760
+ /**
761
+ * Whether there is a limit on the latest reschedule time. When `true`,
762
+ * a time limit is enforced.
763
+ *
764
+ * Default: `false`
765
+ */
766
+ limitLatestReschedule?: boolean;
767
+ /**
768
+ * Minimum number of minutes before the start of the booked session that the booking can be rescheduled.
769
+ *
770
+ * Default: 1440 minutes (1 day)
771
+ * Min: 1 minute
772
+ * @min 1
773
+ */
774
+ latestRescheduleInMinutes?: number;
775
+ }
776
+ /** The policy for the waitlist. */
777
+ interface WaitlistPolicy {
778
+ /**
779
+ * Whether the session has a waitlist. If `true`, there is a waitlist.
780
+ *
781
+ * Default: `false`
782
+ */
783
+ enabled?: boolean;
784
+ /**
785
+ * Number of spots available in the waitlist.
786
+ *
787
+ * Default: 10 spots
788
+ * Min: 1 spot
789
+ * @min 1
790
+ */
791
+ capacity?: number;
792
+ /**
793
+ * Amount of time a participant is given to book, once notified that a spot is available.
794
+ *
795
+ * Default: 10 minutes
796
+ * Min: 1 spot
797
+ * @min 1
798
+ */
799
+ reservationTimeInMinutes?: number;
800
+ }
801
+ /** The policy for the maximum number of participants per booking. */
802
+ interface ParticipantsPolicy {
803
+ /**
804
+ * Maximum number of participants allowed.
805
+ *
806
+ * Default: 1 participant
807
+ * Min: 1 participant
808
+ * @min 1
809
+ */
810
+ maxParticipantsPerBooking?: number;
811
+ }
812
+ /** The policy regarding the allocation of resources (e.g. staff members). */
813
+ interface ResourcesPolicy {
814
+ /**
815
+ * `true` if this policy is enabled, `false` otherwise.
816
+ * When `false` then the client must always select a resource when booking an appointment.
817
+ */
818
+ enabled?: boolean;
819
+ /**
820
+ * `true`, if it is allowed to automatically assign a resource when booking an appointment,
821
+ * `false`, if the client must always select a resource.
822
+ *
823
+ * Default: `false`
824
+ */
825
+ autoAssignAllowed?: boolean;
826
+ }
827
+ interface CancellationFeePolicy {
828
+ /**
829
+ * Whether canceling a booking will result in a cancellation fee
830
+ *
831
+ * Default: `false`
832
+ */
833
+ enabled?: boolean;
834
+ /**
835
+ * Cancellation windows describing the time of cancellation and the fee to charge.
836
+ * @maxSize 2
837
+ */
838
+ cancellationWindows?: CancellationWindow[];
839
+ /**
840
+ * Whether the cancellation fee should not be automatically collected when customer cancels the booking.
841
+ *
842
+ * Default: `true`
843
+ */
844
+ autoCollectFeeEnabled?: boolean | null;
845
+ }
846
+ interface CancellationWindow extends CancellationWindowFeeOneOf {
847
+ /** Amount to be charged as a cancellation fee. */
848
+ amount?: Money;
849
+ /**
850
+ * Percentage of the original price to be charged as a cancellation fee.
851
+ * @decimalValue options { gt:0, lte:100, maxScale:2 }
852
+ */
853
+ percentage?: string;
854
+ /**
855
+ * The fee will be applied if the booked session starts within this start time in minutes.
856
+ * @min 1
857
+ */
858
+ startInMinutes?: number | null;
859
+ }
860
+ /** @oneof */
861
+ interface CancellationWindowFeeOneOf {
862
+ /** Amount to be charged as a cancellation fee. */
863
+ amount?: Money;
864
+ /**
865
+ * Percentage of the original price to be charged as a cancellation fee.
866
+ * @decimalValue options { gt:0, lte:100, maxScale:2 }
867
+ */
868
+ percentage?: string;
869
+ }
870
+ interface SaveCreditCardPolicy {
871
+ /** Default: `false` */
872
+ enabled?: boolean;
873
+ }
874
+ interface V2Schedule {
875
+ /**
876
+ * ID of the *schedule*
877
+ * ([SDK](https://dev.wix.com/docs/sdk/backend-modules/calendar/schedules/introduction) | [REST](https://dev.wix.com/docs/rest/business-management/calendar/schedules-v3/introduction))
878
+ * to which the service's events belong.
879
+ * @format GUID
880
+ * @readonly
881
+ */
882
+ id?: string | null;
883
+ /**
884
+ * Start time of the first session in the schedule. For courses only.
885
+ * @readonly
886
+ */
887
+ firstSessionStart?: Date | null;
888
+ /**
889
+ * End time of the last session in the schedule. For courses only.
890
+ * @readonly
891
+ */
892
+ lastSessionEnd?: Date | null;
893
+ /** Limitations affecting the service availability. */
894
+ availabilityConstraints?: V2AvailabilityConstraints;
895
+ }
896
+ interface V2AvailabilityConstraints {
897
+ /**
898
+ * Calculated list of all supported session durations for the service. For
899
+ * appointment-based services without varied pricing based on session length, it
900
+ * matches the single value in the `sessionDurations` array. For appointment-based
901
+ * services with varied pricing based on session length, it includes session
902
+ * durations for all *variants*
903
+ * ([SDK](https://dev.wix.com/docs/sdk/backend-modules/bookings/service-options-and-variants/introduction) | [REST](https://dev.wix.com/docs/rest/business-solutions/bookings/services/service-options-and-variants/introduction)),
904
+ * while ignoring `sessionDurations`.
905
+ * For courses and classes, it includes durations for all future
906
+ * recurring sessions but excludes durations for one-off or past recurring sessions.
907
+ * @readonly
908
+ * @maxSize 50
909
+ */
910
+ durations?: Duration[];
911
+ /**
912
+ * List of supported session durations in minutes. Specify `sessionDurations` only
913
+ * for appointment-based services. Do not specify it for classes or courses. Note that
914
+ * session durations for appointment-based services with varied pricing based on
915
+ * session length are retrieved from service *variants*
916
+ * ([SDK](https://dev.wix.com/docs/sdk/backend-modules/bookings/service-options-and-variants/introduction) | [REST](https://dev.wix.com/docs/rest/business-solutions/bookings/services/service-options-and-variants/introduction)),
917
+ * while this array is ignored.
918
+ *
919
+ * Min: `1` minute
920
+ * Max: `44639` minutes (30 days, 23 hours, and 59 minutes)
921
+ * @min 1
922
+ * @max 44639
923
+ * @maxSize 50
924
+ */
925
+ sessionDurations?: number[];
926
+ /**
927
+ * The number of minutes between the end of a session and the start of the next.
928
+ *
929
+ *
930
+ * Min: `0` minutes
931
+ * Max: `720` minutes
932
+ * @max 720
933
+ */
934
+ timeBetweenSessions?: number;
935
+ }
936
+ interface Duration {
937
+ /**
938
+ * The duration of the service in minutes.
939
+ *
940
+ * Min: `1` minute
941
+ * Max: `44639` minutes (30 days, 23 hours, and 59 minutes)
942
+ * @min 1
943
+ * @max 44639
944
+ */
945
+ minutes?: number;
946
+ }
947
+ interface ServiceResource extends ServiceResourceSelectionOneOf {
948
+ /**
949
+ * Details about the required *resource type*
950
+ * ([SDK](https://dev.wix.com/docs/sdk/backend-modules/bookings/resource-types/introduction) | [REST](https://dev.wix.com/docs/rest/business-solutions/bookings/resources/resource-types-v2/introduction)).
951
+ */
952
+ resourceType?: ResourceType;
953
+ }
954
+ /** @oneof */
955
+ interface ServiceResourceSelectionOneOf {
956
+ }
957
+ interface ResourceType {
958
+ /**
959
+ * The type of the resource.
960
+ * @format GUID
961
+ */
962
+ id?: string | null;
963
+ /**
964
+ * The name of the resource type.
965
+ * @readonly
966
+ * @maxLength 40
967
+ * @minLength 1
968
+ */
969
+ name?: string | null;
970
+ }
971
+ interface Slug {
972
+ /**
973
+ * The unique part of service's URL that identifies the service's information page. For example, `service-1` in `https:/example.com/services/service-1`.
974
+ * @maxLength 500
975
+ */
976
+ name?: string;
977
+ /**
978
+ * Whether the slug was generated or customized. If `true`, the slug was customized manually by the business owner. Otherwise, the slug was automatically generated from the service name.
979
+ * @readonly
980
+ */
981
+ custom?: boolean | null;
982
+ /**
983
+ * Date and time the slug was created. This is a system field.
984
+ * @readonly
985
+ */
986
+ createdDate?: Date | null;
987
+ }
988
+ interface URLs {
989
+ /**
990
+ * The URL for the service page.
991
+ * @readonly
992
+ */
993
+ servicePage?: PageUrlV2;
994
+ /**
995
+ * The URL for the booking entry point. It can be either to the calendar or to the service page.
996
+ * @readonly
997
+ */
998
+ bookingPage?: PageUrlV2;
999
+ /**
1000
+ * The URL for the calendar. Can be empty if no calendar exists.
1001
+ * @readonly
1002
+ */
1003
+ calendarPage?: PageUrlV2;
1004
+ }
1005
+ interface PageUrlV2 {
1006
+ /**
1007
+ * The relative path for the page within the site. For example, `/product-page/a-product`.
1008
+ * @maxLength 2048
1009
+ */
1010
+ relativePath?: string;
1011
+ /**
1012
+ * The page's full URL. For example, `https://mysite.com/product-page/a-product`.
1013
+ * @maxLength 2048
1014
+ */
1015
+ url?: string | null;
1016
+ }
1017
+ interface ExtendedFields {
1018
+ /**
1019
+ * Extended field data. Each key corresponds to the namespace of the app that created the extended fields.
1020
+ * The value of each key is structured according to the schema defined when the extended fields were configured.
1021
+ *
1022
+ * You can only access fields for which you have the appropriate permissions.
1023
+ *
1024
+ * Learn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields).
1025
+ */
1026
+ namespaces?: Record<string, Record<string, any>>;
1027
+ }
1028
+ /**
1029
+ * The SEO schema object contains data about different types of meta tags. It makes sure that the information about your page is presented properly to search engines.
1030
+ * The search engines use this information for ranking purposes, or to display snippets in the search results.
1031
+ * This data will override other sources of tags (for example patterns) and will be included in the <head> section of the HTML document, while not being displayed on the page itself.
1032
+ */
1033
+ interface SeoSchema {
1034
+ /** SEO tag information. */
1035
+ tags?: Tag[];
1036
+ /** SEO general settings. */
1037
+ settings?: Settings;
1038
+ }
1039
+ interface Keyword {
1040
+ /** Keyword value. */
1041
+ term?: string;
1042
+ /** Whether the keyword is the main focus keyword. */
1043
+ isMain?: boolean;
1044
+ /**
1045
+ * The source that added the keyword terms to the SEO settings.
1046
+ * @maxLength 1000
1047
+ */
1048
+ origin?: string | null;
1049
+ }
1050
+ interface Tag {
1051
+ /**
1052
+ * SEO tag type.
1053
+ *
1054
+ *
1055
+ * Supported values: `title`, `meta`, `script`, `link`.
1056
+ */
1057
+ type?: string;
1058
+ /**
1059
+ * A `{"key": "value"}` pair object where each SEO tag property (`"name"`, `"content"`, `"rel"`, `"href"`) contains a value.
1060
+ * For example: `{"name": "description", "content": "the description itself"}`.
1061
+ */
1062
+ props?: Record<string, any> | null;
1063
+ /** SEO tag meta data. For example, `{"height": 300, "width": 240}`. */
1064
+ meta?: Record<string, any> | null;
1065
+ /** SEO tag inner content. For example, `<title> inner content </title>`. */
1066
+ children?: string;
1067
+ /** Whether the tag is a custom tag. */
1068
+ custom?: boolean;
1069
+ /** Whether the tag is disabled. */
1070
+ disabled?: boolean;
1071
+ }
1072
+ interface Settings {
1073
+ /**
1074
+ * Whether the Auto Redirect feature, which creates `301 redirects` on a slug change, is enabled.
1075
+ *
1076
+ *
1077
+ * Default: `false` (Auto Redirect is enabled.)
1078
+ */
1079
+ preventAutoRedirect?: boolean;
1080
+ /**
1081
+ * User-selected keyword terms for a specific page.
1082
+ * @maxSize 5
1083
+ */
1084
+ keywords?: Keyword[];
1085
+ }
1086
+ interface CreateServiceRequest {
1087
+ /** Service to create. */
1088
+ service: Service;
1089
+ }
1090
+ interface CreateServiceResponse {
1091
+ /** Created service. */
1092
+ service?: Service;
1093
+ }
1094
+ interface BulkServiceResult {
1095
+ /** Update metadata. */
1096
+ itemMetadata?: ItemMetadata;
1097
+ /** Updated service. */
1098
+ item?: Service;
1099
+ }
1100
+ interface ItemMetadata {
1101
+ /**
1102
+ * Item ID. Should always be available, unless it's impossible (for example, when failing to create an item).
1103
+ * @format GUID
1104
+ */
1105
+ id?: string | null;
1106
+ /** Index of the item within the request array. Allows for correlation between request and response items. */
1107
+ originalIndex?: number;
1108
+ /** Whether the requested action was successful for this item. When `false`, the `error` field is populated. */
1109
+ success?: boolean;
1110
+ /** Details about the error in case of failure. */
1111
+ error?: ApplicationError;
1112
+ }
1113
+ interface ApplicationError {
1114
+ /** Error code. */
1115
+ code?: string;
1116
+ /** Description of the error. */
1117
+ description?: string;
1118
+ /** Data related to the error. */
1119
+ data?: Record<string, any> | null;
1120
+ }
1121
+ interface BulkActionMetadata {
1122
+ /** Number of items that were successfully processed. */
1123
+ totalSuccesses?: number;
1124
+ /** Number of items that couldn't be processed. */
1125
+ totalFailures?: number;
1126
+ /** Number of failures without details because detailed failure threshold was exceeded. */
1127
+ undetailedFailures?: number;
1128
+ }
1129
+ interface GetServiceRequest {
1130
+ /**
1131
+ * ID of the service to retrieve.
1132
+ * @format GUID
1133
+ */
1134
+ serviceId: string;
1135
+ }
1136
+ interface GetServiceResponse {
1137
+ /** Retrieved service. */
1138
+ service?: Service;
1139
+ }
1140
+ interface UpdateServiceRequest {
1141
+ /** Service to update. */
1142
+ service: Service;
1143
+ }
1144
+ interface UpdateServiceResponse {
1145
+ /** Updated service. */
1146
+ service?: Service;
1147
+ }
1148
+ interface BulkUpdateServicesRequest {
1149
+ /**
1150
+ * Services to update.
1151
+ * @maxSize 100
1152
+ */
1153
+ services?: MaskedService[];
1154
+ /** Whether to include the updated services in the response. Default: `false` */
1155
+ returnEntity?: boolean;
1156
+ }
1157
+ interface MaskedService {
1158
+ /** Service to update. */
1159
+ service?: Service;
1160
+ /** Explicit list of fields to update. */
1161
+ mask?: string[];
1162
+ }
1163
+ interface BulkUpdateServicesResponse {
1164
+ /** The result of each service update. */
1165
+ results?: BulkServiceResult[];
1166
+ /** Update statistics. */
1167
+ bulkActionMetadata?: BulkActionMetadata;
1168
+ }
1169
+ interface BulkUpdateServicesByFilterRequest {
1170
+ /** Filter to identify the services to update. */
1171
+ filter: Record<string, any> | null;
1172
+ /** Service to update. */
1173
+ service: Service;
1174
+ }
1175
+ interface BulkUpdateServicesByFilterResponse {
1176
+ /**
1177
+ * ID of the service update job.
1178
+ *
1179
+ * Pass this ID to [Get Async Job](https://dev.wix.com/docs/rest/business-management/async-job/introduction) to retrieve job details and metadata.
1180
+ * @format GUID
1181
+ */
1182
+ jobId?: string;
1183
+ }
1184
+ interface DeleteServiceRequest {
1185
+ /**
1186
+ * ID of the service to delete.
1187
+ * @format GUID
1188
+ */
1189
+ serviceId: string;
1190
+ /**
1191
+ * Whether to preserve future sessions with participants.
1192
+ *
1193
+ * Default: `false`
1194
+ */
1195
+ preserveFutureSessionsWithParticipants?: boolean;
1196
+ /**
1197
+ * Whether to notify participants about the change and an optional
1198
+ * custom message.
1199
+ */
1200
+ participantNotification?: ParticipantNotification;
1201
+ }
1202
+ interface ParticipantNotification {
1203
+ /**
1204
+ * Whether to send the message about the changes to the customer.
1205
+ *
1206
+ * Default: `false`
1207
+ */
1208
+ notifyParticipants?: boolean | null;
1209
+ /**
1210
+ * Custom message to send to the participants about the changes to the booking.
1211
+ * @maxLength 2000
1212
+ */
1213
+ message?: string | null;
1214
+ }
1215
+ interface DeleteServiceResponse {
1216
+ }
1217
+ interface BulkDeleteServicesRequest {
1218
+ /**
1219
+ * IDs of the services to delete.
1220
+ * @format GUID
1221
+ * @maxSize 100
1222
+ */
1223
+ ids: string[];
1224
+ /**
1225
+ * Whether to preserve future sessions with participants.
1226
+ *
1227
+ * Default: `false`.
1228
+ */
1229
+ preserveFutureSessionsWithParticipants?: boolean;
1230
+ /**
1231
+ * Whether to notify participants about the change and an optional
1232
+ * custom message.
1233
+ */
1234
+ participantNotification?: ParticipantNotification;
1235
+ }
1236
+ interface BulkDeleteServicesResponse {
1237
+ /** The result of each service removal. */
1238
+ results?: BulkServiceResult[];
1239
+ /** Delete statistics. */
1240
+ bulkActionMetadata?: BulkActionMetadata;
1241
+ }
1242
+ interface BulkDeleteServicesByFilterRequest {
1243
+ /** Filter to identify the services that need to be deleted. */
1244
+ filter: Record<string, any> | null;
1245
+ /**
1246
+ * Whether to preserve future sessions with participants.
1247
+ *
1248
+ * Default: `false`.
1249
+ */
1250
+ preserveFutureSessionsWithParticipants?: boolean;
1251
+ /** Whether to notify participants about the change and an optional custom message. */
1252
+ participantNotification?: ParticipantNotification;
1253
+ }
1254
+ interface BulkDeleteServicesByFilterResponse {
1255
+ /**
1256
+ * ID of the service deletion job.
1257
+ *
1258
+ * Pass this ID to [Get Async Job](https://dev.wix.com/docs/rest/business-management/async-job/introduction) to retrieve job details and metadata.
1259
+ * @format GUID
1260
+ */
1261
+ jobId?: string;
1262
+ }
1263
+ interface QueryServicesRequest {
1264
+ /** WQL expression. */
1265
+ query: QueryV2;
1266
+ }
1267
+ interface QueryV2 extends QueryV2PagingMethodOneOf {
1268
+ /** Paging options to limit and skip the number of items. */
1269
+ paging?: Paging;
1270
+ /**
1271
+ * Filter object in the following format:
1272
+ *
1273
+ * `"filter" : {
1274
+ * "fieldName1": "value1",
1275
+ * "fieldName2":{"$operator":"value2"}
1276
+ * }`
1277
+ *
1278
+ * Example of operators: `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`, `$in`, `$hasSome`, `$hasAll`, `$startsWith`
1279
+ *
1280
+ * Read more about [supported fields and operators](https://dev.wix.com/api/rest/wix-bookings/services-v2/filtering-and-sorting).
1281
+ */
1282
+ filter?: Record<string, any> | null;
1283
+ /**
1284
+ * Sort object in the following format:
1285
+ * `[ {"fieldName":"sortField1","order":"ASC"},
1286
+ * {"fieldName":"sortField2","order":"DESC"} ]`
1287
+ *
1288
+ * Read more about [sorting](https://dev.wix.com/api/rest/wix-bookings/services-v2/filtering-and-sorting#wix-bookings_services-v2_filtering-and-sorting_sorting).
1289
+ * @maxSize 50
1290
+ */
1291
+ sort?: Sorting[];
1292
+ }
1293
+ /** @oneof */
1294
+ interface QueryV2PagingMethodOneOf {
1295
+ /** Paging options to limit and skip the number of items. */
1296
+ paging?: Paging;
1297
+ }
1298
+ interface Sorting {
1299
+ /**
1300
+ * Name of the field to sort by.
1301
+ * @maxLength 512
1302
+ */
1303
+ fieldName?: string;
1304
+ /** Sort order. */
1305
+ order?: SortOrder;
1306
+ }
1307
+ declare enum SortOrder {
1308
+ ASC = "ASC",
1309
+ DESC = "DESC"
1310
+ }
1311
+ interface Paging {
1312
+ /** Number of items to load. */
1313
+ limit?: number | null;
1314
+ /** Number of items to skip in the current sort order. */
1315
+ offset?: number | null;
1316
+ }
1317
+ interface CursorPaging {
1318
+ /**
1319
+ * Number of items to load.
1320
+ * @max 100
1321
+ */
1322
+ limit?: number | null;
1323
+ /**
1324
+ * Pointer to the next or previous page in the list of results.
1325
+ *
1326
+ * You can get the relevant cursor token
1327
+ * from the `pagingMetadata` object in the previous call's response.
1328
+ * Not relevant for the first request.
1329
+ * @maxLength 16000
1330
+ */
1331
+ cursor?: string | null;
1332
+ }
1333
+ interface QueryServicesResponse {
1334
+ /** The retrieved services. */
1335
+ services?: Service[];
1336
+ /** Paging metadata, including offset and count. */
1337
+ pagingMetadata?: PagingMetadataV2;
1338
+ }
1339
+ interface PagingMetadataV2 {
1340
+ /** Number of items returned in the response. */
1341
+ count?: number | null;
1342
+ /** Offset that was requested. */
1343
+ offset?: number | null;
1344
+ /** Total number of items that match the query. Returned if offset paging is used and the `tooManyToCount` flag is not set. */
1345
+ total?: number | null;
1346
+ /** Flag that indicates the server failed to calculate the `total` field. */
1347
+ tooManyToCount?: boolean | null;
1348
+ /** Cursors to navigate through the result pages using `next` and `prev`. Returned if cursor paging is used. */
1349
+ cursors?: Cursors;
1350
+ }
1351
+ interface Cursors {
1352
+ /**
1353
+ * Cursor pointing to next page in the list of results.
1354
+ * @maxLength 16000
1355
+ */
1356
+ next?: string | null;
1357
+ /**
1358
+ * Cursor pointing to previous page in the list of results.
1359
+ * @maxLength 16000
1360
+ */
1361
+ prev?: string | null;
1362
+ }
1363
+ interface SearchServicesRequest {
1364
+ /** WQL, search or aggregation expression. */
1365
+ search: CursorSearch;
1366
+ }
1367
+ interface CursorSearch extends CursorSearchPagingMethodOneOf {
1368
+ /**
1369
+ * Cursor pointing to page of results.
1370
+ * When requesting 'cursor_paging.cursor', no `filter`, `sort` or `search` can be provided.
1371
+ */
1372
+ cursorPaging?: CursorPaging;
1373
+ /** A filter object. See documentation [here](https://bo.wix.com/wix-docs/rnd/platformization-guidelines/api-query-language#platformization-guidelines_api-query-language_defining-in-protobuf) */
1374
+ filter?: Record<string, any> | null;
1375
+ /**
1376
+ * Sort object in the form [{"fieldName":"sortField1"},{"fieldName":"sortField2","direction":"DESC"}]
1377
+ * @maxSize 10
1378
+ */
1379
+ sort?: Sorting[];
1380
+ /**
1381
+ * Aggregations | Faceted search: refers to a way to explore large amounts of data by displaying summaries about various partitions of the data and later allowing to narrow the navigation to a specific partition.
1382
+ * @maxSize 10
1383
+ */
1384
+ aggregations?: Aggregation[];
1385
+ /** Free text to match in searchable fields */
1386
+ search?: SearchDetails;
1387
+ /**
1388
+ * UTC offset or IANA time zone. Valid values are
1389
+ * ISO 8601 UTC offsets, such as +02:00 or -06:00,
1390
+ * and IANA time zone IDs, such as Europe/Rome
1391
+ *
1392
+ * Affects all filters and aggregations returned values.
1393
+ * You may override this behavior in a specific filter by providing
1394
+ * timestamps including time zone. e.g. `"2023-12-20T10:52:34.795Z"`
1395
+ * @maxLength 50
1396
+ */
1397
+ timeZone?: string | null;
1398
+ }
1399
+ /** @oneof */
1400
+ interface CursorSearchPagingMethodOneOf {
1401
+ /**
1402
+ * Cursor pointing to page of results.
1403
+ * When requesting 'cursor_paging.cursor', no `filter`, `sort` or `search` can be provided.
1404
+ */
1405
+ cursorPaging?: CursorPaging;
1406
+ }
1407
+ interface Aggregation extends AggregationKindOneOf {
1408
+ /** Value aggregation */
1409
+ value?: ValueAggregation;
1410
+ /** Range aggregation */
1411
+ range?: RangeAggregation;
1412
+ /** Scalar aggregation */
1413
+ scalar?: ScalarAggregation;
1414
+ /** Date histogram aggregation */
1415
+ dateHistogram?: DateHistogramAggregation;
1416
+ /** Nested aggregation */
1417
+ nested?: NestedAggregation;
1418
+ /**
1419
+ * User-defined name of aggregation, should be unique, will appear in aggregation results
1420
+ * @maxLength 100
1421
+ */
1422
+ name?: string | null;
1423
+ /** Type of aggregation, client must provide matching aggregation field below */
1424
+ type?: AggregationType;
1425
+ /**
1426
+ * Field to aggregate by, use dot notation to specify json path
1427
+ * @maxLength 200
1428
+ */
1429
+ fieldPath?: string;
1430
+ /**
1431
+ * deprecated, use `nested` instead
1432
+ * @deprecated deprecated, use `nested` instead
1433
+ * @replacedBy kind.nested
1434
+ * @targetRemovalDate 2025-01-01
1435
+ */
1436
+ groupBy?: GroupByAggregation;
1437
+ }
1438
+ /** @oneof */
1439
+ interface AggregationKindOneOf {
1440
+ /** Value aggregation */
1441
+ value?: ValueAggregation;
1442
+ /** Range aggregation */
1443
+ range?: RangeAggregation;
1444
+ /** Scalar aggregation */
1445
+ scalar?: ScalarAggregation;
1446
+ /** Date histogram aggregation */
1447
+ dateHistogram?: DateHistogramAggregation;
1448
+ /** Nested aggregation */
1449
+ nested?: NestedAggregation;
1450
+ }
1451
+ interface RangeBucket {
1452
+ /** Inclusive lower bound of the range. Required if to is not given. */
1453
+ from?: number | null;
1454
+ /** Exclusive upper bound of the range. Required if from is not given. */
1455
+ to?: number | null;
1456
+ }
1457
+ declare enum SortType {
1458
+ COUNT = "COUNT",
1459
+ VALUE = "VALUE"
1460
+ }
1461
+ declare enum SortDirection {
1462
+ DESC = "DESC",
1463
+ ASC = "ASC"
1464
+ }
1465
+ declare enum MissingValues {
1466
+ EXCLUDE = "EXCLUDE",
1467
+ INCLUDE = "INCLUDE"
1468
+ }
1469
+ interface IncludeMissingValuesOptions {
1470
+ /**
1471
+ * can specify custom bucket name. Defaults are [string -> "N/A"], [int -> "0"], [bool -> "false"] ...
1472
+ * @maxLength 20
1473
+ */
1474
+ addToBucket?: string;
1475
+ }
1476
+ declare enum ScalarType {
1477
+ UNKNOWN_SCALAR_TYPE = "UNKNOWN_SCALAR_TYPE",
1478
+ COUNT_DISTINCT = "COUNT_DISTINCT",
1479
+ MIN = "MIN",
1480
+ MAX = "MAX"
1481
+ }
1482
+ interface ValueAggregation extends ValueAggregationOptionsOneOf {
1483
+ /** options for including missing values */
1484
+ includeOptions?: IncludeMissingValuesOptions;
1485
+ /** Should sort by number of matches or value of the field */
1486
+ sortType?: SortType;
1487
+ /** Should sort in ascending or descending order */
1488
+ sortDirection?: SortDirection;
1489
+ /** How many aggregations would you like to return? Can be between 1 and 250. 10 is the default. */
1490
+ limit?: number | null;
1491
+ /** should missing values be included or excluded from the aggregation results. Default is EXCLUDE */
1492
+ missingValues?: MissingValues;
1493
+ }
1494
+ /** @oneof */
1495
+ interface ValueAggregationOptionsOneOf {
1496
+ /** options for including missing values */
1497
+ includeOptions?: IncludeMissingValuesOptions;
1498
+ }
1499
+ declare enum NestedAggregationType {
1500
+ UNKNOWN_AGGREGATION_TYPE = "UNKNOWN_AGGREGATION_TYPE",
1501
+ VALUE = "VALUE",
1502
+ RANGE = "RANGE",
1503
+ SCALAR = "SCALAR",
1504
+ DATE_HISTOGRAM = "DATE_HISTOGRAM"
1505
+ }
1506
+ interface RangeAggregation {
1507
+ /**
1508
+ * Range buckets
1509
+ * @maxSize 50
1510
+ */
1511
+ buckets?: RangeBucket[];
1512
+ }
1513
+ interface ScalarAggregation {
1514
+ /** Define the operator for the scalar aggregation */
1515
+ type?: ScalarType;
1516
+ }
1517
+ interface DateHistogramAggregation {
1518
+ /** Interval for date histogram aggregation */
1519
+ interval?: DateHistogramAggregationInterval;
1520
+ }
1521
+ declare enum DateHistogramAggregationInterval {
1522
+ /** Unknown interval. */
1523
+ UNKNOWN_INTERVAL = "UNKNOWN_INTERVAL",
1524
+ /** Yearly interval. */
1525
+ YEAR = "YEAR",
1526
+ /** Monthly interval. */
1527
+ MONTH = "MONTH",
1528
+ /** Weekly interval. */
1529
+ WEEK = "WEEK",
1530
+ /** Daily interval. */
1531
+ DAY = "DAY",
1532
+ /** Hourly interval. */
1533
+ HOUR = "HOUR",
1534
+ /** Minute interval. */
1535
+ MINUTE = "MINUTE",
1536
+ /** Second interval. */
1537
+ SECOND = "SECOND"
1538
+ }
1539
+ interface NestedAggregationItem extends NestedAggregationItemKindOneOf {
1540
+ /** Value aggregation */
1541
+ value?: ValueAggregation;
1542
+ /** Range aggregation */
1543
+ range?: RangeAggregation;
1544
+ /** Scalar aggregation */
1545
+ scalar?: ScalarAggregation;
1546
+ /** Date histogram aggregation */
1547
+ dateHistogram?: DateHistogramAggregation;
1548
+ /**
1549
+ * User-defined name of aggregation, should be unique, will appear in aggregation results
1550
+ * @maxLength 100
1551
+ */
1552
+ name?: string | null;
1553
+ /** Type of aggregation, client must provide matching aggregation field below */
1554
+ type?: NestedAggregationType;
1555
+ /**
1556
+ * Field to aggregate by, use dont notation to specify json path
1557
+ * @maxLength 200
1558
+ */
1559
+ fieldPath?: string;
1560
+ }
1561
+ /** @oneof */
1562
+ interface NestedAggregationItemKindOneOf {
1563
+ /** Value aggregation */
1564
+ value?: ValueAggregation;
1565
+ /** Range aggregation */
1566
+ range?: RangeAggregation;
1567
+ /** Scalar aggregation */
1568
+ scalar?: ScalarAggregation;
1569
+ /** Date histogram aggregation */
1570
+ dateHistogram?: DateHistogramAggregation;
1571
+ }
1572
+ declare enum AggregationType {
1573
+ UNKNOWN_AGGREGATION_TYPE = "UNKNOWN_AGGREGATION_TYPE",
1574
+ VALUE = "VALUE",
1575
+ RANGE = "RANGE",
1576
+ SCALAR = "SCALAR",
1577
+ DATE_HISTOGRAM = "DATE_HISTOGRAM",
1578
+ NESTED = "NESTED"
1579
+ }
1580
+ /** nested aggregation expressed through a list of aggregation where each next aggregation is nested within previous one */
1581
+ interface NestedAggregation {
1582
+ /**
1583
+ * Flattened list of aggregations, where each next aggregation is nested within previous one
1584
+ * @minSize 2
1585
+ * @maxSize 10
1586
+ */
1587
+ nestedAggregations?: NestedAggregationItem[];
1588
+ }
1589
+ interface GroupByAggregation extends GroupByAggregationKindOneOf {
1590
+ /** Value aggregation configuration */
1591
+ value?: ValueAggregation;
1592
+ /**
1593
+ * User-defined name of aggregation, should be unique, will appear in aggregation results
1594
+ * @maxLength 100
1595
+ */
1596
+ name?: string | null;
1597
+ /**
1598
+ * Field to aggregate by
1599
+ * @maxLength 200
1600
+ */
1601
+ fieldPath?: string;
1602
+ }
1603
+ /** @oneof */
1604
+ interface GroupByAggregationKindOneOf {
1605
+ /** Value aggregation configuration */
1606
+ value?: ValueAggregation;
1607
+ }
1608
+ interface SearchDetails {
1609
+ /** Boolean search mode */
1610
+ mode?: Mode;
1611
+ /**
1612
+ * Search term or expression
1613
+ * @maxLength 200
1614
+ */
1615
+ expression?: string | null;
1616
+ /**
1617
+ * Fields to search in. If empty - server will search in own default fields
1618
+ * @maxSize 10
1619
+ * @maxLength 200
1620
+ */
1621
+ fields?: string[];
1622
+ /** Flag if should use auto fuzzy search (allowing typos by a managed proximity algorithm) */
1623
+ fuzzy?: boolean;
1624
+ }
1625
+ declare enum Mode {
1626
+ /** Any */
1627
+ OR = "OR",
1628
+ /** All */
1629
+ AND = "AND"
1630
+ }
1631
+ interface SearchServicesResponse {
1632
+ /** The retrieved services. */
1633
+ services?: Service[];
1634
+ /** Cursor paging metadata */
1635
+ pagingMetadata?: CursorPagingMetadata;
1636
+ /** Response aggregation data */
1637
+ aggregationData?: AggregationData;
1638
+ }
1639
+ interface CursorPagingMetadata {
1640
+ /** Number of items returned in the response. */
1641
+ count?: number | null;
1642
+ /** Use these cursor to paginate between results. [Read more](https://dev.wix.com/api/rest/getting-started/api-query-language#getting-started_api-query-language_cursor-paging). */
1643
+ cursors?: Cursors;
1644
+ /**
1645
+ * Indicates if there are more results after the current page.
1646
+ * If `true`, another page of results can be retrieved.
1647
+ * If `false`, this is the last page.
1648
+ */
1649
+ hasNext?: boolean | null;
1650
+ }
1651
+ interface AggregationData {
1652
+ /**
1653
+ * key = aggregation name (as derived from search request)
1654
+ * @maxSize 10000
1655
+ */
1656
+ results?: AggregationResults[];
1657
+ }
1658
+ interface ValueAggregationResult {
1659
+ /**
1660
+ * Value of the field
1661
+ * @maxLength 100
1662
+ */
1663
+ value?: string;
1664
+ /** Count of entities with this value */
1665
+ count?: number;
1666
+ }
1667
+ interface RangeAggregationResult {
1668
+ /** Inclusive lower bound of the range */
1669
+ from?: number | null;
1670
+ /** Exclusive upper bound of the range */
1671
+ to?: number | null;
1672
+ /** Count of entities in this range */
1673
+ count?: number;
1674
+ }
1675
+ interface NestedAggregationResults extends NestedAggregationResultsResultOneOf {
1676
+ /** Value aggregation results */
1677
+ values?: ValueResults;
1678
+ /** Range aggregation results */
1679
+ ranges?: RangeResults;
1680
+ /** Scalar aggregation results */
1681
+ scalar?: AggregationResultsScalarResult;
1682
+ /**
1683
+ * User-defined name of aggregation, matches the one provided in request
1684
+ * @maxLength 100
1685
+ */
1686
+ name?: string;
1687
+ /** Type of aggregation that matches result */
1688
+ type?: AggregationType;
1689
+ /**
1690
+ * Field to aggregate by, matches the one provided in request
1691
+ * @maxLength 200
1692
+ */
1693
+ fieldPath?: string;
1694
+ }
1695
+ /** @oneof */
1696
+ interface NestedAggregationResultsResultOneOf {
1697
+ /** Value aggregation results */
1698
+ values?: ValueResults;
1699
+ /** Range aggregation results */
1700
+ ranges?: RangeResults;
1701
+ /** Scalar aggregation results */
1702
+ scalar?: AggregationResultsScalarResult;
1703
+ }
1704
+ interface ValueResults {
1705
+ /**
1706
+ * List of value aggregations
1707
+ * @maxSize 250
1708
+ */
1709
+ results?: ValueAggregationResult[];
1710
+ }
1711
+ interface RangeResults {
1712
+ /**
1713
+ * List of ranges returned in same order as requested
1714
+ * @maxSize 50
1715
+ */
1716
+ results?: RangeAggregationResult[];
1717
+ }
1718
+ interface AggregationResultsScalarResult {
1719
+ /** Type of scalar aggregation */
1720
+ type?: ScalarType;
1721
+ /** Value of the scalar aggregation */
1722
+ value?: number;
1723
+ }
1724
+ interface NestedValueAggregationResult {
1725
+ /**
1726
+ * Value of the field
1727
+ * @maxLength 1000
1728
+ */
1729
+ value?: string;
1730
+ /** Nested aggregations */
1731
+ nestedResults?: NestedAggregationResults;
1732
+ }
1733
+ interface ValueResult {
1734
+ /**
1735
+ * Value of the field
1736
+ * @maxLength 1000
1737
+ */
1738
+ value?: string;
1739
+ /** Count of entities with this value */
1740
+ count?: number | null;
1741
+ }
1742
+ interface RangeResult {
1743
+ /** Inclusive lower bound of the range */
1744
+ from?: number | null;
1745
+ /** Exclusive upper bound of the range */
1746
+ to?: number | null;
1747
+ /** Count of entities in this range */
1748
+ count?: number | null;
1749
+ }
1750
+ interface ScalarResult {
1751
+ /** Value of the scalar aggregation */
1752
+ value?: number;
1753
+ }
1754
+ interface NestedResultValue extends NestedResultValueResultOneOf {
1755
+ /** Value aggregation result */
1756
+ value?: ValueResult;
1757
+ /** Range aggregation result */
1758
+ range?: RangeResult;
1759
+ /** Scalar aggregation result */
1760
+ scalar?: ScalarResult;
1761
+ /** Date histogram aggregation result */
1762
+ dateHistogram?: ValueResult;
1763
+ }
1764
+ /** @oneof */
1765
+ interface NestedResultValueResultOneOf {
1766
+ /** Value aggregation result */
1767
+ value?: ValueResult;
1768
+ /** Range aggregation result */
1769
+ range?: RangeResult;
1770
+ /** Scalar aggregation result */
1771
+ scalar?: ScalarResult;
1772
+ /** Date histogram aggregation result */
1773
+ dateHistogram?: ValueResult;
1774
+ }
1775
+ interface Results {
1776
+ /** List of nested aggregations */
1777
+ results?: Record<string, NestedResultValue>;
1778
+ }
1779
+ interface DateHistogramResult {
1780
+ /**
1781
+ * Date in ISO 8601 format
1782
+ * @maxLength 100
1783
+ */
1784
+ value?: string;
1785
+ /** Count of documents in the bucket */
1786
+ count?: number;
1787
+ }
1788
+ interface GroupByValueResults {
1789
+ /**
1790
+ * List of value aggregations
1791
+ * @maxSize 1000
1792
+ */
1793
+ results?: NestedValueAggregationResult[];
1794
+ }
1795
+ interface DateHistogramResults {
1796
+ /**
1797
+ * List of date histogram aggregations
1798
+ * @maxSize 200
1799
+ */
1800
+ results?: DateHistogramResult[];
1801
+ }
1802
+ /**
1803
+ * results of `NESTED` aggregation type in a flattened form
1804
+ * aggregations in resulting array are keyed by requested aggregation `name`.
1805
+ */
1806
+ interface NestedResults {
1807
+ /**
1808
+ * List of nested aggregations
1809
+ * @maxSize 1000
1810
+ */
1811
+ results?: Results[];
1812
+ }
1813
+ interface AggregationResults extends AggregationResultsResultOneOf {
1814
+ /** Value aggregation results */
1815
+ values?: ValueResults;
1816
+ /** Range aggregation results */
1817
+ ranges?: RangeResults;
1818
+ /** Scalar aggregation results */
1819
+ scalar?: AggregationResultsScalarResult;
1820
+ /** Group by value aggregation results */
1821
+ groupedByValue?: GroupByValueResults;
1822
+ /** Date histogram aggregation results */
1823
+ dateHistogram?: DateHistogramResults;
1824
+ /** Nested aggregation results */
1825
+ nested?: NestedResults;
1826
+ /**
1827
+ * User-defined name of aggregation as derived from search request
1828
+ * @maxLength 100
1829
+ */
1830
+ name?: string;
1831
+ /** Type of aggregation that must match provided kind as derived from search request */
1832
+ type?: AggregationType;
1833
+ /**
1834
+ * Field to aggregate by as derived from search request
1835
+ * @maxLength 200
1836
+ */
1837
+ fieldPath?: string;
1838
+ }
1839
+ /** @oneof */
1840
+ interface AggregationResultsResultOneOf {
1841
+ /** Value aggregation results */
1842
+ values?: ValueResults;
1843
+ /** Range aggregation results */
1844
+ ranges?: RangeResults;
1845
+ /** Scalar aggregation results */
1846
+ scalar?: AggregationResultsScalarResult;
1847
+ /** Group by value aggregation results */
1848
+ groupedByValue?: GroupByValueResults;
1849
+ /** Date histogram aggregation results */
1850
+ dateHistogram?: DateHistogramResults;
1851
+ /** Nested aggregation results */
1852
+ nested?: NestedResults;
1853
+ }
1854
+ interface QueryPoliciesRequest {
1855
+ /**
1856
+ * Information about filters, paging, and sorting. See the article about
1857
+ * booking policy filters
1858
+ * ([REST](https://dev.wix.com/docs/rest/business-solutions/bookings/policies/booking-policies/supported-filters))
1859
+ * for all supported filters and sorting options.
1860
+ */
1861
+ query: CursorQuery;
1862
+ }
1863
+ interface CursorQuery extends CursorQueryPagingMethodOneOf {
1864
+ /** Cursor token pointing to a page of results. Not used in the first request. Following requests use the cursor token and not `filter` or `sort`. */
1865
+ cursorPaging?: CursorPaging;
1866
+ /**
1867
+ * Filter object in the following format:
1868
+ * `"filter" : {
1869
+ * "fieldName1": "value1",
1870
+ * "fieldName2":{"$operator":"value2"}
1871
+ * }`
1872
+ * Example of operators: `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`, `$in`, `$hasSome`, `$hasAll`, `$startsWith`
1873
+ */
1874
+ filter?: Record<string, any> | null;
1875
+ /**
1876
+ * Sort object in the following format:
1877
+ * `[{"fieldName":"sortField1","order":"ASC"},{"fieldName":"sortField2","order":"DESC"}]`
1878
+ * @maxSize 50
1879
+ */
1880
+ sort?: Sorting[];
1881
+ }
1882
+ /** @oneof */
1883
+ interface CursorQueryPagingMethodOneOf {
1884
+ /** Cursor token pointing to a page of results. Not used in the first request. Following requests use the cursor token and not `filter` or `sort`. */
1885
+ cursorPaging?: CursorPaging;
1886
+ }
1887
+ interface QueryPoliciesResponse {
1888
+ /** Retrieved booking policies and information about the services using them. */
1889
+ bookingPolicies?: BookingPolicyWithServices[];
1890
+ /** Paging metadata. */
1891
+ pagingMetadata?: CursorPagingMetadata;
1892
+ }
1893
+ interface BookingPolicyWithServices {
1894
+ /** Retrieved booking policy. */
1895
+ bookingPolicy?: BookingPolicy;
1896
+ /**
1897
+ * Up to 5 services connected to the booking policy. If `totalServiceCount` is
1898
+ * greater than 5, there are additional services connected to the policy.
1899
+ * You can call *Search Services*
1900
+ * ([SDK](https://dev.wix.com/docs/sdk/backend-modules/bookings/services/search-services) | [REST](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/search-services))
1901
+ * specifying the relevant policy ID in the filter, to retrieve all services that are
1902
+ * connected to a booking policy.
1903
+ * @maxSize 5
1904
+ */
1905
+ connectedServices?: Service[];
1906
+ /** Total number of services connected to the booking policy. */
1907
+ totalServiceCount?: number;
1908
+ }
1909
+ interface QueryBookingFormsRequest {
1910
+ /**
1911
+ * Information about filters, paging, and sorting. See the article about
1912
+ * form filters ([REST](https://dev.wix.com/docs/rest/crm/forms/forms/introduction/supported-filters))
1913
+ * for all supported filters and sorting options.
1914
+ */
1915
+ query: CursorQuery;
1916
+ /**
1917
+ * Conditional fields to return.
1918
+ * @maxSize 1
1919
+ */
1920
+ conditionalFields?: RequestedFields[];
1921
+ }
1922
+ declare enum RequestedFields {
1923
+ /** Unknown requested conditional field. */
1924
+ UNKNOWN_REQUESTED_FIELD = "UNKNOWN_REQUESTED_FIELD",
1925
+ /** Whether to return the site's default booking form. */
1926
+ DEFAULT_BOOKING_FORM = "DEFAULT_BOOKING_FORM"
1927
+ }
1928
+ interface QueryBookingFormsResponse {
1929
+ /** Retrieved booking forms and information about connected services. */
1930
+ bookingForms?: BookingForm[];
1931
+ /** Paging metadata. */
1932
+ pagingMetadata?: CursorPagingMetadata;
1933
+ /** The site's default booking form and information about connected services. */
1934
+ defaultBookingForm?: BookingForm;
1935
+ }
1936
+ interface BookingForm {
1937
+ /** Information about the retrieved booking form. */
1938
+ formDetails?: FormDetails;
1939
+ /**
1940
+ * Up to 5 services connected to the booking form. If `totalServiceCount` is
1941
+ * greater than 5, there are additional services connected to the policy.
1942
+ * You can call *Search Services*
1943
+ * ([SDK](https://dev.wix.com/docs/sdk/backend-modules/bookings/services/search-services) | [REST](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/search-services))
1944
+ * specifying the relevant policy ID in the filter, to retrieve all services that are
1945
+ * connected to a booking policy.
1946
+ * @maxSize 5
1947
+ */
1948
+ connectedServices?: ConnectedService[];
1949
+ /** Total number of services connected to the booking form. */
1950
+ totalServiceCount?: number;
1951
+ }
1952
+ interface FormDetails {
1953
+ /**
1954
+ * Form ID.
1955
+ * @format GUID
1956
+ */
1957
+ formId?: string;
1958
+ /**
1959
+ * Form name.
1960
+ * @maxLength 200
1961
+ */
1962
+ name?: string | null;
1963
+ /**
1964
+ * Revision number, which increments by 1 each time the form is updated.
1965
+ * To prevent conflicting changes,
1966
+ * the current revision must be passed when updating the form.
1967
+ * @readonly
1968
+ */
1969
+ revision?: string | null;
1970
+ }
1971
+ interface ConnectedService {
1972
+ /**
1973
+ * ID of the service connected to the booking form.
1974
+ * @format GUID
1975
+ */
1976
+ id?: string | null;
1977
+ /**
1978
+ * Name of the service connected to the booking form.
1979
+ * @maxLength 400
1980
+ * @minLength 1
1981
+ */
1982
+ name?: string | null;
1983
+ }
1984
+ interface CountServicesRequest {
1985
+ /**
1986
+ * Query filter to base the count on. See supported filters
1987
+ * ([REST](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/filtering-and-sorting#filtering))
1988
+ * for more details.
1989
+ */
1990
+ filter?: Record<string, any> | null;
1991
+ }
1992
+ interface CountServicesResponse {
1993
+ /** Number of services matching the specified filter. */
1994
+ count?: number;
1995
+ }
1996
+ interface QueryLocationsRequest {
1997
+ /** Filter. */
1998
+ filter?: QueryLocationsFilter;
1999
+ }
2000
+ interface QueryLocationsFilter {
2001
+ /**
2002
+ * Service filter. See supported filters
2003
+ * ([REST](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/filtering-and-sorting#filtering))
2004
+ * for more details.
2005
+ */
2006
+ services?: Record<string, any> | null;
2007
+ /**
2008
+ * List of business IDs to filter by.
2009
+ * @format GUID
2010
+ * @maxSize 100
2011
+ */
2012
+ businessLocationIds?: string[];
2013
+ }
2014
+ interface QueryLocationsResponse {
2015
+ /**
2016
+ * Retrieved business locations and whether each location is connected to at
2017
+ * least one service.
2018
+ */
2019
+ businessLocations?: BusinessLocations;
2020
+ /**
2021
+ * Retrieved custom locations and whether each location is connected to at
2022
+ * least one service.
2023
+ */
2024
+ customLocations?: CustomLocations;
2025
+ /**
2026
+ * Retrieved customer locations and whether each location is connected to at
2027
+ * least one service.
2028
+ */
2029
+ customerLocations?: CustomerLocations;
2030
+ }
2031
+ interface BusinessLocations {
2032
+ /**
2033
+ * Whether at least one service matching the filter is connected to any of the
2034
+ * retrieved business locations.
2035
+ */
2036
+ exists?: boolean;
2037
+ /**
2038
+ * Retrieved business locations.
2039
+ * @maxSize 100
2040
+ */
2041
+ locations?: V2Location[];
2042
+ }
2043
+ interface CustomLocations {
2044
+ /**
2045
+ * Whether at least one service matching the filter is connected to any of the
2046
+ * retrieved custom locations.
2047
+ */
2048
+ exists?: boolean;
2049
+ }
2050
+ interface CustomerLocations {
2051
+ /**
2052
+ * Whether at least one service matching the filter is connected to any of the
2053
+ * retrieved customer locations.
2054
+ */
2055
+ exists?: boolean;
2056
+ }
2057
+ interface QueryCategoriesRequest {
2058
+ /** Filter. */
2059
+ filter?: QueryCategoriesFilter;
2060
+ }
2061
+ interface QueryCategoriesFilter {
2062
+ /**
2063
+ * Service filter. See supported filters
2064
+ * ([REST](https://dev.wix.com/docs/rest/business-solutions/bookings/services/services-v2/filtering-and-sorting#filtering))
2065
+ * for more details.
2066
+ */
2067
+ services?: Record<string, any> | null;
2068
+ /**
2069
+ * List of category IDs to filter by.
2070
+ * @format GUID
2071
+ * @maxSize 100
2072
+ */
2073
+ categoryIds?: string[];
2074
+ }
2075
+ interface QueryCategoriesResponse {
2076
+ /** Retrieved categories. */
2077
+ categories?: V2Category[];
2078
+ }
2079
+ interface SetServiceLocationsRequest {
2080
+ /**
2081
+ * ID of the service.
2082
+ * @format GUID
2083
+ */
2084
+ serviceId: string;
2085
+ /**
2086
+ * List of locations replacing existing service locations. Omitting an existing location removes it from the service. Specify `removedLocationSessionsAction` to determine the handling of future sessions scheduled at that location.
2087
+ * @maxSize 100
2088
+ */
2089
+ locations: V2Location[];
2090
+ /**
2091
+ * The action to perform on sessions currently set to a removed location. For
2092
+ * example, move existing sessions to a new specified location.
2093
+ * If not specified, sessions will not be moved to a new location.
2094
+ */
2095
+ removedLocationSessionsAction?: RemovedLocationSessionsAction;
2096
+ /**
2097
+ * Whether to notify participants about the change of location, and an
2098
+ * Optional custom message. The notification is sent only to participants of sessions that are affected by the change.
2099
+ */
2100
+ participantNotification?: ParticipantNotification;
2101
+ }
2102
+ interface RemovedLocationSessionsAction extends RemovedLocationSessionsActionActionOptionsOneOf {
2103
+ /**
2104
+ * Details about the new location of future events that were scheduled to take
2105
+ * place at a removed location.
2106
+ */
2107
+ moveToLocationOptions?: MoveToNewLocationsOptions;
2108
+ /** Information about what to do with future events at the removed location. */
2109
+ action?: Action;
2110
+ }
2111
+ /** @oneof */
2112
+ interface RemovedLocationSessionsActionActionOptionsOneOf {
2113
+ /**
2114
+ * Details about the new location of future events that were scheduled to take
2115
+ * place at a removed location.
2116
+ */
2117
+ moveToLocationOptions?: MoveToNewLocationsOptions;
2118
+ }
2119
+ declare enum Action {
2120
+ UNKNOWN_ACTION_TYPE = "UNKNOWN_ACTION_TYPE",
2121
+ /** Retain all future sessions at their current location. This is the default. */
2122
+ KEEP_AT_CURRENT_LOCATION = "KEEP_AT_CURRENT_LOCATION",
2123
+ /** Move future events to a new location. */
2124
+ MOVE_TO_LOCATION = "MOVE_TO_LOCATION",
2125
+ /**
2126
+ * Cancel all future events at the removed location.
2127
+ * Currently not supported.
2128
+ */
2129
+ DELETE = "DELETE"
2130
+ }
2131
+ interface MoveToNewLocationsOptions {
2132
+ /** The new location to move existing sessions currently set to a removed location, used when `action` is `MOVE_TO_LOCATION`. */
2133
+ newLocation?: V2Location;
2134
+ }
2135
+ interface SetServiceLocationsResponse {
2136
+ /** The updated service with the newly set locations. */
2137
+ service?: Service;
2138
+ }
2139
+ interface EnablePricingPlansForServiceRequest {
2140
+ /**
2141
+ * ID of the service to update.
2142
+ * @format GUID
2143
+ */
2144
+ serviceId: string;
2145
+ /**
2146
+ * IDs of the *pricing plans*
2147
+ * ([SDK](https://dev.wix.com/docs/sdk/backend-modules/pricing-plans/plans/introduction) | [REST](https://dev.wix.com/api/rest/wix-pricing-plans/pricing-plans/plans/plan-object))
2148
+ * to add to the service's `payment.pricingPlanIds` array.
2149
+ * @format GUID
2150
+ * @maxSize 100
2151
+ */
2152
+ pricingPlanIds: string[];
2153
+ }
2154
+ interface EnablePricingPlansForServiceResponse {
2155
+ /** Updated service. */
2156
+ service?: Service;
2157
+ }
2158
+ interface DisablePricingPlansForServiceRequest {
2159
+ /**
2160
+ * ID of the service to update.
2161
+ * @format GUID
2162
+ */
2163
+ serviceId: string;
2164
+ /**
2165
+ * IDs of the *pricing plans*
2166
+ * ([SDK](https://dev.wix.com/docs/sdk/backend-modules/pricing-plans/plans/introduction) | [REST](https://dev.wix.com/api/rest/wix-pricing-plans/pricing-plans/plans/plan-object))
2167
+ * to remove from the service's `payment.pricingPlanIds` array.
2168
+ * @format GUID
2169
+ * @maxSize 75
2170
+ */
2171
+ pricingPlanIds?: string[];
2172
+ }
2173
+ interface DisablePricingPlansForServiceResponse {
2174
+ /** Updated service. */
2175
+ service?: Service;
2176
+ }
2177
+ interface SetCustomSlugRequest {
2178
+ /**
2179
+ * ID of the service for which to update the active slug.
2180
+ * @format GUID
2181
+ */
2182
+ serviceId: string;
2183
+ /**
2184
+ * Slug to set as the active service slug.
2185
+ * @maxLength 500
2186
+ */
2187
+ slug?: string;
2188
+ }
2189
+ interface SetCustomSlugResponse {
2190
+ /** Updated active service slug. */
2191
+ slug?: Slug;
2192
+ /** Updated service. */
2193
+ service?: Service;
2194
+ }
2195
+ interface ValidateSlugRequest {
2196
+ /**
2197
+ * IO of the service to check custom slug validity for.
2198
+ * @format GUID
2199
+ */
2200
+ serviceId: string;
2201
+ /**
2202
+ * Custom slug to validate.
2203
+ * @maxLength 500
2204
+ */
2205
+ slug?: string;
2206
+ }
2207
+ interface ValidateSlugResponse {
2208
+ /** Whether the slug is valid. */
2209
+ valid?: boolean;
2210
+ /**
2211
+ * Valid slug. Available only if `{"valid": true}`.
2212
+ * @maxLength 500
2213
+ */
2214
+ slug?: string | null;
2215
+ /**
2216
+ * Reasons why the slug is invalid. Available only if `{"valid": false}`.
2217
+ * @maxSize 3
2218
+ */
2219
+ errors?: InvalidSlugError[];
2220
+ }
2221
+ declare enum InvalidSlugError {
2222
+ /** Unknown slug error. */
2223
+ UNKNOWN_SLUG_ERROR = "UNKNOWN_SLUG_ERROR",
2224
+ /** Slug contains illegal characters. */
2225
+ SLUG_CONTAINS_ILLEGAL_CHARACTERS = "SLUG_CONTAINS_ILLEGAL_CHARACTERS",
2226
+ /** Slug is already associated with another service. */
2227
+ SLUG_ALREADY_EXISTS = "SLUG_ALREADY_EXISTS"
2228
+ }
2229
+ interface CloneServiceRequest {
2230
+ /**
2231
+ * ID of the service to clone.
2232
+ * @format GUID
2233
+ */
2234
+ sourceServiceId: string;
2235
+ }
2236
+ interface CloneServiceResponse {
2237
+ /** Cloned service. */
2238
+ service?: Service;
2239
+ /**
2240
+ * Information about connected entities that couldn't be cloned. For example,
2241
+ * future recurring events, the booking form, service variants, and connected
2242
+ * pricing plans.
2243
+ */
2244
+ errors?: CloneErrors[];
2245
+ }
2246
+ declare enum CloneErrors {
2247
+ /**
2248
+ * Failed to clone the original service's *options and variants*
2249
+ * ([SDK](https://dev.wix.com/docs/sdk/backend-modules/bookings/service-options-and-variants/introduction) | [REST](https://dev.wix.com/docs/rest/business-solutions/bookings/services/service-options-and-variants/introduction)).
2250
+ */
2251
+ OPTIONS_AND_VARIANTS = "OPTIONS_AND_VARIANTS",
2252
+ /** Failed to clone the original service's *booking form*. */
2253
+ FORM = "FORM"
2254
+ }
2255
+
2256
+ type __PublicMethodMetaInfo<K = string, M = unknown, T = unknown, S = unknown, Q = unknown, R = unknown> = {
2257
+ getUrl: (context: any) => string;
2258
+ httpMethod: K;
2259
+ path: string;
2260
+ pathParams: M;
2261
+ __requestType: T;
2262
+ __originalRequestType: S;
2263
+ __responseType: Q;
2264
+ __originalResponseType: R;
2265
+ };
2266
+ declare function createService(): __PublicMethodMetaInfo<'POST', {}, CreateServiceRequest$1, CreateServiceRequest, CreateServiceResponse$1, CreateServiceResponse>;
2267
+ declare function getService(): __PublicMethodMetaInfo<'GET', {
2268
+ serviceId: string;
2269
+ }, GetServiceRequest$1, GetServiceRequest, GetServiceResponse$1, GetServiceResponse>;
2270
+ declare function updateService(): __PublicMethodMetaInfo<'PATCH', {
2271
+ serviceId: string;
2272
+ }, UpdateServiceRequest$1, UpdateServiceRequest, UpdateServiceResponse$1, UpdateServiceResponse>;
2273
+ declare function bulkUpdateServices(): __PublicMethodMetaInfo<'POST', {}, BulkUpdateServicesRequest$1, BulkUpdateServicesRequest, BulkUpdateServicesResponse$1, BulkUpdateServicesResponse>;
2274
+ declare function bulkUpdateServicesByFilter(): __PublicMethodMetaInfo<'POST', {}, BulkUpdateServicesByFilterRequest$1, BulkUpdateServicesByFilterRequest, BulkUpdateServicesByFilterResponse$1, BulkUpdateServicesByFilterResponse>;
2275
+ declare function deleteService(): __PublicMethodMetaInfo<'DELETE', {
2276
+ serviceId: string;
2277
+ }, DeleteServiceRequest$1, DeleteServiceRequest, DeleteServiceResponse$1, DeleteServiceResponse>;
2278
+ declare function bulkDeleteServices(): __PublicMethodMetaInfo<'POST', {}, BulkDeleteServicesRequest$1, BulkDeleteServicesRequest, BulkDeleteServicesResponse$1, BulkDeleteServicesResponse>;
2279
+ declare function bulkDeleteServicesByFilter(): __PublicMethodMetaInfo<'POST', {}, BulkDeleteServicesByFilterRequest$1, BulkDeleteServicesByFilterRequest, BulkDeleteServicesByFilterResponse$1, BulkDeleteServicesByFilterResponse>;
2280
+ declare function queryServices(): __PublicMethodMetaInfo<'POST', {}, QueryServicesRequest$1, QueryServicesRequest, QueryServicesResponse$1, QueryServicesResponse>;
2281
+ declare function searchServices(): __PublicMethodMetaInfo<'POST', {}, SearchServicesRequest$1, SearchServicesRequest, SearchServicesResponse$1, SearchServicesResponse>;
2282
+ declare function queryPolicies(): __PublicMethodMetaInfo<'POST', {}, QueryPoliciesRequest$1, QueryPoliciesRequest, QueryPoliciesResponse$1, QueryPoliciesResponse>;
2283
+ declare function queryBookingForms(): __PublicMethodMetaInfo<'POST', {}, QueryBookingFormsRequest$1, QueryBookingFormsRequest, QueryBookingFormsResponse$1, QueryBookingFormsResponse>;
2284
+ declare function countServices(): __PublicMethodMetaInfo<'POST', {}, CountServicesRequest$1, CountServicesRequest, CountServicesResponse$1, CountServicesResponse>;
2285
+ declare function queryLocations(): __PublicMethodMetaInfo<'POST', {}, QueryLocationsRequest$1, QueryLocationsRequest, QueryLocationsResponse$1, QueryLocationsResponse>;
2286
+ declare function queryCategories(): __PublicMethodMetaInfo<'POST', {}, QueryCategoriesRequest$1, QueryCategoriesRequest, QueryCategoriesResponse$1, QueryCategoriesResponse>;
2287
+ declare function setServiceLocations(): __PublicMethodMetaInfo<'POST', {
2288
+ serviceId: string;
2289
+ }, SetServiceLocationsRequest$1, SetServiceLocationsRequest, SetServiceLocationsResponse$1, SetServiceLocationsResponse>;
2290
+ declare function enablePricingPlansForService(): __PublicMethodMetaInfo<'POST', {
2291
+ serviceId: string;
2292
+ }, EnablePricingPlansForServiceRequest$1, EnablePricingPlansForServiceRequest, EnablePricingPlansForServiceResponse$1, EnablePricingPlansForServiceResponse>;
2293
+ declare function disablePricingPlansForService(): __PublicMethodMetaInfo<'POST', {
2294
+ serviceId: string;
2295
+ }, DisablePricingPlansForServiceRequest$1, DisablePricingPlansForServiceRequest, DisablePricingPlansForServiceResponse$1, DisablePricingPlansForServiceResponse>;
2296
+ declare function setCustomSlug(): __PublicMethodMetaInfo<'POST', {
2297
+ serviceId: string;
2298
+ }, SetCustomSlugRequest$1, SetCustomSlugRequest, SetCustomSlugResponse$1, SetCustomSlugResponse>;
2299
+ declare function validateSlug(): __PublicMethodMetaInfo<'POST', {}, ValidateSlugRequest$1, ValidateSlugRequest, ValidateSlugResponse$1, ValidateSlugResponse>;
2300
+ declare function cloneService(): __PublicMethodMetaInfo<'POST', {}, CloneServiceRequest$1, CloneServiceRequest, CloneServiceResponse$1, CloneServiceResponse>;
2301
+
2302
+ export { type __PublicMethodMetaInfo, bulkDeleteServices, bulkDeleteServicesByFilter, bulkUpdateServices, bulkUpdateServicesByFilter, cloneService, countServices, createService, deleteService, disablePricingPlansForService, enablePricingPlansForService, getService, queryBookingForms, queryCategories, queryLocations, queryPolicies, queryServices, searchServices, setCustomSlug, setServiceLocations, updateService, validateSlug };