@wix/auto_sdk_restaurants_menus 1.0.93 → 1.0.94

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.
@@ -71,73 +71,117 @@ interface ExtendedFields {
71
71
  namespaces?: Record<string, Record<string, any>>;
72
72
  }
73
73
  /**
74
- * 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.
75
- * The search engines use this information for ranking purposes, or to display snippets in the search results.
76
- * 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.
74
+ * The SEO data for a single page or dynamic item, in the shape stored today.
75
+ *
76
+ * FROZEN. Existing server code maps onto this message field by field, so its
77
+ * field set must never change (see the file header). New writers use
78
+ * `SeoSchemaV2`.
79
+ *
80
+ * These tags are rendered into the <head> of the HTML document and are not
81
+ * visible on the page itself. They override every other source of tags
82
+ * (site defaults, vertical presets, patterns) for this page.
77
83
  */
78
84
  interface SeoSchema {
79
- /** SEO tag information. */
85
+ /**
86
+ * The tags rendered into <head>, in no particular order. Render order is
87
+ * decided by the renderer, not by position in this list.
88
+ *
89
+ * No maxSize: this list is already populated by data written years ago, and
90
+ * a bound added now could reject a page that is already stored.
91
+ */
80
92
  tags?: Tag[];
81
- /** SEO general settings. */
93
+ /** Page-level SEO settings that are not themselves tags. */
82
94
  settings?: Settings;
83
95
  }
96
+ /** A keyword term the user is targeting. */
84
97
  interface Keyword {
85
- /** Keyword value. */
98
+ /**
99
+ * The term itself, e.g. "trail running shoes".
100
+ *
101
+ * No maxLength, for the same reason as the legacy tag fields: keywords are
102
+ * already stored, and a bound added now could reject a record written
103
+ * before the bound existed. The flynt `missing-string-validations` warning
104
+ * on this field is accepted deliberately.
105
+ */
86
106
  term?: string;
87
- /** Whether the keyword is the main focus keyword. */
107
+ /** Whether this is the page's primary focus keyword. At most one per page. */
88
108
  isMain?: boolean;
89
109
  /**
90
- * The source that added the keyword terms to the SEO settings.
110
+ * Which surface added the term, e.g. a panel or a suggestion flow. Used for
111
+ * attribution in BI. Opaque to the renderer.
91
112
  * @maxLength 1000
92
113
  */
93
114
  origin?: string | null;
94
115
  }
116
+ /**
117
+ * One tag in the page's <head>.
118
+ *
119
+ * Not deprecated, and with no removal date, deliberately: stored data is
120
+ * never migrated, so this shape stays valid input forever. `seo-renderer`
121
+ * normalizes both shapes on READ.
122
+ */
95
123
  interface Tag {
96
124
  /**
97
- * SEO tag type.
98
- *
125
+ * Legacy. Was a free-form string: "title" | "meta" | "script" | "link".
126
+ * The typed replacement is the `kind` oneof on `SeoSchemaV2.Tag`, which makes
127
+ * the invalid combinations unrepresentable rather than merely discouraged.
99
128
  *
100
- * Supported values: `title`, `meta`, `script`, `link`.
101
- *
102
- * Which of these an API actually accepts depends on where the tag is being set: this
103
- * list is not a blanket guarantee across every API that reuses this message. Site SEO
104
- * Tags in particular accepts only `meta` (see `SiteSeoTags.tags`) and rejects
105
- * `title`/`script`/`link` with a validation error even though they appear here —
106
- * check the field description of the specific `tags`-typed field you're writing to
107
- * for the types it actually supports and the error it returns.
129
+ * Which of these an API actually accepts depends on where the tag is being
130
+ * set: this list is not a blanket guarantee across every API that reuses
131
+ * this message. Site SEO Tags in particular accepts only `meta` (see
132
+ * `SiteSeoTags.tags`) and rejects `title`/`script`/`link` with a validation
133
+ * error even though they appear here — check the field description of the
134
+ * specific `tags`-typed field you are writing to.
108
135
  *
109
136
  * Limitation: `title` and `script` (e.g. a `script` tag with `props.type`
110
- * `"application/ld+json"` carrying structured data) are supported only when
111
- * `custom` is unset or `false`. Setting `custom: true` on a `title` or `script`
112
- * tag is rejected with `TAG_TYPE_NOT_ALLOWED`, because `custom: true` routes the
113
- * write through the site's Advanced/Custom Tags list. To write structured data,
114
- * omit `custom` (or set it to `false`).
137
+ * "application/ld+json" carrying structured data) are supported only when
138
+ * `custom` is unset or `false`. Setting `custom: true` on a `title` or
139
+ * `script` tag is rejected with `TAG_TYPE_NOT_ALLOWED`, because
140
+ * `custom: true` routes the write through the site's Advanced/Custom Tags
141
+ * list. To write structured data, omit `custom` (or set it to `false`).
142
+ *
143
+ * No length limit: this field holds data written years ago by writers we
144
+ * are not migrating. A constraint here could reject a record that is
145
+ * already stored, which is exactly the promise this design makes.
115
146
  */
116
147
  type?: string;
117
148
  /**
118
- * A `{"key": "value"}` pair object where each SEO tag property (`"name"`, `"content"`, `"rel"`, `"href"`) contains a value.
119
- * For example: `{"name": "description", "content": "the description itself"}`.
149
+ * Legacy. Was an untyped bag of HTML attributes.
150
+ * Typed replacement: `SeoSchemaV2.TitleTag` / `MetaTag` / `LinkTag`.
120
151
  */
121
152
  props?: Record<string, any> | null;
122
- /** SEO tag metadata. For example, `{"height": 300, "width": 240}`. */
153
+ /**
154
+ * Legacy. Was an untyped bag of 16 mixed-purpose keys. In `SeoSchemaV2`
155
+ * its contents are split by purpose: per-page structured-data state moves to
156
+ * StructuredDataTag, authorship to `written_by`, and render-time preset
157
+ * logic (variants, enabledByExperiment, removeSchemaIf*) moved out of the
158
+ * stored document entirely — it belongs to the preset definition, not to the
159
+ * page. See the design log for the full key-by-key mapping.
160
+ */
123
161
  meta?: Record<string, any> | null;
124
- /** SEO tag inner content. For example, `<title> inner content </title>`. */
162
+ /**
163
+ * Legacy. Was the tag's inner content, doubling as the JSON-LD payload
164
+ * for script tags. Typed replacement: `SeoSchemaV2.TitleTag.text` and
165
+ * `StructuredDataTag.json_ld`.
166
+ * No length limit, for the same reason as `type` above.
167
+ */
125
168
  children?: string;
126
169
  /**
127
170
  * Whether the tag is a [custom tag](https://support.wix.com/en/article/adding-additional-meta-tags-to-your-sites-pages) —
128
171
  * i.e. an entry from the site's Advanced/Custom Tags list.
129
172
  *
130
- * Setting this to `true` on a write restricts which `type` values are accepted
131
- * — the same restriction the Advanced/Custom Tags UI enforces. `title` and
132
- * `script` tags (including JSON-LD structured data) must be sent with `custom`
133
- * omitted or `false`; sending them with `custom: true` is rejected with
134
- * `TAG_TYPE_NOT_ALLOWED`.
173
+ * Setting this to `true` on a write restricts which `type` values are
174
+ * accepted — the same restriction the Advanced/Custom Tags UI enforces.
175
+ * `title` and `script` tags (including JSON-LD structured data) must be sent
176
+ * with `custom` omitted or `false`; sending them with `custom: true` is
177
+ * rejected with `TAG_TYPE_NOT_ALLOWED`.
135
178
  *
136
- * Note this is a separate restriction from Site SEO Tags' own type restriction on
137
- * `SiteSeoTags.tags`: even with `custom` unset, Site SEO Tags rejects `script` (e.g.
138
- * for site-wide structured data) unconditionally. There is currently no way to set
139
- * site-wide, every-page structured data through any of these APIs — write a per-page
140
- * `script` tag through the Item SEO Tags API instead.
179
+ * Note this is a separate restriction from Site SEO Tags' own type
180
+ * restriction on `SiteSeoTags.tags`: even with `custom` unset, Site SEO Tags
181
+ * rejects `script` (e.g. for site-wide structured data) unconditionally.
182
+ * There is currently no way to set site-wide, every-page structured data
183
+ * through any of these APIs — write a per-page `script` tag through the Item
184
+ * SEO Tags API instead.
141
185
  *
142
186
  * This flag is scoped to that feature only. It is NOT an indicator of whether a standard tag
143
187
  * (`title`, `description`, Open Graph, etc.) reflects a manually configured value versus a computed
@@ -150,22 +194,39 @@ interface Tag {
150
194
  * or Wix Studio pages, so even genuine Advanced/Custom Tags saved on those pages are missing from the
151
195
  * response entirely — there, `false` means this API could not tell, not that no custom tag exists.
152
196
  * Pass `seoData` explicitly to resolve against a known set of tags.
197
+ *
198
+ * `SeoSchemaV2.Tag` expresses this as `written_by = USER_CUSTOM`.
153
199
  */
154
200
  custom?: boolean;
155
- /** Whether the tag is disabled. If the tag is disabled, people can't find your page when searching for this phrase in search engines. */
201
+ /**
202
+ * Whether the tag is excluded from the rendered <head>.
203
+ *
204
+ * A disabled tag is still stored, so the user can re-enable it and so a
205
+ * pattern-provided tag stays suppressed on this page. Default false.
206
+ */
156
207
  disabled?: boolean;
157
208
  }
209
+ /** Page-level SEO settings that are not tags. */
158
210
  interface Settings {
159
211
  /**
160
- * Whether the [automatical redirect visits](https://support.wix.com/en/article/customizing-your-pages-seo-settings-in-the-seo-panel) from the old URL to the new one is enabled.
212
+ * Whether to suppress the automatic redirect from this page's previous URL to
213
+ * its current one after a slug change.
161
214
  *
162
- *
163
- * Default: `false` (automatical redirect is enabled).
215
+ * Default false, meaning the redirect IS created. The field is named for the
216
+ * exception rather than the rule, which reads backwards; kept as-is because
217
+ * renaming a stored boolean is not worth the migration.
164
218
  */
165
219
  preventAutoRedirect?: boolean;
166
220
  /**
167
- * User-selected keyword terms for a specific page.
168
- * @maxSize 5
221
+ * Keyword terms the user is targeting for this page. Used by the SEO
222
+ * assistant and checklist; never rendered into <head>.
223
+ *
224
+ * 20 is a sanity bound, not the product limit. v1 declared 5 — the number
225
+ * the panel happens to allow today — which is exactly the mistake we are
226
+ * fixing for structured data. A product decision to allow 8 should not need
227
+ * a proto release, so the panel owns that number and the proto only stops
228
+ * something absurd.
229
+ * @maxSize 20
169
230
  */
170
231
  keywords?: Keyword[];
171
232
  }
@@ -205,288 +266,205 @@ interface ExternalReferenceInfo {
205
266
  /** Whether the connection to the external system is currently active. */
206
267
  connected?: boolean | null;
207
268
  }
208
- interface InvalidateCache extends InvalidateCacheGetByOneOf {
269
+ interface DuplicateMenuRequest {
209
270
  /**
210
- * Invalidate by msId. NOT recommended, as this will invalidate the entire site cache!
271
+ * Menu id to be duplicated.
211
272
  * @format GUID
212
273
  */
213
- metaSiteId?: string;
274
+ _id: string;
214
275
  /**
215
- * Invalidate by Site ID. NOT recommended, as this will invalidate the entire site cache!
276
+ * Business location ids to duplicate the menu to.
216
277
  * @format GUID
278
+ * @maxSize 100
217
279
  */
218
- siteId?: string;
219
- /** Invalidate by App */
220
- app?: App;
221
- /** Invalidate by page id */
222
- page?: Page;
223
- /** Invalidate by URI path */
224
- uri?: URI;
225
- /** Invalidate by file (for media files such as PDFs) */
226
- file?: File;
227
- /** Invalidate by custom tag. Tags used in BO invalidation are disabled for this endpoint (more info: https://wix-bo.com/dev/clear-ssr-cache) */
228
- customTag?: CustomTag;
229
- /** Invalidate by multiple page ids */
230
- pages?: Pages;
231
- /** Invalidate by multiple URI paths */
232
- uris?: URIs;
280
+ businessLocationIds?: string[] | null;
281
+ /** Indicates whether sub-entities (such as items) should be duplicated as well. */
282
+ duplicateSubEntities?: boolean | null;
233
283
  /**
234
- * tell us why you're invalidating the cache. You don't need to add your app name
235
- * @maxLength 256
284
+ * The new name of the duplicated menu.
285
+ * @maxLength 500
236
286
  */
237
- reason?: string | null;
238
- /** Is local DS */
239
- localDc?: boolean;
240
- hardPurge?: boolean;
287
+ menuName?: string | null;
288
+ }
289
+ interface DuplicateMenuResponse {
290
+ /** @format GUID */
291
+ menuIds?: string[];
292
+ }
293
+ interface DomainEvent extends DomainEventBodyOneOf {
294
+ createdEvent?: EntityCreatedEvent;
295
+ updatedEvent?: EntityUpdatedEvent;
296
+ deletedEvent?: EntityDeletedEvent;
297
+ actionEvent?: ActionEvent;
298
+ /** Event ID. With this ID you can easily spot duplicated events and ignore them. */
299
+ _id?: string;
241
300
  /**
242
- * Optional caller-provided ID for tracking this invalidation through the system.
243
- * When set, the corresponding CDN purge completion event will include this ID,
244
- * allowing you to confirm when the invalidation has fully propagated.
245
- * Example: generate a UUID, pass it here, and later match it in the CDN purge completion event.
246
- * @maxLength 256
301
+ * Fully Qualified Domain Name of an entity. This is a unique identifier assigned to the API main business entities.
302
+ * For example, `wix.stores.catalog.product`, `wix.bookings.session`, `wix.payments.transaction`.
247
303
  */
248
- correlationId?: string | null;
249
- }
250
- /** @oneof */
251
- interface InvalidateCacheGetByOneOf {
304
+ entityFqdn?: string;
252
305
  /**
253
- * Invalidate by msId. NOT recommended, as this will invalidate the entire site cache!
254
- * @format GUID
306
+ * Event action name, placed at the top level to make it easier for users to dispatch messages.
307
+ * For example: `created`/`updated`/`deleted`/`started`/`completed`/`email_opened`.
255
308
  */
256
- metaSiteId?: string;
309
+ slug?: string;
310
+ /** ID of the entity associated with the event. */
311
+ entityId?: string;
312
+ /** Event timestamp in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) format and UTC time. For example, `2020-04-26T13:57:50.699Z`. */
313
+ eventTime?: Date | null;
257
314
  /**
258
- * Invalidate by Site ID. NOT recommended, as this will invalidate the entire site cache!
259
- * @format GUID
315
+ * Whether the event was triggered as a result of a privacy regulation application
316
+ * (for example, GDPR).
260
317
  */
261
- siteId?: string;
262
- /** Invalidate by App */
263
- app?: App;
264
- /** Invalidate by page id */
265
- page?: Page;
266
- /** Invalidate by URI path */
267
- uri?: URI;
268
- /** Invalidate by file (for media files such as PDFs) */
269
- file?: File;
270
- /** Invalidate by custom tag. Tags used in BO invalidation are disabled for this endpoint (more info: https://wix-bo.com/dev/clear-ssr-cache) */
271
- customTag?: CustomTag;
272
- /** Invalidate by multiple page ids */
273
- pages?: Pages;
274
- /** Invalidate by multiple URI paths */
275
- uris?: URIs;
276
- }
277
- interface App {
318
+ triggeredByAnonymizeRequest?: boolean | null;
319
+ /** If present, indicates the action that triggered the event. */
320
+ originatedFrom?: string | null;
278
321
  /**
279
- * The AppDefId
280
- * @minLength 1
322
+ * A sequence number that indicates the order of updates to an entity. For example, if an entity was updated at `16:00` and then again at `16:01`, the second update will always have a higher sequence number.
323
+ * You can use this number to make sure you're handling updates in the right order. Just save the latest sequence number on your end and compare it to the one in each new message. If the new message has an older (lower) number, you can safely ignore it.
281
324
  */
282
- appDefId?: string;
325
+ entityEventSequence?: string | null;
326
+ }
327
+ /** @oneof */
328
+ interface DomainEventBodyOneOf {
329
+ createdEvent?: EntityCreatedEvent;
330
+ updatedEvent?: EntityUpdatedEvent;
331
+ deletedEvent?: EntityDeletedEvent;
332
+ actionEvent?: ActionEvent;
333
+ }
334
+ interface EntityCreatedEvent {
335
+ entity?: string;
336
+ }
337
+ interface RestoreInfo {
338
+ deletedDate?: Date | null;
339
+ }
340
+ interface EntityUpdatedEvent {
283
341
  /**
284
- * The instance Id
285
- * @format GUID
342
+ * Since platformized APIs only expose PATCH and not PUT we can't assume that the fields sent from the client are the actual diff.
343
+ * This means that to generate a list of changed fields (as opposed to sent fields) one needs to traverse both objects.
344
+ * We don't want to impose this on all developers and so we leave this traversal to the notification recipients which need it.
286
345
  */
287
- instanceId?: string;
346
+ currentEntity?: string;
288
347
  }
289
- interface Page {
348
+ interface EntityDeletedEvent {
349
+ /** Entity that was deleted. */
350
+ deletedEntity?: string | null;
351
+ }
352
+ interface ActionEvent {
353
+ body?: string;
354
+ }
355
+ interface MessageEnvelope {
290
356
  /**
291
- * the msid the page is on
357
+ * App instance ID.
292
358
  * @format GUID
293
359
  */
294
- metaSiteId?: string;
360
+ instanceId?: string | null;
295
361
  /**
296
- * Invalidate by Page ID
297
- * @minLength 1
362
+ * Event type.
363
+ * @maxLength 150
298
364
  */
299
- pageId?: string;
365
+ eventType?: string;
366
+ /** The identification type and identity data. */
367
+ identity?: IdentificationData;
368
+ /** Stringify payload. */
369
+ data?: string;
370
+ /** Details related to the account */
371
+ accountInfo?: AccountInfo;
300
372
  }
301
- interface URI {
373
+ interface IdentificationData extends IdentificationDataIdOneOf {
302
374
  /**
303
- * the msid the URI is on
375
+ * ID of a site visitor that has not logged in to the site.
304
376
  * @format GUID
305
377
  */
306
- metaSiteId?: string;
378
+ anonymousVisitorId?: string;
307
379
  /**
308
- * URI path to invalidate (e.g. page/my/path) - without leading/trailing slashes
309
- * @minLength 1
380
+ * ID of a site visitor that has logged in to the site.
381
+ * @format GUID
310
382
  */
311
- uriPath?: string;
312
- }
313
- interface File {
383
+ memberId?: string;
314
384
  /**
315
- * the msid the file is related to
385
+ * ID of a Wix user (site owner, contributor, etc.).
316
386
  * @format GUID
317
387
  */
318
- metaSiteId?: string;
388
+ wixUserId?: string;
319
389
  /**
320
- * Invalidate by filename (for media files such as PDFs)
321
- * @minLength 1
322
- * @maxLength 256
390
+ * ID of an app.
391
+ * @format GUID
323
392
  */
324
- fileName?: string;
393
+ appId?: string;
394
+ /** @readonly */
395
+ identityType?: WebhookIdentityTypeWithLiterals;
325
396
  }
326
- interface CustomTag {
397
+ /** @oneof */
398
+ interface IdentificationDataIdOneOf {
327
399
  /**
328
- * the msid the tag is related to
400
+ * ID of a site visitor that has not logged in to the site.
329
401
  * @format GUID
330
402
  */
331
- metaSiteId?: string;
403
+ anonymousVisitorId?: string;
332
404
  /**
333
- * Tag to invalidate by
334
- * @minLength 1
335
- * @maxLength 256
405
+ * ID of a site visitor that has logged in to the site.
406
+ * @format GUID
336
407
  */
337
- tag?: string;
338
- }
339
- interface Pages {
408
+ memberId?: string;
340
409
  /**
341
- * the msid the pages are on
410
+ * ID of a Wix user (site owner, contributor, etc.).
342
411
  * @format GUID
343
412
  */
344
- metaSiteId?: string;
413
+ wixUserId?: string;
345
414
  /**
346
- * Invalidate by multiple Page IDs in a single message
347
- * @maxSize 100
348
- * @minLength 1
415
+ * ID of an app.
416
+ * @format GUID
349
417
  */
350
- pageIds?: string[];
418
+ appId?: string;
351
419
  }
352
- interface URIs {
420
+ declare enum WebhookIdentityType {
421
+ UNKNOWN = "UNKNOWN",
422
+ ANONYMOUS_VISITOR = "ANONYMOUS_VISITOR",
423
+ MEMBER = "MEMBER",
424
+ WIX_USER = "WIX_USER",
425
+ APP = "APP"
426
+ }
427
+ /** @enumType */
428
+ type WebhookIdentityTypeWithLiterals = WebhookIdentityType | 'UNKNOWN' | 'ANONYMOUS_VISITOR' | 'MEMBER' | 'WIX_USER' | 'APP';
429
+ interface AccountInfo {
353
430
  /**
354
- * the msid the URIs are on
431
+ * ID of the Wix account associated with the event.
355
432
  * @format GUID
356
433
  */
357
- metaSiteId?: string;
434
+ accountId?: string | null;
358
435
  /**
359
- * URI paths to invalidate (e.g. page/my/path) - without leading/trailing slashes
360
- * @maxSize 100
361
- * @minLength 1
436
+ * ID of the parent Wix account. Only included when accountId belongs to a child account.
437
+ * @format GUID
362
438
  */
363
- uriPaths?: string[];
364
- }
365
- interface DeleteOrphanSections {
366
- /** Menu id */
367
- menuId?: string;
439
+ parentAccountId?: string | null;
440
+ /**
441
+ * ID of the Wix site associated with the event. Only included when the event is tied to a specific site.
442
+ * @format GUID
443
+ */
444
+ siteId?: string | null;
368
445
  }
369
- interface MenusDataCloningCompleted {
370
- }
371
- interface CreateMenuRequest {
372
- /** Menu details. */
373
- menu: Menu;
374
- }
375
- interface CreateMenuResponse {
376
- /** Menu. */
377
- menu?: Menu;
378
- }
379
- interface BulkCreateMenusRequest {
380
- /**
381
- * Menu details.
382
- * @maxSize 100
383
- */
384
- menus: Menu[];
385
- /** Whether to receive the created menus in the response. */
386
- returnEntity?: boolean;
387
- }
388
- interface BulkCreateMenusResponse {
389
- /** Information about the created menus. */
390
- results?: BulkCreateMenuResult[];
391
- /** Metadata for the API call. */
392
- bulkActionMetadata?: BulkActionMetadata;
393
- }
394
- interface BulkCreateMenuResult {
395
- /** Whether to receive the created menus in the response. */
396
- menuMetadata?: ItemMetadata;
397
- /** Created menu. */
398
- menu?: Menu;
399
- }
400
- interface ItemMetadata {
401
- /** Item ID. Should always be available, unless it's impossible (for example, when failing to create an item). */
402
- _id?: string | null;
403
- /** Index of the item within the request array. Allows for correlation between request and response items. */
404
- originalIndex?: number;
405
- /** Whether the requested action was successful for this item. When `false`, the `error` field is populated. */
406
- success?: boolean;
407
- /** Details about the error in case of failure. */
408
- error?: ApplicationError;
409
- }
410
- interface ApplicationError {
411
- /** Error code. */
412
- code?: string;
413
- /** Description of the error. */
414
- description?: string;
415
- /** Data related to the error. */
416
- data?: Record<string, any> | null;
417
- }
418
- interface BulkActionMetadata {
419
- /** Number of items that were successfully processed. */
420
- totalSuccesses?: number;
421
- /** Number of items that couldn't be processed. */
422
- totalFailures?: number;
423
- /** Number of failures without details because detailed failure threshold was exceeded. */
424
- undetailedFailures?: number;
425
- }
426
- interface GetMenuRequest {
446
+ interface GetMenuSiteUrlRequest {
427
447
  /**
428
448
  * Menu ID.
429
449
  * @format GUID
450
+ * @readonly
430
451
  */
431
- menuId: string;
432
- }
433
- interface GetMenuResponse {
434
- /** Menu. */
435
- menu?: Menu;
436
- }
437
- interface ListMenusRequest {
438
- /**
439
- * Menu IDs.
440
- * @format GUID
441
- * @maxSize 500
442
- */
443
- menuIds?: string[];
444
- /** The metadata of the paginated results. */
445
- paging?: CursorPaging;
446
- /** Whether to return only menus that are visible to site visitors. */
447
- onlyVisible?: boolean | null;
448
- }
449
- interface CursorPaging {
450
- /**
451
- * Number of items to load.
452
- * @max 500
453
- */
454
- limit?: number | null;
455
- /**
456
- * Pointer to the next or previous page in the list of results.
457
- *
458
- * You can get the relevant cursor token
459
- * from the `pagingMetadata` object in the previous call's response.
460
- * Not relevant for the first request.
461
- */
462
- cursor?: string | null;
452
+ _id: string | null;
463
453
  }
464
- interface ListMenusResponse {
465
- /** Retrieved menus. */
466
- menus?: Menu[];
467
- /** The metadata of the paginated results. */
468
- pagingMetadata?: CursorPagingMetadata;
454
+ interface GetMenuSiteUrlResponse {
455
+ /** Retrieved menuInfo with path url. */
456
+ menuSiteUrl?: MenuSiteUrl;
469
457
  }
470
- interface CursorPagingMetadata {
471
- /** Number of items returned in the response. */
472
- count?: number | null;
473
- /** Offset that was requested. */
474
- cursors?: Cursors;
458
+ interface MenuSiteUrl {
475
459
  /**
476
- * Indicates if there are more results after the current page.
477
- * If `true`, another page of results can be retrieved.
478
- * If `false`, this is the last page.
460
+ * Path URL.
461
+ * @minLength 1
462
+ * @maxLength 1000
479
463
  */
480
- hasNext?: boolean | null;
481
- }
482
- interface Cursors {
483
- /** Cursor pointing to next page in the list of results. */
484
- next?: string | null;
485
- /** Cursor pointing to previous page in the list of results. */
486
- prev?: string | null;
464
+ path?: string;
487
465
  }
488
- interface QueryMenusRequest {
489
- /** Query options. */
466
+ interface QueryMenusSiteUrlRequest {
467
+ /** Query options */
490
468
  query?: CursorQuery;
491
469
  }
492
470
  interface CursorQuery extends CursorQueryPagingMethodOneOf {
@@ -538,320 +516,403 @@ interface AddressLocation {
538
516
  /** Address longitude. */
539
517
  longitude?: number | null;
540
518
  }
541
- interface QueryMenusResponse {
542
- /** Retrieved menus. */
543
- menus?: Menu[];
544
- /** The metadata of the paginated results. */
545
- pagingMetadata?: CursorPagingMetadata;
546
- }
547
- interface UpdateMenuRequest {
548
- /** Menu to update. */
549
- menu: Menu;
550
- }
551
- interface UpdateMenuResponse {
552
- /** Updated menu. */
553
- menu?: Menu;
554
- }
555
- interface BulkUpdateMenuRequest {
556
- /**
557
- * Menus to update.
558
- * @minSize 1
559
- * @maxSize 100
560
- */
561
- menus: MaskedMenu[];
562
- /** Whether to receive the entity in the response. */
563
- returnEntity?: boolean;
564
- }
565
- interface MaskedMenu {
566
- /** Menu to updated. */
567
- menu?: Menu;
568
- /** Explicit list of fields to update. */
569
- mask?: string[];
570
- }
571
- interface BulkUpdateMenuResponse {
519
+ interface CursorPaging {
572
520
  /**
573
- * Results of bulk menu update.
574
- * @minSize 1
575
- * @maxSize 100
521
+ * Number of items to load.
522
+ * @max 500
576
523
  */
577
- results?: BulkMenuResult[];
578
- /** Metadata for the API call. */
579
- bulkActionMetadata?: BulkActionMetadata;
580
- }
581
- interface BulkMenuResult {
582
- /** Metadata for menu update. */
583
- menuMetadata?: ItemMetadata;
584
- /** Updated menu. Only returned if `returnEntity` is set to `true`. */
585
- menu?: Menu;
586
- }
587
- interface UpdateExtendedFieldsRequest {
588
- /** ID of the entity to update. */
589
- _id: string;
590
- /** Identifier for the app whose extended fields are being updated. */
591
- namespace: string;
592
- /** Data to update. Structured according to the [schema](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields#json-schema-for-extended-fields) defined when the extended fields were configured. */
593
- namespaceData: Record<string, any> | null;
594
- }
595
- interface UpdateExtendedFieldsResponse {
596
- /** Namespace of the app. */
597
- namespace?: string;
598
- /** Updated extended fields data. */
599
- namespaceData?: Record<string, any> | null;
600
- }
601
- interface DeleteMenuRequest {
524
+ limit?: number | null;
602
525
  /**
603
- * Menu ID.
604
- * @format GUID
526
+ * Pointer to the next or previous page in the list of results.
527
+ *
528
+ * You can get the relevant cursor token
529
+ * from the `pagingMetadata` object in the previous call's response.
530
+ * Not relevant for the first request.
605
531
  */
606
- menuId: string;
532
+ cursor?: string | null;
607
533
  }
608
- interface DeleteMenuResponse {
534
+ interface QueryMenusSiteUrlResponse {
535
+ /** Retrieved menuInfos with path urls. */
536
+ menuSiteUrls?: MenuSiteUrl[];
537
+ /** The metadata of the paginated results. */
538
+ pagingMetadata?: CursorPagingMetadata;
609
539
  }
610
- interface RunMenusMultiLocationMigrationRequest {
540
+ interface CursorPagingMetadata {
541
+ /** Number of items returned in the response. */
542
+ count?: number | null;
543
+ /** Offset that was requested. */
544
+ cursors?: Cursors;
611
545
  /**
612
- * business location id
613
- * @format GUID
546
+ * Indicates if there are more results after the current page.
547
+ * If `true`, another page of results can be retrieved.
548
+ * If `false`, this is the last page.
614
549
  */
615
- businessLocationId?: string;
616
- }
617
- interface RunMenusMultiLocationMigrationResponse {
618
- /** Whether menus multi-location migration finished successfully */
619
- success?: boolean;
620
- }
621
- interface UpdateBusinessLocationIdRequest {
622
- /** @format GUID */
623
- menuId?: string;
624
- /** @format GUID */
625
- businessLocationId?: string | null;
550
+ hasNext?: boolean | null;
626
551
  }
627
- interface UpdateBusinessLocationIdResponse {
552
+ interface Cursors {
553
+ /** Cursor pointing to next page in the list of results. */
554
+ next?: string | null;
555
+ /** Cursor pointing to previous page in the list of results. */
556
+ prev?: string | null;
628
557
  }
629
- interface CloneMenusRequest {
558
+ interface InvalidateCache extends InvalidateCacheGetByOneOf {
630
559
  /**
631
- * The MetaSiteId to clone from.
560
+ * Invalidate by msId. NOT recommended, as this will invalidate the entire site cache!
632
561
  * @format GUID
633
562
  */
634
563
  metaSiteId?: string;
635
- }
636
- interface CloneMenusResponse {
637
- }
638
- interface DomainEvent extends DomainEventBodyOneOf {
639
- createdEvent?: EntityCreatedEvent;
640
- updatedEvent?: EntityUpdatedEvent;
641
- deletedEvent?: EntityDeletedEvent;
642
- actionEvent?: ActionEvent;
643
- /** Event ID. With this ID you can easily spot duplicated events and ignore them. */
644
- _id?: string;
645
- /**
646
- * Fully Qualified Domain Name of an entity. This is a unique identifier assigned to the API main business entities.
647
- * For example, `wix.stores.catalog.product`, `wix.bookings.session`, `wix.payments.transaction`.
648
- */
649
- entityFqdn?: string;
650
564
  /**
651
- * Event action name, placed at the top level to make it easier for users to dispatch messages.
652
- * For example: `created`/`updated`/`deleted`/`started`/`completed`/`email_opened`.
565
+ * Invalidate by Site ID. NOT recommended, as this will invalidate the entire site cache!
566
+ * @format GUID
653
567
  */
654
- slug?: string;
655
- /** ID of the entity associated with the event. */
656
- entityId?: string;
657
- /** Event timestamp in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) format and UTC time. For example, `2020-04-26T13:57:50.699Z`. */
658
- eventTime?: Date | null;
568
+ siteId?: string;
569
+ /** Invalidate by App */
570
+ app?: App;
571
+ /** Invalidate by page id */
572
+ page?: Page;
573
+ /** Invalidate by URI path */
574
+ uri?: URI;
575
+ /** Invalidate by file (for media files such as PDFs) */
576
+ file?: File;
577
+ /** Invalidate by custom tag. Tags used in BO invalidation are disabled for this endpoint (more info: https://wix-bo.com/dev/clear-ssr-cache) */
578
+ customTag?: CustomTag;
579
+ /** Invalidate by multiple page ids */
580
+ pages?: Pages;
581
+ /** Invalidate by multiple URI paths */
582
+ uris?: URIs;
659
583
  /**
660
- * Whether the event was triggered as a result of a privacy regulation application
661
- * (for example, GDPR).
584
+ * tell us why you're invalidating the cache. You don't need to add your app name
585
+ * @maxLength 256
662
586
  */
663
- triggeredByAnonymizeRequest?: boolean | null;
664
- /** If present, indicates the action that triggered the event. */
665
- originatedFrom?: string | null;
587
+ reason?: string | null;
588
+ /** Is local DS */
589
+ localDc?: boolean;
590
+ hardPurge?: boolean;
666
591
  /**
667
- * A sequence number that indicates the order of updates to an entity. For example, if an entity was updated at `16:00` and then again at `16:01`, the second update will always have a higher sequence number.
668
- * You can use this number to make sure you're handling updates in the right order. Just save the latest sequence number on your end and compare it to the one in each new message. If the new message has an older (lower) number, you can safely ignore it.
592
+ * Optional caller-provided ID for tracking this invalidation through the system.
593
+ * When set, the corresponding CDN purge completion event will include this ID,
594
+ * allowing you to confirm when the invalidation has fully propagated.
595
+ * Example: generate a UUID, pass it here, and later match it in the CDN purge completion event.
596
+ * @maxLength 256
669
597
  */
670
- entityEventSequence?: string | null;
598
+ correlationId?: string | null;
671
599
  }
672
600
  /** @oneof */
673
- interface DomainEventBodyOneOf {
674
- createdEvent?: EntityCreatedEvent;
675
- updatedEvent?: EntityUpdatedEvent;
676
- deletedEvent?: EntityDeletedEvent;
677
- actionEvent?: ActionEvent;
678
- }
679
- interface EntityCreatedEvent {
680
- entity?: string;
681
- }
682
- interface RestoreInfo {
683
- deletedDate?: Date | null;
684
- }
685
- interface EntityUpdatedEvent {
601
+ interface InvalidateCacheGetByOneOf {
686
602
  /**
687
- * Since platformized APIs only expose PATCH and not PUT we can't assume that the fields sent from the client are the actual diff.
688
- * This means that to generate a list of changed fields (as opposed to sent fields) one needs to traverse both objects.
689
- * We don't want to impose this on all developers and so we leave this traversal to the notification recipients which need it.
603
+ * Invalidate by msId. NOT recommended, as this will invalidate the entire site cache!
604
+ * @format GUID
690
605
  */
691
- currentEntity?: string;
692
- }
693
- interface EntityDeletedEvent {
694
- /** Entity that was deleted. */
695
- deletedEntity?: string | null;
696
- }
697
- interface ActionEvent {
698
- body?: string;
606
+ metaSiteId?: string;
607
+ /**
608
+ * Invalidate by Site ID. NOT recommended, as this will invalidate the entire site cache!
609
+ * @format GUID
610
+ */
611
+ siteId?: string;
612
+ /** Invalidate by App */
613
+ app?: App;
614
+ /** Invalidate by page id */
615
+ page?: Page;
616
+ /** Invalidate by URI path */
617
+ uri?: URI;
618
+ /** Invalidate by file (for media files such as PDFs) */
619
+ file?: File;
620
+ /** Invalidate by custom tag. Tags used in BO invalidation are disabled for this endpoint (more info: https://wix-bo.com/dev/clear-ssr-cache) */
621
+ customTag?: CustomTag;
622
+ /** Invalidate by multiple page ids */
623
+ pages?: Pages;
624
+ /** Invalidate by multiple URI paths */
625
+ uris?: URIs;
699
626
  }
700
- interface Empty {
627
+ interface App {
628
+ /**
629
+ * The AppDefId
630
+ * @minLength 1
631
+ */
632
+ appDefId?: string;
633
+ /**
634
+ * The instance Id
635
+ * @format GUID
636
+ */
637
+ instanceId?: string;
701
638
  }
702
- interface SyncContentToMultilingualRequest {
639
+ interface Page {
703
640
  /**
704
- * MetaSite ID
641
+ * the msid the page is on
705
642
  * @format GUID
706
643
  */
707
644
  metaSiteId?: string;
645
+ /**
646
+ * Invalidate by Page ID
647
+ * @minLength 1
648
+ */
649
+ pageId?: string;
708
650
  }
709
- interface SyncContentToMultilingualResponse {
710
- }
711
- interface MessageEnvelope {
651
+ interface URI {
712
652
  /**
713
- * App instance ID.
653
+ * the msid the URI is on
714
654
  * @format GUID
715
655
  */
716
- instanceId?: string | null;
656
+ metaSiteId?: string;
717
657
  /**
718
- * Event type.
719
- * @maxLength 150
658
+ * URI path to invalidate (e.g. page/my/path) - without leading/trailing slashes
659
+ * @minLength 1
720
660
  */
721
- eventType?: string;
722
- /** The identification type and identity data. */
723
- identity?: IdentificationData;
724
- /** Stringify payload. */
725
- data?: string;
726
- /** Details related to the account */
727
- accountInfo?: AccountInfo;
661
+ uriPath?: string;
728
662
  }
729
- interface IdentificationData extends IdentificationDataIdOneOf {
663
+ interface File {
730
664
  /**
731
- * ID of a site visitor that has not logged in to the site.
665
+ * the msid the file is related to
732
666
  * @format GUID
733
667
  */
734
- anonymousVisitorId?: string;
668
+ metaSiteId?: string;
735
669
  /**
736
- * ID of a site visitor that has logged in to the site.
737
- * @format GUID
670
+ * Invalidate by filename (for media files such as PDFs)
671
+ * @minLength 1
672
+ * @maxLength 256
738
673
  */
739
- memberId?: string;
674
+ fileName?: string;
675
+ }
676
+ interface CustomTag {
740
677
  /**
741
- * ID of a Wix user (site owner, contributor, etc.).
678
+ * the msid the tag is related to
742
679
  * @format GUID
743
680
  */
744
- wixUserId?: string;
681
+ metaSiteId?: string;
745
682
  /**
746
- * ID of an app.
747
- * @format GUID
683
+ * Tag to invalidate by
684
+ * @minLength 1
685
+ * @maxLength 256
748
686
  */
749
- appId?: string;
750
- /** @readonly */
751
- identityType?: WebhookIdentityTypeWithLiterals;
687
+ tag?: string;
752
688
  }
753
- /** @oneof */
754
- interface IdentificationDataIdOneOf {
689
+ interface Pages {
755
690
  /**
756
- * ID of a site visitor that has not logged in to the site.
691
+ * the msid the pages are on
757
692
  * @format GUID
758
693
  */
759
- anonymousVisitorId?: string;
694
+ metaSiteId?: string;
760
695
  /**
761
- * ID of a site visitor that has logged in to the site.
696
+ * Invalidate by multiple Page IDs in a single message
697
+ * @maxSize 100
698
+ * @minLength 1
699
+ */
700
+ pageIds?: string[];
701
+ }
702
+ interface URIs {
703
+ /**
704
+ * the msid the URIs are on
762
705
  * @format GUID
763
706
  */
764
- memberId?: string;
707
+ metaSiteId?: string;
765
708
  /**
766
- * ID of a Wix user (site owner, contributor, etc.).
709
+ * URI paths to invalidate (e.g. page/my/path) - without leading/trailing slashes
710
+ * @maxSize 100
711
+ * @minLength 1
712
+ */
713
+ uriPaths?: string[];
714
+ }
715
+ interface DeleteOrphanSections {
716
+ /** Menu id */
717
+ menuId?: string;
718
+ }
719
+ interface MenusDataCloningCompleted {
720
+ }
721
+ interface CreateMenuRequest {
722
+ /** Menu details. */
723
+ menu: Menu;
724
+ }
725
+ interface CreateMenuResponse {
726
+ /** Menu. */
727
+ menu?: Menu;
728
+ }
729
+ interface BulkCreateMenusRequest {
730
+ /**
731
+ * Menu details.
732
+ * @maxSize 100
733
+ */
734
+ menus: Menu[];
735
+ /** Whether to receive the created menus in the response. */
736
+ returnEntity?: boolean;
737
+ }
738
+ interface BulkCreateMenusResponse {
739
+ /** Information about the created menus. */
740
+ results?: BulkCreateMenuResult[];
741
+ /** Metadata for the API call. */
742
+ bulkActionMetadata?: BulkActionMetadata;
743
+ }
744
+ interface BulkCreateMenuResult {
745
+ /** Whether to receive the created menus in the response. */
746
+ menuMetadata?: ItemMetadata;
747
+ /** Created menu. */
748
+ menu?: Menu;
749
+ }
750
+ interface ItemMetadata {
751
+ /** Item ID. Should always be available, unless it's impossible (for example, when failing to create an item). */
752
+ _id?: string | null;
753
+ /** Index of the item within the request array. Allows for correlation between request and response items. */
754
+ originalIndex?: number;
755
+ /** Whether the requested action was successful for this item. When `false`, the `error` field is populated. */
756
+ success?: boolean;
757
+ /** Details about the error in case of failure. */
758
+ error?: ApplicationError;
759
+ }
760
+ interface ApplicationError {
761
+ /** Error code. */
762
+ code?: string;
763
+ /** Description of the error. */
764
+ description?: string;
765
+ /** Data related to the error. */
766
+ data?: Record<string, any> | null;
767
+ }
768
+ interface BulkActionMetadata {
769
+ /** Number of items that were successfully processed. */
770
+ totalSuccesses?: number;
771
+ /** Number of items that couldn't be processed. */
772
+ totalFailures?: number;
773
+ /** Number of failures without details because detailed failure threshold was exceeded. */
774
+ undetailedFailures?: number;
775
+ }
776
+ interface GetMenuRequest {
777
+ /**
778
+ * Menu ID.
767
779
  * @format GUID
768
780
  */
769
- wixUserId?: string;
781
+ menuId: string;
782
+ }
783
+ interface GetMenuResponse {
784
+ /** Menu. */
785
+ menu?: Menu;
786
+ }
787
+ interface ListMenusRequest {
770
788
  /**
771
- * ID of an app.
789
+ * Menu IDs.
772
790
  * @format GUID
791
+ * @maxSize 500
773
792
  */
774
- appId?: string;
793
+ menuIds?: string[];
794
+ /** The metadata of the paginated results. */
795
+ paging?: CursorPaging;
796
+ /** Whether to return only menus that are visible to site visitors. */
797
+ onlyVisible?: boolean | null;
798
+ }
799
+ interface ListMenusResponse {
800
+ /** Retrieved menus. */
801
+ menus?: Menu[];
802
+ /** The metadata of the paginated results. */
803
+ pagingMetadata?: CursorPagingMetadata;
804
+ }
805
+ interface QueryMenusRequest {
806
+ /** Query options. */
807
+ query?: CursorQuery;
808
+ }
809
+ interface QueryMenusResponse {
810
+ /** Retrieved menus. */
811
+ menus?: Menu[];
812
+ /** The metadata of the paginated results. */
813
+ pagingMetadata?: CursorPagingMetadata;
775
814
  }
776
- declare enum WebhookIdentityType {
777
- UNKNOWN = "UNKNOWN",
778
- ANONYMOUS_VISITOR = "ANONYMOUS_VISITOR",
779
- MEMBER = "MEMBER",
780
- WIX_USER = "WIX_USER",
781
- APP = "APP"
815
+ interface UpdateMenuRequest {
816
+ /** Menu to update. */
817
+ menu: Menu;
782
818
  }
783
- /** @enumType */
784
- type WebhookIdentityTypeWithLiterals = WebhookIdentityType | 'UNKNOWN' | 'ANONYMOUS_VISITOR' | 'MEMBER' | 'WIX_USER' | 'APP';
785
- interface AccountInfo {
786
- /**
787
- * ID of the Wix account associated with the event.
788
- * @format GUID
789
- */
790
- accountId?: string | null;
791
- /**
792
- * ID of the parent Wix account. Only included when accountId belongs to a child account.
793
- * @format GUID
794
- */
795
- parentAccountId?: string | null;
819
+ interface UpdateMenuResponse {
820
+ /** Updated menu. */
821
+ menu?: Menu;
822
+ }
823
+ interface BulkUpdateMenuRequest {
796
824
  /**
797
- * ID of the Wix site associated with the event. Only included when the event is tied to a specific site.
798
- * @format GUID
825
+ * Menus to update.
826
+ * @minSize 1
827
+ * @maxSize 100
799
828
  */
800
- siteId?: string | null;
829
+ menus: MaskedMenu[];
830
+ /** Whether to receive the entity in the response. */
831
+ returnEntity?: boolean;
801
832
  }
802
- interface DuplicateMenuRequest {
833
+ interface MaskedMenu {
834
+ /** Menu to updated. */
835
+ menu?: Menu;
836
+ /** Explicit list of fields to update. */
837
+ mask?: string[];
838
+ }
839
+ interface BulkUpdateMenuResponse {
803
840
  /**
804
- * Menu id to be duplicated.
805
- * @format GUID
841
+ * Results of bulk menu update.
842
+ * @minSize 1
843
+ * @maxSize 100
806
844
  */
845
+ results?: BulkMenuResult[];
846
+ /** Metadata for the API call. */
847
+ bulkActionMetadata?: BulkActionMetadata;
848
+ }
849
+ interface BulkMenuResult {
850
+ /** Metadata for menu update. */
851
+ menuMetadata?: ItemMetadata;
852
+ /** Updated menu. Only returned if `returnEntity` is set to `true`. */
853
+ menu?: Menu;
854
+ }
855
+ interface UpdateExtendedFieldsRequest {
856
+ /** ID of the entity to update. */
807
857
  _id: string;
858
+ /** Identifier for the app whose extended fields are being updated. */
859
+ namespace: string;
860
+ /** Data to update. Structured according to the [schema](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields#json-schema-for-extended-fields) defined when the extended fields were configured. */
861
+ namespaceData: Record<string, any> | null;
862
+ }
863
+ interface UpdateExtendedFieldsResponse {
864
+ /** Namespace of the app. */
865
+ namespace?: string;
866
+ /** Updated extended fields data. */
867
+ namespaceData?: Record<string, any> | null;
868
+ }
869
+ interface DeleteMenuRequest {
808
870
  /**
809
- * Business location ids to duplicate the menu to.
871
+ * Menu ID.
810
872
  * @format GUID
811
- * @maxSize 100
812
873
  */
813
- businessLocationIds?: string[] | null;
814
- /** Indicates whether sub-entities (such as items) should be duplicated as well. */
815
- duplicateSubEntities?: boolean | null;
874
+ menuId: string;
875
+ }
876
+ interface DeleteMenuResponse {
877
+ }
878
+ interface RunMenusMultiLocationMigrationRequest {
816
879
  /**
817
- * The new name of the duplicated menu.
818
- * @maxLength 500
880
+ * business location id
881
+ * @format GUID
819
882
  */
820
- menuName?: string | null;
883
+ businessLocationId?: string;
821
884
  }
822
- interface DuplicateMenuResponse {
885
+ interface RunMenusMultiLocationMigrationResponse {
886
+ /** Whether menus multi-location migration finished successfully */
887
+ success?: boolean;
888
+ }
889
+ interface UpdateBusinessLocationIdRequest {
823
890
  /** @format GUID */
824
- menuIds?: string[];
891
+ menuId?: string;
892
+ /** @format GUID */
893
+ businessLocationId?: string | null;
825
894
  }
826
- interface GetMenuSiteUrlRequest {
895
+ interface UpdateBusinessLocationIdResponse {
896
+ }
897
+ interface CloneMenusRequest {
827
898
  /**
828
- * Menu ID.
899
+ * The MetaSiteId to clone from.
829
900
  * @format GUID
830
- * @readonly
831
901
  */
832
- _id: string | null;
902
+ metaSiteId?: string;
833
903
  }
834
- interface GetMenuSiteUrlResponse {
835
- /** Retrieved menuInfo with path url. */
836
- menuSiteUrl?: MenuSiteUrl;
904
+ interface CloneMenusResponse {
837
905
  }
838
- interface MenuSiteUrl {
906
+ interface Empty {
907
+ }
908
+ interface SyncContentToMultilingualRequest {
839
909
  /**
840
- * Path URL.
841
- * @minLength 1
842
- * @maxLength 1000
910
+ * MetaSite ID
911
+ * @format GUID
843
912
  */
844
- path?: string;
845
- }
846
- interface QueryMenusSiteUrlRequest {
847
- /** Query options */
848
- query?: CursorQuery;
913
+ metaSiteId?: string;
849
914
  }
850
- interface QueryMenusSiteUrlResponse {
851
- /** Retrieved menuInfos with path urls. */
852
- menuSiteUrls?: MenuSiteUrl[];
853
- /** The metadata of the paginated results. */
854
- pagingMetadata?: CursorPagingMetadata;
915
+ interface SyncContentToMultilingualResponse {
855
916
  }
856
917
  interface BaseEventMetadata {
857
918
  /**
@@ -908,6 +969,21 @@ interface AccountInfoMetadata {
908
969
  /** ID of the parent Wix account. Only included when 'accountId' belongs to a child account. */
909
970
  parentAccountId?: string;
910
971
  }
972
+ interface MenuUpdatedEnvelope {
973
+ entity: Menu;
974
+ metadata: EventMetadata;
975
+ /** @hidden */
976
+ modifiedFields: Record<string, any>;
977
+ }
978
+ /** @permissionScope Manage Restaurants - all permissions
979
+ * @permissionScopeId SCOPE.RESTAURANTS.MEGA-SCOPES
980
+ * @permissionId RESTAURANTS.MENU_READ
981
+ * @webhook
982
+ * @eventType wix.restaurants.menus.v1.menu_updated
983
+ * @slug updated
984
+ * @documentationMaturity preview
985
+ */
986
+ declare function onMenuUpdated(handler: (event: MenuUpdatedEnvelope) => void | Promise<void>): void;
911
987
  interface MenuCreatedEnvelope {
912
988
  entity: Menu;
913
989
  metadata: EventMetadata;
@@ -937,21 +1013,54 @@ interface MenuDeletedEnvelope {
937
1013
  * @documentationMaturity preview
938
1014
  */
939
1015
  declare function onMenuDeleted(handler: (event: MenuDeletedEnvelope) => void | Promise<void>): void;
940
- interface MenuUpdatedEnvelope {
941
- entity: Menu;
942
- metadata: EventMetadata;
943
- /** @hidden */
944
- modifiedFields: Record<string, any>;
1016
+ /** @param _id - Menu id to be duplicated.
1017
+ * @public
1018
+ * @documentationMaturity preview
1019
+ * @requiredField _id
1020
+ * @permissionId RESTAURANTS.MENU_CREATE
1021
+ * @applicableIdentity APP
1022
+ * @fqn com.wixpress.restaurants.menus_menu.v1.restaurants_duplicate_menu.RestaurantsDuplicateMenu.DuplicateMenu
1023
+ */
1024
+ declare function duplicateMenu(_id: string, options?: DuplicateMenuOptions): Promise<NonNullablePaths<DuplicateMenuResponse, `menuIds`, 0>>;
1025
+ interface DuplicateMenuOptions {
1026
+ /**
1027
+ * Business location ids to duplicate the menu to.
1028
+ * @format GUID
1029
+ * @maxSize 100
1030
+ */
1031
+ businessLocationIds?: string[] | null;
1032
+ /** Indicates whether sub-entities (such as items) should be duplicated as well. */
1033
+ duplicateSubEntities?: boolean | null;
1034
+ /**
1035
+ * The new name of the duplicated menu.
1036
+ * @maxLength 500
1037
+ */
1038
+ menuName?: string | null;
945
1039
  }
946
- /** @permissionScope Manage Restaurants - all permissions
947
- * @permissionScopeId SCOPE.RESTAURANTS.MEGA-SCOPES
1040
+ /**
1041
+ * Get menu details and path URL by menu ID.
1042
+ * @param _id - Menu ID.
1043
+ * @public
1044
+ * @documentationMaturity preview
1045
+ * @requiredField _id
948
1046
  * @permissionId RESTAURANTS.MENU_READ
949
- * @webhook
950
- * @eventType wix.restaurants.menus.v1.menu_updated
951
- * @slug updated
1047
+ * @applicableIdentity APP
1048
+ * @fqn com.wixpress.restaurants.menus_menu.v1.restaurants_menus_site_url.RestaurantsMenusSiteUrl.GetMenuSiteUrl
1049
+ */
1050
+ declare function getMenuSiteUrl(_id: string): Promise<NonNullablePaths<GetMenuSiteUrlResponse, `menuSiteUrl.path`, 1>>;
1051
+ /**
1052
+ * Query menu details and path URL
1053
+ * @public
952
1054
  * @documentationMaturity preview
1055
+ * @permissionId RESTAURANTS.MENU_READ
1056
+ * @applicableIdentity APP
1057
+ * @fqn com.wixpress.restaurants.menus_menu.v1.restaurants_menus_site_url.RestaurantsMenusSiteUrl.QueryMenusSiteUrl
953
1058
  */
954
- declare function onMenuUpdated(handler: (event: MenuUpdatedEnvelope) => void | Promise<void>): void;
1059
+ declare function queryMenusSiteUrl(options?: QueryMenusSiteUrlOptions): Promise<NonNullablePaths<QueryMenusSiteUrlResponse, `menuSiteUrls` | `menuSiteUrls.${number}.path`, 2>>;
1060
+ interface QueryMenusSiteUrlOptions {
1061
+ /** Query options */
1062
+ query?: CursorQuery;
1063
+ }
955
1064
  /**
956
1065
  * > **Note:** The Menus API only works with the Wix Restaurants Menus app. Make sure you have installed this app from the [Wix App Market](https://www.wix.com/app-market/wix-restaurants-menus-new).
957
1066
  *
@@ -1338,53 +1447,5 @@ interface UpdateExtendedFieldsOptions {
1338
1447
  * @fqn com.wixpress.restaurants.menus_menu.v1.RestaurantsMenusMenu.DeleteMenu
1339
1448
  */
1340
1449
  declare function deleteMenu(menuId: string): Promise<void>;
1341
- /** @param _id - Menu id to be duplicated.
1342
- * @public
1343
- * @documentationMaturity preview
1344
- * @requiredField _id
1345
- * @permissionId RESTAURANTS.MENU_CREATE
1346
- * @applicableIdentity APP
1347
- * @fqn com.wixpress.restaurants.menus_menu.v1.restaurants_duplicate_menu.RestaurantsDuplicateMenu.DuplicateMenu
1348
- */
1349
- declare function duplicateMenu(_id: string, options?: DuplicateMenuOptions): Promise<NonNullablePaths<DuplicateMenuResponse, `menuIds`, 0>>;
1350
- interface DuplicateMenuOptions {
1351
- /**
1352
- * Business location ids to duplicate the menu to.
1353
- * @format GUID
1354
- * @maxSize 100
1355
- */
1356
- businessLocationIds?: string[] | null;
1357
- /** Indicates whether sub-entities (such as items) should be duplicated as well. */
1358
- duplicateSubEntities?: boolean | null;
1359
- /**
1360
- * The new name of the duplicated menu.
1361
- * @maxLength 500
1362
- */
1363
- menuName?: string | null;
1364
- }
1365
- /**
1366
- * Get menu details and path URL by menu ID.
1367
- * @param _id - Menu ID.
1368
- * @public
1369
- * @documentationMaturity preview
1370
- * @requiredField _id
1371
- * @permissionId RESTAURANTS.MENU_READ
1372
- * @applicableIdentity APP
1373
- * @fqn com.wixpress.restaurants.menus_menu.v1.restaurants_menus_site_url.RestaurantsMenusSiteUrl.GetMenuSiteUrl
1374
- */
1375
- declare function getMenuSiteUrl(_id: string): Promise<NonNullablePaths<GetMenuSiteUrlResponse, `menuSiteUrl.path`, 1>>;
1376
- /**
1377
- * Query menu details and path URL
1378
- * @public
1379
- * @documentationMaturity preview
1380
- * @permissionId RESTAURANTS.MENU_READ
1381
- * @applicableIdentity APP
1382
- * @fqn com.wixpress.restaurants.menus_menu.v1.restaurants_menus_site_url.RestaurantsMenusSiteUrl.QueryMenusSiteUrl
1383
- */
1384
- declare function queryMenusSiteUrl(options?: QueryMenusSiteUrlOptions): Promise<NonNullablePaths<QueryMenusSiteUrlResponse, `menuSiteUrls` | `menuSiteUrls.${number}.path`, 2>>;
1385
- interface QueryMenusSiteUrlOptions {
1386
- /** Query options */
1387
- query?: CursorQuery;
1388
- }
1389
1450
 
1390
1451
  export { type AccountInfo, type AccountInfoMetadata, type ActionEvent, type AddressLocation, type App, type ApplicationError, type BaseEventMetadata, type BulkActionMetadata, type BulkCreateMenuResult, type BulkCreateMenusOptions, type BulkCreateMenusRequest, type BulkCreateMenusResponse, type BulkMenuResult, type BulkUpdateMenuOptions, type BulkUpdateMenuRequest, type BulkUpdateMenuResponse, type BusinessLocationDetails, type CloneMenusRequest, type CloneMenusResponse, type CommonQueryWithEntityContext, type CreateMenuRequest, type CreateMenuResponse, type CursorPaging, type CursorPagingMetadata, type CursorQuery, type CursorQueryPagingMethodOneOf, type Cursors, type CustomTag, type DeleteMenuRequest, type DeleteMenuResponse, type DeleteOrphanSections, type DomainEvent, type DomainEventBodyOneOf, type DuplicateMenuOptions, type DuplicateMenuRequest, type DuplicateMenuResponse, type Empty, type EntityCreatedEvent, type EntityDeletedEvent, type EntityUpdatedEvent, type EventMetadata, type ExtendedFields, type ExternalReferenceInfo, type File, type GetMenuRequest, type GetMenuResponse, type GetMenuSiteUrlRequest, type GetMenuSiteUrlResponse, type IdentificationData, type IdentificationDataIdOneOf, type InvalidateCache, type InvalidateCacheGetByOneOf, type ItemMetadata, type Keyword, type ListMenusOptions, type ListMenusRequest, type ListMenusResponse, type MaskedMenu, type Menu, type MenuCreatedEnvelope, type MenuDeletedEnvelope, type MenuQuery, type MenuQuerySpec, type MenuSiteUrl, type MenuUpdatedEnvelope, type MenusDataCloningCompleted, type MenusQueryBuilder, type MenusQueryResult, type MessageEnvelope, type Page, type Pages, type QueryMenusRequest, type QueryMenusResponse, type QueryMenusSiteUrlOptions, type QueryMenusSiteUrlRequest, type QueryMenusSiteUrlResponse, type RestoreInfo, type RunMenusMultiLocationMigrationRequest, type RunMenusMultiLocationMigrationResponse, type SeoSchema, type Settings, SortOrder, type SortOrderWithLiterals, type Sorting, type SyncContentToMultilingualRequest, type SyncContentToMultilingualResponse, type Tag, type URI, type URIs, type UpdateBusinessLocationIdRequest, type UpdateBusinessLocationIdResponse, type UpdateExtendedFieldsOptions, type UpdateExtendedFieldsRequest, type UpdateExtendedFieldsResponse, type UpdateMenu, type UpdateMenuRequest, type UpdateMenuResponse, WebhookIdentityType, type WebhookIdentityTypeWithLiterals, bulkCreateMenus, bulkUpdateMenu, createMenu, deleteMenu, duplicateMenu, getMenu, getMenuSiteUrl, listMenus, onMenuCreated, onMenuDeleted, onMenuUpdated, queryMenus, queryMenusSiteUrl, typedQueryMenus, updateExtendedFields, updateMenu, utils };