From e2243b0ccd285b2cd4844a98bdb81c00e9cc9b45 Mon Sep 17 00:00:00 2001 From: Wix Docs Feds Date: Tue, 7 Feb 2023 13:03:50 +0000 Subject: [PATCH 01/45] Auto commit to autodocs-wix-forum-v2 from WixDocs Server --- wix-forum-v2/wix-forum-v2/Events.service.json | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/wix-forum-v2/wix-forum-v2/Events.service.json b/wix-forum-v2/wix-forum-v2/Events.service.json index 5f9647cb34..a48072fa97 100644 --- a/wix-forum-v2/wix-forum-v2/Events.service.json +++ b/wix-forum-v2/wix-forum-v2/Events.service.json @@ -185,7 +185,7 @@ "description": [], "examples": [ { - "title": "onPostClosed example", + "title": "OnPostClosed example", "body": [ "", " export function wixForum_onPostClosed(event) {", @@ -234,7 +234,7 @@ "description": [], "examples": [ { - "title": "onPostCreated example", + "title": "OnPostCreated example", "body": [ "", " export function wixForum_onPostCreated(event) {", @@ -283,7 +283,7 @@ "description": [], "examples": [ { - "title": "onPostDeleted example", + "title": "OnPostDeleted example", "body": [ "", " export function wixForum_onPostDeleted(event) {", @@ -332,7 +332,7 @@ "description": [], "examples": [ { - "title": "onPostLiked example", + "title": "OnPostLiked example", "body": [ "", " export function wixForum_onPostLiked(event) {", @@ -381,7 +381,7 @@ "description": [], "examples": [ { - "title": "onPostMoved example", + "title": "OnPostMoved example", "body": [ "", " export function wixForum_onPostMoved(event) {", @@ -430,7 +430,7 @@ "description": [], "examples": [ { - "title": "onPostOpened example", + "title": "OnPostOpened example", "body": [ "", " export function wixForum_onPostOpened(event) {", @@ -479,7 +479,7 @@ "description": [], "examples": [ { - "title": "onPostPinned example", + "title": "OnPostPinned example", "body": [ "", " export function wixForum_onPostPinned(event) {", @@ -528,7 +528,7 @@ "description": [], "examples": [ { - "title": "onPostReacted example", + "title": "OnPostReacted example", "body": [ "", " export function wixForum_onPostReacted(event) {", @@ -577,7 +577,7 @@ "description": [], "examples": [ { - "title": "onPostReported example", + "title": "OnPostReported example", "body": [ "", " export function wixForum_onPostReported(event) {", @@ -626,7 +626,7 @@ "description": [], "examples": [ { - "title": "onPostUnliked example", + "title": "OnPostUnliked example", "body": [ "", " export function wixForum_onPostUnliked(event) {", @@ -675,7 +675,7 @@ "description": [], "examples": [ { - "title": "onPostUnpinned example", + "title": "OnPostUnpinned example", "body": [ "", " export function wixForum_onPostUnpinned(event) {", @@ -724,7 +724,7 @@ "description": [], "examples": [ { - "title": "onPostUnreacted example", + "title": "OnPostUnreacted example", "body": [ "", " export function wixForum_onPostUnreacted(event) {", @@ -773,7 +773,7 @@ "description": [], "examples": [ { - "title": "onPostUpdated example", + "title": "OnPostUpdated example", "body": [ "", " export function wixForum_onPostUpdated(event) {", From e4f30528f4866833052eee905d1b71b3f9a5b02d Mon Sep 17 00:00:00 2001 From: Wix Docs Feds Date: Wed, 8 Feb 2023 08:59:11 +0000 Subject: [PATCH 02/45] Auto commit to autodocs-wix-forum-v2 from WixDocs Server --- wix-forum-v2/wix-forum-v2/Categories.service.json | 6 +++--- wix-forum-v2/wix-forum-v2/Posts.service.json | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/wix-forum-v2/wix-forum-v2/Categories.service.json b/wix-forum-v2/wix-forum-v2/Categories.service.json index 48d33645f3..4fcc46f01d 100644 --- a/wix-forum-v2/wix-forum-v2/Categories.service.json +++ b/wix-forum-v2/wix-forum-v2/Categories.service.json @@ -56,7 +56,7 @@ "description": [], "examples": [ { - "title": "getCategory example", + "title": "GetCategory example", "body": [ "import { categories } from 'wix-forum.v2';", " ", @@ -129,7 +129,7 @@ "description": [], "examples": [ { - "title": "getCategoryBySlug example", + "title": "GetCategoryBySlug example", "body": [ "import { categories } from 'wix-forum.v2';", " ", @@ -192,7 +192,7 @@ ], "examples": [ { - "title": "queryCategories example", + "title": "QueryCategories example", "body": [ "import { categories } from 'wix-forum.v2';", " ", diff --git a/wix-forum-v2/wix-forum-v2/Posts.service.json b/wix-forum-v2/wix-forum-v2/Posts.service.json index aa0523bfb8..84ff49d9fd 100644 --- a/wix-forum-v2/wix-forum-v2/Posts.service.json +++ b/wix-forum-v2/wix-forum-v2/Posts.service.json @@ -56,7 +56,7 @@ "description": [], "examples": [ { - "title": "getPost example", + "title": "GetPost example", "body": [ "import { posts } from 'wix-forum.v2';", " ", @@ -129,7 +129,7 @@ "description": [], "examples": [ { - "title": "getPostBySlug example", + "title": "GetPostBySlug example", "body": [ "import { posts } from 'wix-forum.v2';", " ", @@ -192,7 +192,7 @@ ], "examples": [ { - "title": "queryPosts example", + "title": "QueryPosts example", "body": [ "import { posts } from 'wix-forum.v2';", " ", From 1156bf622a462db0944be3176b5cbbe7cd46efb6 Mon Sep 17 00:00:00 2001 From: Wix Docs Feds Date: Wed, 8 Feb 2023 08:59:16 +0000 Subject: [PATCH 03/45] Auto commit to autodocs-wix-forum-v2 from WixDocs Server --- wix-forum.v2/metadata.json | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 wix-forum.v2/metadata.json diff --git a/wix-forum.v2/metadata.json b/wix-forum.v2/metadata.json new file mode 100644 index 0000000000..886039bb14 --- /dev/null +++ b/wix-forum.v2/metadata.json @@ -0,0 +1,7 @@ +{ + "name": "@wix/wix-forum.v2", + "fingerprint": "5b796e7b4db269ffe049061fd6bdbf6d8b7470e76bf5273e47e15561", + "groupId": "com.wixpress.velo-autogen", + "artifactId": "wix-forum-v2-velo-autogen", + "module": "wix-forum.v2" +} From c51d9b41bdc4a3d4ad00b25bc3738806d8967fee Mon Sep 17 00:00:00 2001 From: wix-docs-feds <87931637+wix-docs-feds@users.noreply.github.com> Date: Wed, 15 Feb 2023 15:27:45 +0200 Subject: [PATCH 04/45] remove universal modules note Co-authored-by: Adam Friedmann --- .../Shareable Booking Calendar Links.md | 139 ++++++++++++++++++ 1 file changed, 139 insertions(+) create mode 100644 wixcode-bookings/wix-bookings/guides/Shareable Booking Calendar Links.md diff --git a/wixcode-bookings/wix-bookings/guides/Shareable Booking Calendar Links.md b/wixcode-bookings/wix-bookings/guides/Shareable Booking Calendar Links.md new file mode 100644 index 0000000000..0392043414 --- /dev/null +++ b/wixcode-bookings/wix-bookings/guides/Shareable Booking Calendar Links.md @@ -0,0 +1,139 @@ + + +# Creating a Shareable Booking Calendar Link + +With booking calendar page [query parameters](#query-parameters), you can: + ++ Create a link to a Wix site's [booking calendar page](https://support.wix.com/en/article/wix-bookings-customizing-your-calendar-page) with preset values you choose. ++ Create a link for rescheduling a specific existing booking. + +## Introduction + +When a site visitor navigates to make a booking on a Wix site, they are taken to a booking calendar page. +Here they select their preferences for the date and time of their booking. +Depending on the site's settings, they may also be able to select a time zone, and filter by location and staff member. + +When the booking calendar page opens, the calendar typically appears with a default date, time, and time zone based on the site's settings. +No location or staff member filters are selected. + +With query parameters, you can create and share a direct link to a booking calendar page with customized pre-filled default values of your choice. +A site visitor who visits the page via your custom link can still change their selections, but the values you define appear as default choices. + +Using query parameters, you can select default values for these fields: + ++ Date ++ Time zone ++ Resources (staff members) ++ Locations + +In addition, you can provide a Booking ID to create a link for rescheduling a specific existing booking. + +## Creating your shareable link + +To create your customized shareable link, follow these steps: + +1. Obtain the Wix site's [booking calendar page URL](#booking-calendar-page-url). +2. Determine which [query parameters](#query-parameters) you want to use. +3. Find the values you need for the query parameters. For a resource or location, or to reschedule an existing booking, read more about [finding IDs](#finding-ids). + +### Booking calendar page URL + +The booking calendar page is the page where a Wix site visitor selects details for an appointment or class and requests a booking. +Query parameters are added at the end of the URL for this page. + +You can find the full URL for a Wix site's booking calendar page by navigating to the page in a browser and looking in the address bar. + +Alternatively, you can construct the full URL for a booking calendar page on the basis of the site URL and the slug for the service. +The full URL for a booking calendar page is structured as follows: + +```url +https:///booking-calendar/ +``` + +To find the service slug using the site dashboard, follow these steps: + +1. Log into the site dashboard. +2. Click "Booking Services" in the sidebar menu. +3. Hover over the desired service in the list of services to make the "Edit" button appear, then click the "Edit" button. This opens the page for managing the service. +4. Scroll down to the "Marketing & SEO" section on the right, then click "Edit SEO Settings". This opens the "SEO Settings" section. +5. The service slug appears in the "URL slug" section. + +For example, if a Wix site's URL is `www.my-example-site.com` and the service slug is `initial-consultation`, the URL will be: + +```url +https://www.my-example-site.com/booking-calendar/initial-consultation +``` + +### Query parameters + +Attach any of the following query parameters to a Wix site booking calendar page URL to preset customized default settings of your choice: + +| Query Parameter | Description | +| --------------- | ----------- | +| `resource` | One or more resources (staff members) to be selected by default, identified by ID. Use commas to separate multiple resource IDs.| +| `timezone` | Default time zone for the booking calendar, in [tz database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) format. For example: `America/Santiago`. **Note:** You can only select a time zone the page supports as an option. For more information, see [Setting the Time Zone Display](https://support.wix.com/en/article/setting-the-time-zone-display-in-wix-bookings).| +| `date` | Initial date to open in the booking calendar page, in `YYYY-MM-DD` format. | +| `location` | One or more business locations, identified by ID. Use commas to separate multiple location IDs.| +| `bookingId` | ID of an existing booking to reschedule. **Note:** The site member who booked the original session needs to be logged in.| + +### Finding IDs + +To set customized default resources (staff members) or locations, or to reschedule an existing booking, you need to obtain the relevant IDs. You can do this as follows: + +#### Resources + +To find the ID for a resource using the site dashboard, follow these steps: + +1. Log into the site dashboard. +2. Click "Booking Calendar" in the sidebar menu, then click "Staff" in the submenu that opens. +3. Hover over the desired resource in the list of resources to make the "Edit" button appear, then click on the "Edit" button. This opens the page for editing the resource's details. +4. Once you are on the resource's page, you can find their ID in the page URL in the address bar of the browser, after `/bookings/staff/details/` + +For example, in the following URL, the resource ID is `76570209-101f-409b-af97-b445bdb63125`: + +```url +https://manage.wix.com/dashboard/034bf758-3afd-4fae-877e-44508f1a003a/bookings/staff/details/76570209-101f-409b-af97-b445bdb63125?referralInfo=bookings-staff-list +``` + +#### Locations + +To find the ID for a business location, use [`listLocations()`](/wix-business-tools-v2/locations/listlocations) or [`queryLocations()`](/wix-business-tools-v2/locations/querylocations). + +#### Existing bookings + +To find an existing booking's ID, use [`queryBookings()`](/wix-bookings-backend/bookings/querybookings). + +## Examples + +The following are examples of shareable links for a Wix site's booking calendar page with query parameters that set customized default values. + +Preset date: + +```url +www.your-site.com/booking-calendar/your-service?date=2023-08-20 +``` + +Preset date and time zone: + +```url +www.your-site.com/booking-calendar/your-service?date=2023-08-20&timezone=Australia/Sydney +``` + +Preset resource and location: + +```url +www.your-site.com/booking-calendar/your-service?resource=76570209-101f-409b-af97-b445bdb63125&location=70a4f77e-cd37-455f-bb1d-ce1f0a55dd2b +``` + +Multiple preset resources and locations: + +```url +www.your-site.com/booking-calendar/your-service?resource=76570209-101f-409b-af97-b445bdb63125,1c20c17c-fc2a-457d-ac91-ac6c41441514&location=70a4f77e-cd37-455f-bb1d-ce1f0a55dd2b,9bb4326f-7446-4451-a4f4-bf154f1848c5 +``` + +Booking ID to reschedule an existing booking, with preset date and locations: + +```url +www.your-site.com/booking-calendar/your-service?bookingId=27f1ca08-81fc-4e27-b245-989eea19fd24&date=2023-07-11&location=70a4f77e-cd37-455f-bb1d-ce1f0a55dd2b,9bb4326f-7446-4451-a4f4-bf154f1848c5 +``` + From 03c4078d302bab63bf112b94eacf207714389407 Mon Sep 17 00:00:00 2001 From: TWSingleSource <116091643+TWSingleSource@users.noreply.github.com> Date: Mon, 27 Feb 2023 08:36:55 +0200 Subject: [PATCH 05/45] data error codes fix * Published by the Tech Writer Single Sourcing Tool * dummy commit --------- Co-authored-by: Wix Tech Writers Co-authored-by: seanoch <97606230+seanoch@users.noreply.github.com> Co-authored-by: sean --- .../Orders/guides/orders-sort.md | 26 ++++++++++++++++ .../guides/ticket-definitions-sort.md | 27 ++++++++++++++++ .../Tickets/guides/tickets-sort.md | 31 +++++++++++++++++++ 3 files changed, 84 insertions(+) create mode 100644 wix-events-v2/wix-events-v2/Orders/guides/orders-sort.md create mode 100644 wix-events-v2/wix-events-v2/TicketDefinitions/guides/ticket-definitions-sort.md create mode 100644 wix-events-v2/wix-events-v2/Tickets/guides/tickets-sort.md diff --git a/wix-events-v2/wix-events-v2/Orders/guides/orders-sort.md b/wix-events-v2/wix-events-v2/Orders/guides/orders-sort.md new file mode 100644 index 0000000000..e28288bdb9 --- /dev/null +++ b/wix-events-v2/wix-events-v2/Orders/guides/orders-sort.md @@ -0,0 +1,26 @@ +# Orders: Supported Sorting and Faceting + +Select functions allow sorting results by field. Use `field:asc` to sort results in **ascending** order, and `field:desc` to sort in **descending** order. + +For example, to sort orders by `created` date in ascending order, and then by `name` in descending order, use this format in the `options` parameter: + +```js +{ + sort: 'created:asc,name:desc' +} +``` + +The following table shows property support for sorting for the `Order` object: + +| Field | Sortable | Facetable | +|--------------------|----------|-----------| +| `created` | Sortable | | +| `name` | Sortable | | +| `score` | Sortable | | +| `orderNumber` | Sortable | | +| `status` | | Facetable | +| `archived` | | Facetable | +| `fullyCheckedIn` | | Facetable | + +__Related content:__ +[`listOrders`](/wix-events-v2/orders/listorders) \ No newline at end of file diff --git a/wix-events-v2/wix-events-v2/TicketDefinitions/guides/ticket-definitions-sort.md b/wix-events-v2/wix-events-v2/TicketDefinitions/guides/ticket-definitions-sort.md new file mode 100644 index 0000000000..90a9158fae --- /dev/null +++ b/wix-events-v2/wix-events-v2/TicketDefinitions/guides/ticket-definitions-sort.md @@ -0,0 +1,27 @@ +# Ticket Definitions: Supported Sorting and Faceting + +Select functions allow sorting results by field. Use `field:asc` to sort results in **ascending** order, and `field:desc` to sort in **descending** order. + +For example, to sort ticket definitions by `created` date in ascending order, and then by `modified` date in descending order, use this format in the `options` parameter: + +```js +{ + sort: 'created:asc,modified:desc' +} +``` + +The following table shows property support for sorting for the `Ticket Definition` object: + + +| Field | Sortable | Facetable | +|-----------------|----------|-----------| +| `created` | Sortable | | +| `modified` | Sortable | | +| `orderIndex` | Sortable | | +| `saleStatus` | | Facetable | +| `saleStartDate` | Sortable | | +| `saleEndDate` | Sortable | | +| `state` | | | + +__Related content:__ +[`listTicketDefinitions`](/wix-events-v2/ticketdefinitions/listticketdefinitions) \ No newline at end of file diff --git a/wix-events-v2/wix-events-v2/Tickets/guides/tickets-sort.md b/wix-events-v2/wix-events-v2/Tickets/guides/tickets-sort.md new file mode 100644 index 0000000000..382c75d4bd --- /dev/null +++ b/wix-events-v2/wix-events-v2/Tickets/guides/tickets-sort.md @@ -0,0 +1,31 @@ +# Tickets: Supported Sorting and Faceting + +Select functions allow sorting results by field. Use `field:asc` to sort results in **ascending** order, and `field:desc` to sort in **descending** order. + +For example, to sort tickets by `price` in ascending order, and then by `guestFullName` in descending order, use this format in the `options` parameter: + + +```js +{ + sort: 'price:asc,guestFullName:desc' +} +``` + +The following table shows property support for sorting for the `Ticket` object: + + +| Field | Sortable | Facetable | +|-----------------|----------|-----------| +| `ticketNumber` | Sortable | | +| `orderStatus` | Sortable | | +| `price` | Sortable | | +| `orderFullName` | Sortable | | +| `guestFullName` | Sortable | | +| `score` | Sortable | | +| `free` | | Facetable | +| `archived` | | Facetable | +| `checkedIn` | | Facetable | +| `eventId` | | Facetable | + +__Related content:__ +[`listTickets`](/wix-events-v2/tickets/listtickets) \ No newline at end of file From 55f3e92ec449599c0e8cf2d2da94f06adda7796b Mon Sep 17 00:00:00 2001 From: TWSingleSource <116091643+TWSingleSource@users.noreply.github.com> Date: Thu, 2 Mar 2023 13:36:44 +0200 Subject: [PATCH 06/45] new wix routers intro * DocWorks for wix-router - 6 changes detected, but 2 issue detected changes: Service wix-router.WixRouterSitemapEntry is new Service wix-router.WixRouterUser is new Service wix-router.WixRouterRequest is new Service wix-router.WixRouterResponse is new Service wix-router is new Service wix-router.WixRouterSitemapRequest is new issues: Operation customizeQuery has an unknown param type wix-data.WixDataQuery (router.js (300)) Operation customizeQuery has an unknown return type wix-data.WixDataQuery (router.js (300)) * Published by the Tech Writer Single Sourcing Tool * Delete wix-router-sdk directory * DocWorks for wix-router - no significant changes detected, but 2 issue detected issues: Operation customizeQuery has an unknown param type wix-data.WixDataQuery (router.js (300)) Operation customizeQuery has an unknown return type wix-data.WixDataQuery (router.js (300)) * DocWorks for wix-router - no significant changes detected, but 2 issue detected issues: Operation customizeQuery has an unknown param type wix-data.WixDataQuery (router.js (300)) Operation customizeQuery has an unknown return type wix-data.WixDataQuery (router.js (300)) --------- Co-authored-by: Adam Friedmann Co-authored-by: Wix Tech Writers Co-authored-by: adamfri <89579857+adamfri@users.noreply.github.com> --- .../wix-bookings-v2/Services.service.json | 4036 +++++++++++++++++ .../ServicesQueryBuilder.service.json | 832 ++++ .../Services/ServicesQueryResult.service.json | 492 ++ .../Services/guides/Introduction.md | 100 + wix-bookings.v2/metadata.json | 7 + .../Orders/guides/orders sort.md | 26 + .../guides/ticket definitions sort.md | 27 + .../Tickets/guides/tickets sort.md | 31 + wix-router/wix-router.service.json | 1183 +++++ .../wix-router/WixRouterRequest.service.json | 516 +++ .../wix-router/WixRouterResponse.service.json | 881 ++++ .../WixRouterSitemapEntry.service.json | 257 ++ .../WixRouterSitemapRequest.service.json | 173 + .../wix-router/WixRouterUser.service.json | 84 + .../guides/Coding with the Router API.md | 95 + 15 files changed, 8740 insertions(+) create mode 100644 wix-bookings-v2/wix-bookings-v2/Services.service.json create mode 100644 wix-bookings-v2/wix-bookings-v2/Services/ServicesQueryBuilder.service.json create mode 100644 wix-bookings-v2/wix-bookings-v2/Services/ServicesQueryResult.service.json create mode 100644 wix-bookings-v2/wix-bookings-v2/Services/guides/Introduction.md create mode 100644 wix-bookings.v2/metadata.json create mode 100644 wix-events-v2/wix-events-v2/Orders/guides/orders sort.md create mode 100644 wix-events-v2/wix-events-v2/TicketDefinitions/guides/ticket definitions sort.md create mode 100644 wix-events-v2/wix-events-v2/Tickets/guides/tickets sort.md create mode 100644 wix-router/wix-router.service.json create mode 100644 wix-router/wix-router/WixRouterRequest.service.json create mode 100644 wix-router/wix-router/WixRouterResponse.service.json create mode 100644 wix-router/wix-router/WixRouterSitemapEntry.service.json create mode 100644 wix-router/wix-router/WixRouterSitemapRequest.service.json create mode 100644 wix-router/wix-router/WixRouterUser.service.json create mode 100644 wix-router/wix-router/guides/Coding with the Router API.md diff --git a/wix-bookings-v2/wix-bookings-v2/Services.service.json b/wix-bookings-v2/wix-bookings-v2/Services.service.json new file mode 100644 index 0000000000..5857391cff --- /dev/null +++ b/wix-bookings-v2/wix-bookings-v2/Services.service.json @@ -0,0 +1,4036 @@ +{ + "name": "Services", + "memberOf": "wix-bookings-v2", + "mixes": [], + "callbacks": [], + "extra": {}, + "clientId": "wix-bookings.v2-service", + "docs": {}, + "relatedGuides": [], + "properties": [], + "operations": [ + { + "name": "getService", + "params": [ + { + "name": "serviceId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the service to retrieve.", + "required": true + } + ], + "requiredFields": [ + "serviceId" + ], + "ret": { + "type": [ + { + "complexType": { + "nativeType": "Promise", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Services.Service" + } + ] + } + } + ], + "doc": "The retrieved service.\n" + }, + "docs": { + "summary": "Retrieves a service.", + "description": [], + "examples": [ + { + "title": "Retrieve a service ", + "body": [ + "import { services } from 'wix-bookings.v2';", + " ", + "async function getService(serviceId) {", + " try {", + " const result = await services.getService(serviceId);", + " return result;", + " } catch (error) {", + " console.error(error);", + " // Handle the error", + " }", + "}", + " " + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "queryServices", + "params": [], + "requiredFields": [], + "ret": { + "type": [ + { + "referenceType": "wix-bookings-v2.Services.ServicesQueryBuilder" + } + ], + "doc": null + }, + "docs": { + "summary": "Retrieves a list of up to 100 services, given the provided paging, filtering, and sorting.", + "description": [ + "`queryServices()` runs with these defaults, which you can override:", + "+ `paging.limit` is `100`.", + "+ `paging.offset` is `0`.", + "", + "", + ">**Notes:**", + "> + Use UTC format when filtering with dates.", + "> + Only 1 use of each filter in the same query is supported. If a filter is defined more than once in a query, only the first occurrence is processed.", + "|PROPERTY\t|SUPPORTED FILTERS & SORTING\t", + "|:---:|:---:|", + "|`type`|[`eq()`](wix-bookings.v2.Services.ServicesQueryBuilder#eq),[`ne()`](wix-bookings.v2.Services.ServicesQueryBuilder#ne),[`exists()`](wix-bookings.v2.Services.ServicesQueryBuilder#exists),[`in()`](wix-bookings.v2.Services.ServicesQueryBuilder#in),[`hasSome()`](wix-bookings.v2.Services.ServicesQueryBuilder#hasSome)|", + "|`name`|[`eq()`](wix-bookings.v2.Services.ServicesQueryBuilder#eq),[`ne()`](wix-bookings.v2.Services.ServicesQueryBuilder#ne),[`exists()`](wix-bookings.v2.Services.ServicesQueryBuilder#exists),[`in()`](wix-bookings.v2.Services.ServicesQueryBuilder#in),[`hasSome()`](wix-bookings.v2.Services.ServicesQueryBuilder#hasSome),[`startsWith()`](wix-bookings.v2.Services.ServicesQueryBuilder#startsWith)|", + "|`description`|[`eq()`](wix-bookings.v2.Services.ServicesQueryBuilder#eq),[`ne()`](wix-bookings.v2.Services.ServicesQueryBuilder#ne),[`exists()`](wix-bookings.v2.Services.ServicesQueryBuilder#exists),[`in()`](wix-bookings.v2.Services.ServicesQueryBuilder#in),[`hasSome()`](wix-bookings.v2.Services.ServicesQueryBuilder#hasSome),[`startsWith()`](wix-bookings.v2.Services.ServicesQueryBuilder#startsWith)|", + "|`tagLine`|[`eq()`](wix-bookings.v2.Services.ServicesQueryBuilder#eq),[`ne()`](wix-bookings.v2.Services.ServicesQueryBuilder#ne),[`exists()`](wix-bookings.v2.Services.ServicesQueryBuilder#exists),[`in()`](wix-bookings.v2.Services.ServicesQueryBuilder#in),[`hasSome()`](wix-bookings.v2.Services.ServicesQueryBuilder#hasSome),[`startsWith()`](wix-bookings.v2.Services.ServicesQueryBuilder#startsWith)|", + "|`hidden`|[`eq()`](wix-bookings.v2.Services.ServicesQueryBuilder#eq),[`ne()`](wix-bookings.v2.Services.ServicesQueryBuilder#ne),[`exists()`](wix-bookings.v2.Services.ServicesQueryBuilder#exists),[`in()`](wix-bookings.v2.Services.ServicesQueryBuilder#in),[`hasSome()`](wix-bookings.v2.Services.ServicesQueryBuilder#hasSome)|", + "|`category.id`|[`eq()`](wix-bookings.v2.Services.ServicesQueryBuilder#eq),[`ne()`](wix-bookings.v2.Services.ServicesQueryBuilder#ne),[`exists()`](wix-bookings.v2.Services.ServicesQueryBuilder#exists),[`in()`](wix-bookings.v2.Services.ServicesQueryBuilder#in),[`hasSome()`](wix-bookings.v2.Services.ServicesQueryBuilder#hasSome),[`startsWith()`](wix-bookings.v2.Services.ServicesQueryBuilder#startsWith)|", + "|`category.name`|[`eq()`](wix-bookings.v2.Services.ServicesQueryBuilder#eq),[`ne()`](wix-bookings.v2.Services.ServicesQueryBuilder#ne),[`exists()`](wix-bookings.v2.Services.ServicesQueryBuilder#exists),[`in()`](wix-bookings.v2.Services.ServicesQueryBuilder#in),[`hasSome()`](wix-bookings.v2.Services.ServicesQueryBuilder#hasSome),[`startsWith()`](wix-bookings.v2.Services.ServicesQueryBuilder#startsWith)|", + "|`form.id`|[`eq()`](wix-bookings.v2.Services.ServicesQueryBuilder#eq),[`ne()`](wix-bookings.v2.Services.ServicesQueryBuilder#ne),[`exists()`](wix-bookings.v2.Services.ServicesQueryBuilder#exists),[`in()`](wix-bookings.v2.Services.ServicesQueryBuilder#in),[`hasSome()`](wix-bookings.v2.Services.ServicesQueryBuilder#hasSome),[`startsWith()`](wix-bookings.v2.Services.ServicesQueryBuilder#startsWith)|", + "|`form.mobileSettings.hidden`|[`eq()`](wix-bookings.v2.Services.ServicesQueryBuilder#eq),[`ne()`](wix-bookings.v2.Services.ServicesQueryBuilder#ne),[`exists()`](wix-bookings.v2.Services.ServicesQueryBuilder#exists),[`in()`](wix-bookings.v2.Services.ServicesQueryBuilder#in),[`hasSome()`](wix-bookings.v2.Services.ServicesQueryBuilder#hasSome)|", + "|`payment.custom.description`|[`eq()`](wix-bookings.v2.Services.ServicesQueryBuilder#eq),[`ne()`](wix-bookings.v2.Services.ServicesQueryBuilder#ne),[`exists()`](wix-bookings.v2.Services.ServicesQueryBuilder#exists),[`in()`](wix-bookings.v2.Services.ServicesQueryBuilder#in),[`hasSome()`](wix-bookings.v2.Services.ServicesQueryBuilder#hasSome),[`startsWith()`](wix-bookings.v2.Services.ServicesQueryBuilder#startsWith)|", + "|`onlineBooking.enabled`|[`eq()`](wix-bookings.v2.Services.ServicesQueryBuilder#eq),[`ne()`](wix-bookings.v2.Services.ServicesQueryBuilder#ne),[`exists()`](wix-bookings.v2.Services.ServicesQueryBuilder#exists),[`in()`](wix-bookings.v2.Services.ServicesQueryBuilder#in),[`hasSome()`](wix-bookings.v2.Services.ServicesQueryBuilder#hasSome)|", + "|`staffMembersIds`|[`eq()`](wix-bookings.v2.Services.ServicesQueryBuilder#eq),[`ne()`](wix-bookings.v2.Services.ServicesQueryBuilder#ne),[`exists()`](wix-bookings.v2.Services.ServicesQueryBuilder#exists),[`in()`](wix-bookings.v2.Services.ServicesQueryBuilder#in),[`hasSome()`](wix-bookings.v2.Services.ServicesQueryBuilder#hasSome),[`hasAll()`](wix-bookings.v2.Services.ServicesQueryBuilder#hasAll)|", + "|`locations.type`|[`eq()`](wix-bookings.v2.Services.ServicesQueryBuilder#eq),[`ne()`](wix-bookings.v2.Services.ServicesQueryBuilder#ne),[`exists()`](wix-bookings.v2.Services.ServicesQueryBuilder#exists),[`in()`](wix-bookings.v2.Services.ServicesQueryBuilder#in),[`hasSome()`](wix-bookings.v2.Services.ServicesQueryBuilder#hasSome)|", + "|`locations.calculatedAddress.streetAddress.name`|[`eq()`](wix-bookings.v2.Services.ServicesQueryBuilder#eq),[`ne()`](wix-bookings.v2.Services.ServicesQueryBuilder#ne),[`exists()`](wix-bookings.v2.Services.ServicesQueryBuilder#exists),[`in()`](wix-bookings.v2.Services.ServicesQueryBuilder#in),[`hasSome()`](wix-bookings.v2.Services.ServicesQueryBuilder#hasSome),[`startsWith()`](wix-bookings.v2.Services.ServicesQueryBuilder#startsWith)|", + "|`locations.business.name`|[`eq()`](wix-bookings.v2.Services.ServicesQueryBuilder#eq),[`ne()`](wix-bookings.v2.Services.ServicesQueryBuilder#ne),[`exists()`](wix-bookings.v2.Services.ServicesQueryBuilder#exists),[`in()`](wix-bookings.v2.Services.ServicesQueryBuilder#in),[`hasSome()`](wix-bookings.v2.Services.ServicesQueryBuilder#hasSome),[`startsWith()`](wix-bookings.v2.Services.ServicesQueryBuilder#startsWith)|", + "|`bookingPolicy.name`|[`eq()`](wix-bookings.v2.Services.ServicesQueryBuilder#eq),[`ne()`](wix-bookings.v2.Services.ServicesQueryBuilder#ne),[`exists()`](wix-bookings.v2.Services.ServicesQueryBuilder#exists),[`in()`](wix-bookings.v2.Services.ServicesQueryBuilder#in),[`hasSome()`](wix-bookings.v2.Services.ServicesQueryBuilder#hasSome),[`startsWith()`](wix-bookings.v2.Services.ServicesQueryBuilder#startsWith)|", + "|`bookingPolicy.customPolicyDescription.description`|[`eq()`](wix-bookings.v2.Services.ServicesQueryBuilder#eq),[`ne()`](wix-bookings.v2.Services.ServicesQueryBuilder#ne),[`exists()`](wix-bookings.v2.Services.ServicesQueryBuilder#exists),[`in()`](wix-bookings.v2.Services.ServicesQueryBuilder#in),[`hasSome()`](wix-bookings.v2.Services.ServicesQueryBuilder#hasSome),[`startsWith()`](wix-bookings.v2.Services.ServicesQueryBuilder#startsWith)|", + "|`supportedSlugs.name`|[`eq()`](wix-bookings.v2.Services.ServicesQueryBuilder#eq),[`ne()`](wix-bookings.v2.Services.ServicesQueryBuilder#ne),[`exists()`](wix-bookings.v2.Services.ServicesQueryBuilder#exists),[`in()`](wix-bookings.v2.Services.ServicesQueryBuilder#in),[`hasSome()`](wix-bookings.v2.Services.ServicesQueryBuilder#hasSome),[`startsWith()`](wix-bookings.v2.Services.ServicesQueryBuilder#startsWith)|", + "|`mainSlug.name`|[`eq()`](wix-bookings.v2.Services.ServicesQueryBuilder#eq),[`ne()`](wix-bookings.v2.Services.ServicesQueryBuilder#ne),[`exists()`](wix-bookings.v2.Services.ServicesQueryBuilder#exists),[`in()`](wix-bookings.v2.Services.ServicesQueryBuilder#in),[`hasSome()`](wix-bookings.v2.Services.ServicesQueryBuilder#hasSome),[`startsWith()`](wix-bookings.v2.Services.ServicesQueryBuilder#startsWith)|", + "|`seoData.tags.type`|[`eq()`](wix-bookings.v2.Services.ServicesQueryBuilder#eq),[`ne()`](wix-bookings.v2.Services.ServicesQueryBuilder#ne),[`exists()`](wix-bookings.v2.Services.ServicesQueryBuilder#exists),[`in()`](wix-bookings.v2.Services.ServicesQueryBuilder#in),[`hasSome()`](wix-bookings.v2.Services.ServicesQueryBuilder#hasSome),[`startsWith()`](wix-bookings.v2.Services.ServicesQueryBuilder#startsWith)|" + ], + "examples": [ + { + "title": "Query services with default settings ", + "body": [ + "", + "import { services } from 'wix-bookings.v2';", + "", + "export async function queryServices() {", + " const result = await services.queryServices().find().items;", + " return result;", + "}", + "" + ], + "extra": { + "description": "Query services without any filters. The defaults are a `limit` of 100, and an `offset` of 0." + } + }, + { + "title": "Filter services by category ID", + "body": [ + "", + "import { services } from 'wix-bookings.v2';", + "", + "export async function filterServicesByCategoryId(categoryId) {", + " const result = await services.queryServices()", + " .eq(\"category.id\", categoryId)", + " .find()", + " .items", + " return result;", + "}", + "" + ] + }, + { + "title": "Sort services alphabetically by name ", + "body": [ + "", + "import { services } from 'wix-bookings.v2';", + "", + "export async function getServicesSorted() {", + " const result = await services.queryServices()", + " .ascending(\"name\")", + " .find()", + " .items", + " return result;", + "}", + "" + ] + }, + { + "title": "Filter services by `mainSlug.name` ", + "body": [ + "", + "import { path } from 'wix-location';", + "import { services } from 'wix-bookings.v2';", + "", + "export async function getServiceFromPath() {", + " const [serviceNameInUrl] = path;", + " const response = await services.queryServices()", + " .eq(\"mainSlug.name\", serviceNameInUrl)", + " .limit(1)", + " .find()", + " return response.items[0];", + "}", + "" + ], + "extra": { + "description": "Using the `path` from the `url`, filter and retrieve the relevant service." + } + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + } + ], + "messages": [ + { + "name": "ActionEvent", + "members": [ + { + "name": "bodyAsJson", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "AddStaffMembersToServiceRequest", + "members": [ + { + "name": "serviceId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the service to add the staff members to." + }, + { + "name": "staffMembersIds", + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "IDs of the staff members to add to the service." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "AddStaffMembersToServiceResponse", + "members": [ + { + "name": "staffMembers", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Services.StaffMember" + } + ] + } + } + ], + "doc": "The added staff members." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Address", + "members": [ + { + "name": "addressLine", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Main address line, usually street and number as free text." + }, + { + "name": "addressLine1", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Main address line, usually street and number as free text." + }, + { + "name": "city", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "City name." + }, + { + "name": "country", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "2-letter country code in an [ISO-3166 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format." + }, + { + "name": "postalCode", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Postal or zip code." + }, + { + "name": "streetAddress", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.StreetAddress" + } + ], + "doc": "Street name and number." + }, + { + "name": "subdivision", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Code for a subdivision (such as state, prefecture, or province) in [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2) format." + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfAddressStreetOneOf", + "members": [ + "addressLine", + "streetAddress" + ] + } + ] + }, + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "AddressLocation", + "members": [ + { + "name": "latitude", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Address latitude." + }, + { + "name": "longitude", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Address longitude." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "AddressStreetOneOf", + "members": [ + { + "name": "addressLine", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Main address line, usually street and number as free text." + }, + { + "name": "streetAddress", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.StreetAddress" + } + ], + "doc": "Street name and number." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "AvailabilityConstraints", + "members": [ + { + "name": "sessionDurations", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "number" + } + ] + } + } + ], + "doc": "A list of duration options for sessions, in minutes.\n\nThe availability calculation generates slots for sessions with these durations, unless there is a conflict with existing sessions or other availability constraints exist.\nRequired for services of type `APPOINTMENT` to allow the customer to book a session of the service. Not relevant for other service types.\n\n\nMin: 1 minute\n" + }, + { + "name": "timeBetweenSessions", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "The number of minutes between the end of a session and the start of the next.\n\nMin: 0 minutes\nMax: 720 minutes\n" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "BookAfterStartPolicy", + "members": [ + { + "name": "enabled", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether booking is allowed after the start of the schedule. When `true`,\ncustomers can book after the start of the schedule.\n\nDefault: `false`\n" + } + ], + "docs": { + "description": [ + "The policy for whether a session can be booked after the start of the schedule.\nThis policy and `LimitLateBookingPolicy` cannot be enabled at the same time. So if this policy\nis enabled, the `LimitLateBookingPolicy` policy must be disabled." + ] + } + }, + { + "name": "BookingPolicy", + "members": [ + { + "name": "_createdDate", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "Date and time the policy was created." + }, + { + "name": "_id", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The ID to the policy for the booking." + }, + { + "name": "_updatedDate", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "Date and time the policy was updated." + }, + { + "name": "bookAfterStartPolicy", + "readOnly": true, + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.BookAfterStartPolicy" + } + ], + "doc": "Policy on booking an entity after the start of the schedule." + }, + { + "name": "cancellationPolicy", + "readOnly": true, + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.CancellationPolicy" + } + ], + "doc": "Policy for canceling a booked entity." + }, + { + "name": "customPolicyDescription", + "readOnly": true, + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.PolicyDescription" + } + ], + "doc": "Custom description for the policy. This policy is displayed to the participant." + }, + { + "name": "default", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the policy is the default for the meta site." + }, + { + "name": "limitEarlyBookingPolicy", + "readOnly": true, + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.LimitEarlyBookingPolicy" + } + ], + "doc": "Policy for limiting early bookings." + }, + { + "name": "limitLateBookingPolicy", + "readOnly": true, + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.LimitLateBookingPolicy" + } + ], + "doc": "Policy for limiting late bookings." + }, + { + "name": "name", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Name of the policy." + }, + { + "name": "participantsPolicy", + "readOnly": true, + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.ParticipantsPolicy" + } + ], + "doc": "Policy regarding the participants per booking." + }, + { + "name": "reschedulePolicy", + "readOnly": true, + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.ReschedulePolicy" + } + ], + "doc": "Policy for rescheduling a booked entity." + }, + { + "name": "revision", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Revision number, which increments by 1 each time the policy is updated. To prevent conflicting changes, the existing revision must be used when updating a policy." + }, + { + "name": "waitlistPolicy", + "readOnly": true, + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.WaitlistPolicy" + } + ], + "doc": "Waitlist policy for the service." + } + ], + "docs": { + "description": [ + "`BookingPolicy` is the main entity of `BookingPolicyService` and specifies a set of rules for booking a service\nby visitors and members." + ] + } + }, + { + "name": "BusinessLocationOptions", + "members": [ + { + "name": "_id", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Business location ID." + }, + { + "name": "address", + "readOnly": true, + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.Address" + } + ], + "doc": "Business location address. The address is derived from the business location and is read-only." + }, + { + "name": "default", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether this is the default location. There can only be 1 default location per site. The default location can't be archived." + }, + { + "name": "name", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Business location name." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "CancellationPolicy", + "members": [ + { + "name": "enabled", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether canceling a booking is allowed. When `true`, customers\ncan cancel the booking.\n\nDefault: `false`\n" + }, + { + "name": "latestCancellationInMinutes", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Minimum number of minutes before the start of the booked session that the booking can be canceled.\n\nDefault: 1440 minutes (1 day)\nMin: 1 minute\n" + }, + { + "name": "limitLatestCancellation", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether there is a limit on the latest cancellation time. When `true`,\na time limit is enforced.\n\nDefault: `false`\n" + } + ], + "docs": { + "description": [ + "The policy for canceling a booked session." + ] + } + }, + { + "name": "Category", + "members": [ + { + "name": "_id", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Category ID. Read-only." + }, + { + "name": "customProperties", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Record", + "typeParams": [ + { + "nativeType": "string" + }, + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Custom properties that can be associated with the category." + }, + { + "name": "name", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Category name." + }, + { + "name": "sortOrder", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Sorting order of the category for Wix Bookings UI." + }, + { + "name": "status", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Category status Read-only." + } + ], + "docs": { + "description": [ + "Categories are used to group multiple services together. A service must be associated with a category in order to be exposed in the Wix Bookings UI." + ] + } + }, + { + "name": "CategoryNotification", + "members": [ + { + "name": "category", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.Category" + } + ], + "doc": "" + }, + { + "name": "event", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Supported values:\n- `'Created'`\n- `'Deleted'`\n- `'Updated'`" + } + ], + "docs": { + "description": [ + "An event sent every time a category entity is changed." + ] + } + }, + { + "name": "Conferencing", + "members": [ + { + "name": "enabled", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether a conference link is generated for the service's sessions." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ConnectPricingPlansToServiceRequest", + "members": [ + { + "name": "pricingPlansIds", + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "IDs of the pricing plans to connect to the service." + }, + { + "name": "serviceId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the service to add the pricing plans to." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ConnectPricingPlansToServiceResponse", + "members": [ + { + "name": "pricingPlansIds", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "IDs of the pricing plans connect to the service." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "CountServicesOptions", + "members": [ + { + "name": "filter", + "optional": true, + "type": [ + { + "nativeType": "Object" + } + ], + "doc": "The filters for performing the count." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "CountServicesRequest", + "members": [ + { + "name": "filter", + "optional": true, + "type": [ + { + "nativeType": "Object" + } + ], + "doc": "The filters for performing the count." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "CountServicesResponse", + "members": [ + { + "name": "count", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "The number of services matching the given filter." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "CreateServiceRequest", + "members": [ + { + "name": "service", + "type": [ + { + "referenceType": "wix-bookings-v2.Services.Service" + } + ], + "doc": "Service to be created." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "CreateServiceResponse", + "members": [ + { + "name": "service", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.Service" + } + ], + "doc": "The created service." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "CursorPaging", + "members": [ + { + "name": "cursor", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Pointer to the next or previous page in the list of results.\n\nYou can get the relevant cursor token\nfrom the `pagingMetadata` object in the previous call's response.\nNot relevant for the first request.\n" + }, + { + "name": "limit", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Number of items to load." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Cursors", + "members": [ + { + "name": "next", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Cursor pointing to next page in the list of results." + }, + { + "name": "prev", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Cursor pointing to previous page in the list of results." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "CustomLocationOptions", + "members": [ + { + "name": "address", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.Address" + } + ], + "doc": "A custom address for the location." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "CustomPayment", + "members": [ + { + "name": "description", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "A custom description explaining to the customer how to pay for the service." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "DeleteServiceOptions", + "members": [ + { + "name": "revision", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The revision of the service." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "DeleteServiceRequest", + "members": [ + { + "name": "revision", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The revision of the service." + }, + { + "name": "serviceId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the service to delete." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "DeleteServiceResponse", + "members": [], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "DisconnectPricingPlansFromServiceOptions", + "members": [ + { + "name": "pricingPlansIds", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "ID of the pricing plans to disconnect from the service." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "DisconnectPricingPlansFromServiceRequest", + "members": [ + { + "name": "pricingPlansIds", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "ID of the pricing plans to disconnect from the service." + }, + { + "name": "serviceId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the service to disconnect the pricing plans from." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "DisconnectPricingPlansFromServiceResponse", + "members": [], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "DomainEvent", + "members": [ + { + "name": "_id", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "random GUID so clients can tell if event was already handled" + }, + { + "name": "actionEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.ActionEvent" + } + ], + "doc": "" + }, + { + "name": "createdEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.EntityCreatedEvent" + } + ], + "doc": "" + }, + { + "name": "deletedEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.EntityDeletedEvent" + } + ], + "doc": "" + }, + { + "name": "entityEventSequence", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "A sequence number defining the order of updates to the underlying entity.\nFor example, given that some entity was updated at 16:00 and than again at 16:01,\nit is guaranteed that the sequence number of the second update is strictly higher than the first.\nAs the consumer, you can use this value to ensure that you handle messages in the correct order.\nTo do so, you will need to persist this number on your end, and compare the sequence number from the\nmessage against the one you have stored. Given that the stored number is higher, you should ignore the message." + }, + { + "name": "entityFqdn", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Assumes actions are also always typed to an entity_type\nExample: wix.stores.catalog.product, wix.bookings.session, wix.payments.transaction" + }, + { + "name": "entityId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Assuming that all messages including Actions have id\nExample: The id of the specific order, the id of a specific campaign" + }, + { + "name": "eventTime", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "The time of the event. Useful if there was a delay in dispatching" + }, + { + "name": "extendedFieldsUpdatedEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.ExtendedFieldsUpdatedEvent" + } + ], + "doc": "" + }, + { + "name": "originatedFrom", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "If present, indicates the action that triggered the event." + }, + { + "name": "slug", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "This is top level to ease client code dispatching of messages (switch on entity_fqdn+slug)\nThis is although the created/updated/deleted notion is duplication of the oneof types\nExample: created/updated/deleted/started/completed/email_opened" + }, + { + "name": "triggeredByAnonymizeRequest", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "A field that should be set if this event was triggered by an anonymize request.\nFor example you must set it to true when sending an event as a result of a GDPR right to be forgotten request.\nNOTE: This field is not relevant for `EntityCreatedEvent` but is located here for better ergonomics of consumers." + }, + { + "name": "updatedEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.EntityUpdatedEvent" + } + ], + "doc": "" + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfDomainEventBodyOneOf", + "members": [ + "actionEvent", + "createdEvent", + "deletedEvent", + "extendedFieldsUpdatedEvent", + "updatedEvent" + ] + } + ] + }, + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "DomainEventBodyOneOf", + "members": [ + { + "name": "actionEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.ActionEvent" + } + ], + "doc": "" + }, + { + "name": "createdEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.EntityCreatedEvent" + } + ], + "doc": "" + }, + { + "name": "deletedEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.EntityDeletedEvent" + } + ], + "doc": "" + }, + { + "name": "extendedFieldsUpdatedEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.ExtendedFieldsUpdatedEvent" + } + ], + "doc": "" + }, + { + "name": "updatedEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.EntityUpdatedEvent" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Empty", + "members": [], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "EntityCreatedEvent", + "members": [ + { + "name": "entityAsJson", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "EntityDeletedEvent", + "members": [], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "EntityUpdatedEvent", + "members": [ + { + "name": "currentEntityAsJson", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Since platformized APIs only expose PATCH and not PUT we can't assume that the fields sent from the client are the actual diff.\nThis means that to generate a list of changed fields (as opposed to sent fields) one needs to traverse both objects.\nWe don't want to impose this on all developers and so we leave this traversal to the notification recipients which need it." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ExtendedFields", + "members": [ + { + "name": "namespaces", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Record", + "typeParams": [ + { + "nativeType": "string" + }, + { + "nativeType": "Object" + } + ] + } + } + ], + "doc": "Data Extensions extended fields\nKey: Namespace\nValue: extended fields data in Struct format" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ExtendedFieldsUpdatedEvent", + "members": [ + { + "name": "currentEntityAsJson", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "FixedPayment", + "members": [ + { + "name": "deposit", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.Money" + } + ], + "doc": "The deposit price required to book the service.\n\nRequired when: `rateType` is `FIXED` and `paymentOptions.deposit` is `true`\n" + }, + { + "name": "price", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.Money" + } + ], + "doc": "The fixed price required to book the service.\n\nRequired when: `rateType` is `FIXED`\n" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Form", + "members": [ + { + "name": "_id", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the form associated with the service.\nForm information submitted when booking, including contact details, participants, and other form fields, set up for the service." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "FormSettings", + "members": [ + { + "name": "hidden", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the service booking form should be hidden from the site." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "GetServiceRequest", + "members": [ + { + "name": "serviceId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the service to retrieve." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "GetServiceResponse", + "members": [ + { + "name": "service", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.Service" + } + ], + "doc": "The retrieved service." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "InvalidPricingPlan", + "members": [ + { + "name": "_id", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The invalid pricing plan id." + }, + { + "name": "message", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The reason for the pricing plan considered as invalid" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "InvalidStaffMember", + "members": [ + { + "name": "_id", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The invalid staff member id." + }, + { + "name": "message", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The reason for the staff member considered as invalid" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Keyword", + "members": [ + { + "name": "isMain", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the keyword is the main focus keyword." + }, + { + "name": "term", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Keyword value." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "LimitEarlyBookingPolicy", + "members": [ + { + "name": "earliestBookingInMinutes", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Maximum number of minutes before the start of the session that a booking can be made. This value must be greater\nthan `latest_booking_in_minutes` in the `LimitLateBookingPolicy` policy.\n\nDefault: 10080 minutes (7 days)\nMin: 1 minute\n" + }, + { + "name": "enabled", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether there is a limit on how early a customer\ncan book. When `false`, there is no limit on the earliest\nbooking time and customers can book in advance, as early as they like.\n\nDefault: `false`\n" + } + ], + "docs": { + "description": [ + "The policy for limiting early bookings." + ] + } + }, + { + "name": "LimitLateBookingPolicy", + "members": [ + { + "name": "enabled", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether there is a limit on how late a customer\ncan book. When `false`, there is no limit on the latest\nbooking time and customers can book up to the last minute.\n\nDefault: `false`\n" + }, + { + "name": "latestBookingInMinutes", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Minimum number of minutes before the start of the session that a booking can be made.\nFor a schedule, this is relative to the start time of the next booked session, excluding past-booked sessions.\nThis value must be less than `earliest_booking_in_minutes` in the `LimitEarlyBookingPolicy` policy.\n\nDefault: 1440 minutes (1 day)\nMin: 1 minute\n" + } + ], + "docs": { + "description": [ + "The policy for limiting late bookings." + ] + } + }, + { + "name": "Location", + "members": [ + { + "name": "business", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.BusinessLocationOptions" + } + ], + "doc": "The service is offered at the referenced business location." + }, + { + "name": "calculatedAddress", + "readOnly": true, + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.Address" + } + ], + "doc": "The location address, based on the location `type`. If `type` is `CUSTOMER`, this address is empty." + }, + { + "name": "custom", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.CustomLocationOptions" + } + ], + "doc": "The service is offered at a custom location." + }, + { + "name": "type", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The type of location:\n- `CUSTOM`: The location is specific to this service, and is not derived from the business location.\n- `BUSINESS`: A business location, as defined for the by the Business Info [Locations API](https://www.wix.com/velo/reference/wix-business-tools-v2/locations).\n- `CUSTOMER`: Will be determined by the customer. For appointments only." + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfLocationOptionsOneOf", + "members": [ + "business", + "custom" + ] + } + ] + }, + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "LocationOptionsOneOf", + "members": [ + { + "name": "business", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.BusinessLocationOptions" + } + ], + "doc": "The service is offered at the referenced business location." + }, + { + "name": "custom", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.CustomLocationOptions" + } + ], + "doc": "The service is offered at a custom location." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Media", + "members": [ + { + "name": "coverMedia", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.MediaItem" + } + ], + "doc": "Cover media associated with the service." + }, + { + "name": "items", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Services.MediaItem" + } + ] + } + } + ], + "doc": "Media items associated with the service." + }, + { + "name": "mainMedia", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.MediaItem" + } + ], + "doc": "Primary media associated with the service." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "MediaItem", + "members": [ + { + "name": "image", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Details of the image associated with the service, such as URL and size." + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfMediaItemItemOneOf", + "members": [ + "image" + ] + } + ] + }, + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "MediaItemItemOneOf", + "members": [ + { + "name": "image", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Details of the image associated with the service, such as URL and size." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Money", + "members": [ + { + "name": "currency", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Currency code. Must be valid ISO 4217 currency code (e.g., USD)." + }, + { + "name": "formattedValue", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Monetary amount. Decimal string in local format (e.g., 1 000,30). Optionally, a single (-), to indicate that the amount is negative." + }, + { + "name": "value", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "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." + } + ], + "docs": { + "description": [ + "Money.\nDefault format to use. Sufficiently compliant with majority of standards: w3c, ISO 4217, ISO 20022, ISO 8583:2003." + ] + } + }, + { + "name": "OnlineBooking", + "members": [ + { + "name": "allowMultipleRequests", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Multiple customers can request to book the same time slot. Relevant when `requireManualApproval` is `true`." + }, + { + "name": "enabled", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether this service can be booked online.\nWhen set to `true`, customers can book the service online. Configuring the payment options is done via `service.payment` property.\nWhen set to `false`, customers cannot book the service online, and the service can only be paid for in person." + }, + { + "name": "requireManualApproval", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Booking the service requires approval by the business owner." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Paging", + "members": [ + { + "name": "limit", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Number of items to load." + }, + { + "name": "offset", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Number of items to skip in the current sort order." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "PagingMetadataV2", + "members": [ + { + "name": "count", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Number of items returned in the response." + }, + { + "name": "cursors", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.Cursors" + } + ], + "doc": "Cursors to navigate through the result pages using `next` and `prev`. Returned if cursor paging is used." + }, + { + "name": "offset", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Offset that was requested." + }, + { + "name": "tooManyToCount", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Flag that indicates the server failed to calculate the `total` field." + }, + { + "name": "total", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Total number of items that match the query. Returned if offset paging is used and the `tooManyToCount` flag is not set." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ParticipantsPolicy", + "members": [ + { + "name": "enabled", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the maximum number of participants applies. When `false`, there is\nno maximum.\n\nDefault: `false`\n" + }, + { + "name": "maxParticipantsPerBooking", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Maximum number of participants allowed.\n\nDefault: 1 participant\nMin: 1 participant\n" + } + ], + "docs": { + "description": [ + "The policy for the maximum number of participants per booking." + ] + } + }, + { + "name": "Payment", + "members": [ + { + "name": "custom", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.CustomPayment" + } + ], + "doc": "The details for the custom price of the service.\n\nRequired when: `rateType` is `CUSTOM`\n" + }, + { + "name": "fixed", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.FixedPayment" + } + ], + "doc": "The details for the fixed price of the service.\n\nRequired when: `rateType` is `FIXED`\n" + }, + { + "name": "options", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.PaymentOptions" + } + ], + "doc": "The payment options a customer can use to pay for the service." + }, + { + "name": "pricingPlansIds", + "readOnly": true, + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "IDs of pricing plans that can be used as payment for the service." + }, + { + "name": "rateType", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The rate the customer is expected to pay for the service.\nCan be:\n- `FIXED`: The service has a fixed price.\n- `CUSTOM`: The service has a custom price, expressed as a price description.\n- `VARIED`: This service is offered with a set of different prices based on different terms.\n- `NO_FEE`: This service is offered free of charge." + }, + { + "name": "varied", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.VariedPayment" + } + ], + "doc": "The details for the varied pricing of the service.\nRead more about [varied price options](https://support.wix.com/en/article/wix-bookings-about-getting-paid-online#offering-varied-price-options).\n\nRequired when: `rateType` is `VARIED`\n" + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfPaymentRateOneOf", + "members": [ + "custom", + "fixed", + "varied" + ] + } + ] + }, + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "PaymentOptions", + "members": [ + { + "name": "deposit", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "This service requires a deposit to be made online in order to book it.\nWhen `true`:\n+ `rateType` must be `VARIED` or `FIXED`.\n+ A `deposit` must be specified." + }, + { + "name": "inPerson", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Customers can pay for the service in person." + }, + { + "name": "online", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Customers can pay for the service online.\nWhen `true`:\n+ `rateType` must be either `FIXED` or `VARIED`.\n+ `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)." + }, + { + "name": "pricingPlan", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Customers can pay for the service using a pricing plan." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "PaymentRateOneOf", + "members": [ + { + "name": "custom", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.CustomPayment" + } + ], + "doc": "The details for the custom price of the service.\n\nRequired when: `rateType` is `CUSTOM`\n" + }, + { + "name": "fixed", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.FixedPayment" + } + ], + "doc": "The details for the fixed price of the service.\n\nRequired when: `rateType` is `FIXED`\n" + }, + { + "name": "varied", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.VariedPayment" + } + ], + "doc": "The details for the varied pricing of the service.\nRead more about [varied price options](https://support.wix.com/en/article/wix-bookings-about-getting-paid-online#offering-varied-price-options).\n\nRequired when: `rateType` is `VARIED`\n" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "PolicyDescription", + "members": [ + { + "name": "description", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The description to display.\n\nDefault: Empty\nMax length: 1000 characters\n" + }, + { + "name": "enabled", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the description should be displayed. If `true`, the description is displayed.\n\nDefault: `false`\n" + } + ], + "docs": { + "description": [ + "A description of the policy to display to participants." + ] + } + }, + { + "name": "QueryServicesRequest", + "members": [ + { + "name": "query", + "type": [ + { + "referenceType": "wix-bookings-v2.Services.QueryV2" + } + ], + "doc": "WQL expression." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "QueryServicesResponse", + "members": [ + { + "name": "pagingMetadata", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.PagingMetadataV2" + } + ], + "doc": "Paging metadata, including offset and count." + }, + { + "name": "services", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Services.Service" + } + ] + } + } + ], + "doc": "The retrieved services." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "QueryV2", + "members": [ + { + "name": "fields", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Array of projected fields. A list of specific field names to return. If `fieldsets` are also specified, the union of `fieldsets` and `fields` is returned." + }, + { + "name": "fieldsets", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Array of named, predefined sets of projected fields. A array of predefined named sets of fields to be returned. Specifying multiple `fieldsets` will return the union of fields from all sets. If `fields` are also specified, the union of `fieldsets` and `fields` is returned." + }, + { + "name": "filter", + "optional": true, + "type": [ + { + "nativeType": "Object" + } + ], + "doc": "Filter object in the following format:\n\n`\"filter\" : {\n\"fieldName1\": \"value1\",\n\"fieldName2\":{\"$operator\":\"value2\"}\n}`\n\nExample of operators: `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`, `$in`, `$hasSome`, `$hasAll`, `$startsWith`, `$contains`\n\nRead more about [supported fields and operators](https://dev.wix.com/api/rest/wix-bookings/services-v2/filtering-and-sorting).\n" + }, + { + "name": "paging", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.Paging" + } + ], + "doc": "Paging options to limit and skip the number of items." + }, + { + "name": "sort", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Services.Sorting" + } + ] + } + } + ], + "doc": "Sort object in the following format:\n`[ {\"fieldName\":\"sortField1\",\"order\":\"ASC\"},\n{\"fieldName\":\"sortField2\",\"order\":\"DESC\"} ]`\n\nRead more about [sorting](https://dev.wix.com/api/rest/wix-bookings/services-v2/filtering-and-sorting#wix-bookings_services-v2_filtering-and-sorting_sorting).\n" + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfQueryV2PagingMethodOneOf", + "members": [ + "cursorPaging", + "paging" + ] + } + ] + }, + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "QueryV2PagingMethodOneOf", + "members": [ + { + "name": "paging", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.Paging" + } + ], + "doc": "Paging options to limit and skip the number of items." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "RemoveStaffMembersFromServiceOptions", + "members": [ + { + "name": "staffMembersIds", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "IDs of the staff members to remove from the service." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "RemoveStaffMembersFromServiceRequest", + "members": [ + { + "name": "serviceId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the service to remove the staff members from." + }, + { + "name": "staffMembersIds", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "IDs of the staff members to remove from the service." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "RemoveStaffMembersFromServiceResponse", + "members": [], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ReschedulePolicy", + "members": [ + { + "name": "enabled", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether rescheduling a booking is allowed. When `true`, customers\ncan reschedule the booking.\n\nDefault: `false`\n" + }, + { + "name": "latestRescheduleInMinutes", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Minimum number of minutes before the start of the booked session that the booking can be rescheduled.\n\nDefault: 1440 minutes (1 day)\nMin: 1 minute\n" + }, + { + "name": "limitLatestReschedule", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether there is a limit on the latest reschedule time. When `true`,\na time limit is enforced.\n\nDefault: `false`\n" + } + ], + "docs": { + "description": [ + "The policy for rescheduling a booked session." + ] + } + }, + { + "name": "Schedule", + "members": [ + { + "name": "_id", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Schedule ID, used to manage the service's sessions." + }, + { + "name": "availabilityConstraints", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.AvailabilityConstraints" + } + ], + "doc": "Limitations dictating the way session availability is calculated. For appointments only." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "SeoSchema", + "members": [ + { + "name": "settings", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.Settings" + } + ], + "doc": "SEO general settings." + }, + { + "name": "tags", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Services.Tag" + } + ] + } + } + ], + "doc": "SEO tag information." + } + ], + "docs": { + "description": [ + "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.\nThe search engines use this information for ranking purposes, or to display snippets in the search results.\nThis data will override other sources of tags (for example patterns) and will be included in the section of the HTML document, while not being displayed on the page itself." + ] + } + }, + { + "name": "Service", + "members": [ + { + "name": "_createdDate", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "Date and time the service was created." + }, + { + "name": "_id", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Service ID." + }, + { + "name": "_updatedDate", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "Date and time the service was updated." + }, + { + "name": "bookingPolicy", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.BookingPolicy" + } + ], + "doc": "Policy 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." + }, + { + "name": "category", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.V2Category" + } + ], + "doc": "The category the service is associated with." + }, + { + "name": "conferencing", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.Conferencing" + } + ], + "doc": "Conferencing options for this service." + }, + { + "name": "defaultCapacity", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Default maximum number of customers that can book the service. The service cannot be booked beyond this capacity." + }, + { + "name": "description", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Service description, such as `High-class hair styling, cuts, straightening and color.`" + }, + { + "name": "form", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.Form" + } + ], + "doc": "The form used when booking the service." + }, + { + "name": "hidden", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the service is hidden from the site." + }, + { + "name": "locations", + "readOnly": true, + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Services.Location" + } + ] + } + } + ], + "doc": "The locations this service is offered at. For courses only: Currently, only 1 location is supported." + }, + { + "name": "mainSlug", + "readOnly": true, + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.Slug" + } + ], + "doc": "The main slug for the service. `mainSlug` is either taken from the current service name or is a custom slug set by the business owner.\n`mainSlug` is used to construct the service's URLs." + }, + { + "name": "media", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.Media" + } + ], + "doc": "Media associated with the service." + }, + { + "name": "name", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Service name." + }, + { + "name": "onlineBooking", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.OnlineBooking" + } + ], + "doc": "Online booking settings." + }, + { + "name": "payment", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.Payment" + } + ], + "doc": "Payment options for booking the service." + }, + { + "name": "revision", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Revision number, which increments by 1 each time the service is updated. To prevent conflicting changes, the existing revision must be used when updating a service." + }, + { + "name": "schedule", + "readOnly": true, + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.Schedule" + } + ], + "doc": "The service's schedule, which can be used to manage the service's sessions." + }, + { + "name": "seoData", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.SeoSchema" + } + ], + "doc": "Custom SEO data for the service." + }, + { + "name": "sortOrder", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Order of a service within a category." + }, + { + "name": "staffMembersIds", + "readOnly": true, + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "IDs of the staff members providing the service. For appointments only." + }, + { + "name": "supportedSlugs", + "readOnly": true, + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Services.Slug" + } + ] + } + } + ], + "doc": "A slug is the last part of the URL address that serves as a unique identifier of the service.\nThe list of supported slugs includes past service names for backwards compatibility, and a custom slug if one was set by the business owner." + }, + { + "name": "tagLine", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Short service description, such as `Hair styling.`" + }, + { + "name": "type", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Service type." + }, + { + "name": "urls", + "readOnly": true, + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.URLs" + } + ], + "doc": "URLs to various service-related pages, such as the calendar page and the booking page." + } + ], + "docs": { + "description": [ + "The `Service` object represents the business offering that a business provides to its customers." + ] + } + }, + { + "name": "SetCustomSlugRequest", + "members": [ + { + "name": "serviceId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the service to assign the custom slug to." + }, + { + "name": "slugName", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The custom name to set as the active slug for the service." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "SetCustomSlugResponse", + "members": [ + { + "name": "slug", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.Slug" + } + ], + "doc": "The new slug set as the active slug for the service." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Settings", + "members": [ + { + "name": "keywords", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Services.Keyword" + } + ] + } + } + ], + "doc": "User-selected keyword terms for a specific page." + }, + { + "name": "preventAutoRedirect", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the Auto Redirect feature, which creates `301 redirects` on a slug change, is enabled.\n\nDefault: `false` (Auto Redirect is enabled.)\n" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Slug", + "members": [ + { + "name": "_createdDate", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "Date and time the slug was created. This is a system field." + }, + { + "name": "custom", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "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." + }, + { + "name": "name", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "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`." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Sorting", + "members": [ + { + "name": "fieldName", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Name of the field to sort by." + }, + { + "name": "order", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Sort order." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "StaffMember", + "members": [ + { + "name": "_id", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Staff member id, can be used to retrieve resource information using wix-bookings-backend resources API." + }, + { + "name": "description", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Staff member's description." + }, + { + "name": "email", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Staff member's email address." + }, + { + "name": "phone", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Staff member's phone number." + }, + { + "name": "schedules", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Services.Schedule" + } + ] + } + } + ], + "doc": "Staff member's schedules" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "StreetAddress", + "members": [ + { + "name": "apt", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Apartment number." + }, + { + "name": "name", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Street name." + }, + { + "name": "number", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Street number." + } + ], + "docs": { + "description": [ + "Street address. Includes street name, number, and apartment number in separate fields." + ] + } + }, + { + "name": "Tag", + "members": [ + { + "name": "children", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "SEO tag inner content. For example, ` inner content `." + }, + { + "name": "custom", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the tag is a custom tag." + }, + { + "name": "disabled", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the tag is disabled." + }, + { + "name": "meta", + "optional": true, + "type": [ + { + "nativeType": "Object" + } + ], + "doc": "SEO tag meta data. For example, `{height: 300, width: 240}`." + }, + { + "name": "props", + "optional": true, + "type": [ + { + "nativeType": "Object" + } + ], + "doc": "A `{'key':'value'}` pair object where each SEO tag property (`'name'`, `'content'`, `'rel'`, `'href'`) contains a value.\nFor example: `{'name': 'description', 'content': 'the description itself'}`." + }, + { + "name": "type", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "SEO tag type.\n\nSupported values: `title`, `meta`, `script`, `link`.\n" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "URLs", + "members": [ + { + "name": "bookingPage", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The URL for the booking entry point. It can be either to the calendar or to the service page." + }, + { + "name": "calendarPage", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The URL for the calendar. Can be empty if no calendar exists." + }, + { + "name": "servicePage", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The URL for the service page." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "UpdateService", + "members": [ + { + "name": "_createdDate", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "Date and time the service was created." + }, + { + "name": "_id", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Service ID." + }, + { + "name": "_updatedDate", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "Date and time the service was updated." + }, + { + "name": "bookingPolicy", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.BookingPolicy" + } + ], + "doc": "Policy 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." + }, + { + "name": "category", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.V2Category" + } + ], + "doc": "The category the service is associated with." + }, + { + "name": "conferencing", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.Conferencing" + } + ], + "doc": "Conferencing options for this service." + }, + { + "name": "defaultCapacity", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Default maximum number of customers that can book the service. The service cannot be booked beyond this capacity." + }, + { + "name": "description", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Service description, such as `High-class hair styling, cuts, straightening and color.`" + }, + { + "name": "form", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.Form" + } + ], + "doc": "The form used when booking the service." + }, + { + "name": "hidden", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the service is hidden from the site." + }, + { + "name": "locations", + "readOnly": true, + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Services.Location" + } + ] + } + } + ], + "doc": "The locations this service is offered at. For courses only: Currently, only 1 location is supported." + }, + { + "name": "mainSlug", + "readOnly": true, + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.Slug" + } + ], + "doc": "The main slug for the service. `mainSlug` is either taken from the current service name or is a custom slug set by the business owner.\n`mainSlug` is used to construct the service's URLs." + }, + { + "name": "media", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.Media" + } + ], + "doc": "Media associated with the service." + }, + { + "name": "name", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Service name." + }, + { + "name": "onlineBooking", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.OnlineBooking" + } + ], + "doc": "Online booking settings." + }, + { + "name": "payment", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.Payment" + } + ], + "doc": "Payment options for booking the service." + }, + { + "name": "revision", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Revision number, which increments by 1 each time the service is updated. To prevent conflicting changes, the existing revision must be used when updating a service." + }, + { + "name": "schedule", + "readOnly": true, + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.Schedule" + } + ], + "doc": "The service's schedule, which can be used to manage the service's sessions." + }, + { + "name": "seoData", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.SeoSchema" + } + ], + "doc": "Custom SEO data for the service." + }, + { + "name": "sortOrder", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Order of a service within a category." + }, + { + "name": "staffMembersIds", + "readOnly": true, + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "IDs of the staff members providing the service. For appointments only." + }, + { + "name": "supportedSlugs", + "readOnly": true, + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Services.Slug" + } + ] + } + } + ], + "doc": "A slug is the last part of the URL address that serves as a unique identifier of the service.\nThe list of supported slugs includes past service names for backwards compatibility, and a custom slug if one was set by the business owner." + }, + { + "name": "tagLine", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Short service description, such as `Hair styling.`" + }, + { + "name": "type", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Service type." + }, + { + "name": "urls", + "readOnly": true, + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.URLs" + } + ], + "doc": "URLs to various service-related pages, such as the calendar page and the booking page." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "UpdateServiceOptions", + "members": [ + { + "name": "mask", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Explicit list of fields to update." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "UpdateServiceRequest", + "members": [ + { + "name": "mask", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Explicit list of fields to update." + }, + { + "name": "service", + "type": [ + { + "referenceType": "wix-bookings-v2.Services.Service" + } + ], + "doc": "Service to update. [Partial updates](https://dev.wix.com/api/rest/wix-bookings/bookings/patch-endpoints-and-field-masks-in-update-requests) are supported." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "UpdateServiceResponse", + "members": [ + { + "name": "service", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.Service" + } + ], + "doc": "The updated service." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "V2Category", + "members": [ + { + "name": "_id", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Category ID." + }, + { + "name": "name", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Category name." + }, + { + "name": "sortOrder", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Order of a category within a category list." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ValidateSlugRequest", + "members": [ + { + "name": "slugName", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The custom name to validate as a slug for the service." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ValidateSlugResponse", + "members": [ + { + "name": "errors", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "If the slug is invalid, this field is populated with the reasons why the slug is invalid. Validation errors may include `SLUG_IS_TOO_LONG`, `SLUG_CONTAIN_ILLEGAL_CHARACTERS`, and `SLUG_ALREADY_EXISTS`." + }, + { + "name": "slugName", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The requested custom slug name to validate. If valid, the slug name can be set as a slug for the service and is populated with the requested slug. Otherwise, `slugName` is empty." + }, + { + "name": "valid", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the requested slug name is valid." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "VariedPayment", + "members": [ + { + "name": "defaultPrice", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.Money" + } + ], + "doc": "The default price for the service without any variants. It will also be used as the default price for any new variant." + }, + { + "name": "deposit", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.Money" + } + ], + "doc": "The deposit price required to book the service.\n\nRequired when: `rateType` is `VARIED` and `paymentOptions.deposit` is `true`\n" + }, + { + "name": "maxPrice", + "readOnly": true, + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.Money" + } + ], + "doc": "The maximum price a customer may pay for this service, based on its variants." + }, + { + "name": "minPrice", + "readOnly": true, + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Services.Money" + } + ], + "doc": "The minimal price a customer may pay for this service, based on its variants." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "WaitlistPolicy", + "members": [ + { + "name": "capacity", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Number of spots available in the waitlist.\n\nDefault: 10 spots\nMin: 1 spot\n" + }, + { + "name": "enabled", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the session has a waitlist. If `true`, there is a waitlist.\n\nDefault: `false`\n" + }, + { + "name": "reservationTimeInMinutes", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Amount of time a participant is given to book, once notified that a spot is available.\n\nDefault: 10 minutes\nMin: 1 spot\n" + } + ], + "docs": { + "description": [ + "The policy for the waitlist." + ] + } + } + ] +} diff --git a/wix-bookings-v2/wix-bookings-v2/Services/ServicesQueryBuilder.service.json b/wix-bookings-v2/wix-bookings-v2/Services/ServicesQueryBuilder.service.json new file mode 100644 index 0000000000..d097244f20 --- /dev/null +++ b/wix-bookings-v2/wix-bookings-v2/Services/ServicesQueryBuilder.service.json @@ -0,0 +1,832 @@ +{ + "name": "ServicesQueryBuilder", + "memberOf": "wix-bookings-v2.Services", + "mixes": [], + "callbacks": [], + "extra": {}, + "clientId": "wix-bookings.v2-service.services.services-query-builder", + "docs": {}, + "relatedGuides": [], + "properties": [], + "operations": [ + { + "name": "ascending", + "params": [ + { + "name": "propertyNames", + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Properties used in the sort. To sort by multiple properties, pass properties as additional arguments.", + "required": false + } + ], + "requiredFields": [], + "ret": { + "type": [ + { + "referenceType": "wix-bookings-v2.Services.ServicesQueryBuilder" + } + ], + "doc": null + }, + "docs": { + "description": [] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "descending", + "params": [ + { + "name": "propertyNames", + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Properties used in the sort. To sort by multiple properties, pass properties as additional arguments.", + "required": false + } + ], + "requiredFields": [], + "ret": { + "type": [ + { + "referenceType": "wix-bookings-v2.Services.ServicesQueryBuilder" + } + ], + "doc": null + }, + "docs": { + "description": [] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "eq", + "params": [ + { + "name": "propertyName", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Property whose value is compared with `value`.", + "required": false + }, + { + "name": "value", + "type": [ + { + "nativeType": "any" + } + ], + "doc": "Value to compare against.", + "required": false + } + ], + "requiredFields": [], + "ret": { + "type": [ + { + "referenceType": "wix-bookings-v2.Services.ServicesQueryBuilder" + } + ], + "doc": null + }, + "docs": { + "summary": "Refines a query to match items where the specified property equals the specified value.", + "description": [ + "The `eq()` function refines a `ServicesQueryBuilder` to match only items where the value of the specified `propertyName` equals the specified `value`.", + "`eq()` matches only values of the same type. For example, `0` stored as a number doesn't match `'0'` stored as a string.", + "Matching strings with `eq()` is case-sensitive, so `'text'` isn't equal to `'Text'`." + ], + "examples": [ + { + "title": "Add an `eq` filter to a query", + "body": [ + "const query = services.queryServices.eq('_id', '\"some-id\"');", + "" + ] + }, + { + "title": "Create a query, add an `eq` filter, and run it", + "body": [ + "import { services } from 'wix-bookings.v2';", + "", + "export async function myQueryFunction() {", + " const results = await services.queryServices().eq('_id', '\"some-id\"').find();", + "", + " if (results.items.length > 0) {", + " const items = results.items;", + " const firstItem = items[0];", + " const pageSize = results.pageSize;", + " const hasNext = results.hasNext();", + " const hasPrev = results.hasPrev();", + " const length = results.length;", + " const query = results.query;", + "", + " return items;", + " } else {", + " // Handle if no matching items found", + " }", + "}", + "" + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "exists", + "params": [ + { + "name": "propertyName", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "", + "required": false + }, + { + "name": "value", + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "", + "required": false + } + ], + "requiredFields": [], + "ret": { + "type": [ + { + "referenceType": "wix-bookings-v2.Services.ServicesQueryBuilder" + } + ], + "doc": null + }, + "docs": { + "summary": "", + "description": [], + "examples": [] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "find", + "params": [], + "requiredFields": [], + "ret": { + "type": [ + { + "complexType": { + "nativeType": "Promise", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Services.ServicesQueryResult" + } + ] + } + } + ], + "doc": null + }, + "docs": { + "summary": "Returns the filtered query results.", + "description": [ + "The `find()` function returns a Promise that resolves to the query results and metadata.", + "The Promise is rejected if `find()` is called with insufficient permissions or if any of the previous functions used to refine the query are invalid." + ], + "examples": [ + { + "title": "Run a query with no filters", + "body": [ + "const query = services.queryServices.find();", + "" + ] + }, + { + "title": "Perform a `find` on a query", + "body": [ + "import { services } from 'wix-bookings.v2';", + "", + "export async function myQueryFunction() {", + " const results = await services.queryServices().find();", + "", + " if (results.items.length > 0) {", + " const items = results.items;", + " const firstItem = items[0];", + " const pageSize = results.pageSize;", + " const hasNext = results.hasNext();", + " const hasPrev = results.hasPrev();", + " const length = results.length;", + " const query = results.query;", + "", + " return items;", + " } else {", + " // Handle if no matching items found", + " }", + "}", + "" + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "hasAll", + "params": [ + { + "name": "propertyName", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Property whose value is compared with `values`.", + "required": false + }, + { + "name": "value", + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "any" + } + ] + } + } + ], + "doc": "", + "required": false + } + ], + "requiredFields": [], + "ret": { + "type": [ + { + "referenceType": "wix-bookings-v2.Services.ServicesQueryBuilder" + } + ], + "doc": null + }, + "docs": { + "summary": "Refines a query to match items whose specified property contains all of the specified values.", + "description": [ + "The `hasAll()` function refines a `ServicesQueryBuilder` to match only items where the value of the specified `propertyName` equals all of the specified `values`.", + "Matching strings with `hasAll()` is case-sensitive, so `'text'` isn't equal to `'Text'`.", + "If the specified property is an array, `hasAll()` matches if that array's elements match all of the specified values." + ], + "examples": [ + { + "title": "Add a `hasAll` filter to a query", + "body": [ + "const query = services.queryServices.hasAll('labelIds', [", + " 'red',", + " 'blue',", + " 'purple',", + "]);", + "" + ] + }, + { + "title": "Create a query, add a `hasAll` filter, and run it", + "body": [ + "import { services } from 'wix-bookings.v2';", + "", + "export async function myQueryFunction() {", + " const results = await services", + " .queryServices()", + " .hasAll('labelIds', ['red', 'blue', 'purple'])", + " .find();", + "", + " if (results.items.length > 0) {", + " const items = results.items;", + " const firstItem = items[0];", + " const pageSize = results.pageSize;", + " const hasNext = results.hasNext();", + " const hasPrev = results.hasPrev();", + " const length = results.length;", + " const query = results.query;", + "", + " return items;", + " } else {", + " // Handle if no matching items found", + " }", + "}", + "" + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "hasSome", + "params": [ + { + "name": "propertyName", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Property whose value is compared with `values`.", + "required": false + }, + { + "name": "value", + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "any" + } + ] + } + } + ], + "doc": "", + "required": false + } + ], + "requiredFields": [], + "ret": { + "type": [ + { + "referenceType": "wix-bookings-v2.Services.ServicesQueryBuilder" + } + ], + "doc": null + }, + "docs": { + "summary": "Refines a query to match items whose specified property contains any of the specified values.", + "description": [ + "The `hasSome()` function refines a `ServicesQueryBuilder` to match only items where the value of the specified `propertyName` equals any of the specified `values`.", + "Matching strings with `hasSome()` is case-sensitive, so `'text'` isn't equal to `'Text'`.", + "If the specified property is an array, `hasSome()` matches if any of that array's elements equal any of the specified values." + ], + "examples": [ + { + "title": "Add a `hasSome` filter to a query", + "body": [ + "const query = services.queryServices.hasSome('labelIds', [", + " 'red',", + " 'blue',", + " 'purple',", + "]);", + "" + ] + }, + { + "title": "Create a query, add a `hasSome` filter, and run it", + "body": [ + "import { services } from 'wix-bookings.v2';", + "", + "export async function myQueryFunction() {", + " const results = await services", + " .queryServices()", + " .hasSome('labelIds', ['red', 'blue', 'purple'])", + " .find();", + "", + " if (results.items.length > 0) {", + " const items = results.items;", + " const firstItem = items[0];", + " const pageSize = results.pageSize;", + " const hasNext = results.hasNext();", + " const hasPrev = results.hasPrev();", + " const length = results.length;", + " const query = results.query;", + "", + " return items;", + " } else {", + " // Handle if no matching items found", + " }", + "}", + "" + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "in", + "params": [ + { + "name": "propertyName", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "", + "required": false + }, + { + "name": "value", + "type": [ + { + "nativeType": "any" + } + ], + "doc": "", + "required": false + } + ], + "requiredFields": [], + "ret": { + "type": [ + { + "referenceType": "wix-bookings-v2.Services.ServicesQueryBuilder" + } + ], + "doc": null + }, + "docs": { + "summary": "", + "description": [], + "examples": [] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "limit", + "params": [ + { + "name": "limit", + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Number of items to return, which is also the `pageSize` of the results object.", + "required": false + } + ], + "requiredFields": [], + "ret": { + "type": [ + { + "referenceType": "wix-bookings-v2.Services.ServicesQueryBuilder" + } + ], + "doc": null + }, + "docs": { + "summary": "Limits the number of items the query returns.", + "description": [ + "The `limit()` function defines the number of results a query returns in each page. Only one page of results is retrieved at a time.", + "You can use the `next()` and `prev()` functions to navigate the pages of a query result." + ], + "examples": [ + { + "title": "Add a `limit` to a query", + "body": [ + "const query = services.queryServices.limit(10);", + "" + ] + }, + { + "title": "Create a query, add a `limit`, and run it", + "body": [ + "import { services } from 'wix-bookings.v2';", + "", + "export async function myQueryFunction() {", + " const results = await services.queryServices().limit(10).find();", + "", + " if (results.items.length > 0) {", + " const items = results.items;", + " const firstItem = items[0];", + " const pageSize = results.pageSize;", + " const hasNext = results.hasNext();", + " const hasPrev = results.hasPrev();", + " const length = results.length;", + " const query = results.query;", + "", + " return items;", + " } else {", + " // Handle if no matching items found", + " }", + "}", + "" + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "ne", + "params": [ + { + "name": "propertyName", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Property whose value is compared with `value`.", + "required": false + }, + { + "name": "value", + "type": [ + { + "nativeType": "any" + } + ], + "doc": "Value to compare against.", + "required": false + } + ], + "requiredFields": [], + "ret": { + "type": [ + { + "referenceType": "wix-bookings-v2.Services.ServicesQueryBuilder" + } + ], + "doc": null + }, + "docs": { + "summary": "Refines a query to match items where the specified property doesn't equal the specified value.", + "description": [ + "The `ne()` function refines a `ServicesQueryBuilder` to match only items where the value of the specified `propertyName` doesn't equal the specified `value`.", + "`ne()` matches only values of the same type. For example, `0` stored as a number doesn't match `'0'` stored as a string.", + "Matching strings with `ne()` is case-sensitive, so `'text'` isn't equal to `'Text'`." + ], + "examples": [ + { + "title": "Add an `ne` filter to a query", + "body": [ + "const query = services.queryServices.ne('_id', '\"some-id\"');", + "" + ] + }, + { + "title": "Create a query, add an `ne` filter, and run it", + "body": [ + "import { services } from 'wix-bookings.v2';", + "", + "export async function myQueryFunction() {", + " const results = await services.queryServices().ne('_id', '\"some-id\"').find();", + "", + " if (results.items.length > 0) {", + " const items = results.items;", + " const firstItem = items[0];", + " const pageSize = results.pageSize;", + " const hasNext = results.hasNext();", + " const hasPrev = results.hasPrev();", + " const length = results.length;", + " const query = results.query;", + "", + " return items;", + " } else {", + " // Handle if no matching items found", + " }", + "}", + "" + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "skip", + "params": [ + { + "name": "skip", + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Number of items to skip in the query results before returning the results.", + "required": false + } + ], + "requiredFields": [], + "ret": { + "type": [ + { + "referenceType": "wix-bookings-v2.Services.ServicesQueryBuilder" + } + ], + "doc": null + }, + "docs": { + "summary": "Sets the number of items to skip before returning query results.", + "description": [ + "The `skip()` function defines the number of results to skip before returning new query results.", + "For example, if you query a collection and 50 items match your query, but you set `skip()` to `10`, the first 10 items that match are ignored, and the 11th through 50th items are returned." + ], + "examples": [ + { + "title": "Add a `skip` to a query", + "body": [ + "const query = services.queryServices.skip(10);", + "" + ] + }, + { + "title": "Create a query, add a `skip`, and run it", + "body": [ + "import { services } from 'wix-bookings.v2';", + "", + "export async function myQueryFunction() {", + " const results = await services.queryServices().skip(10).find();", + "", + " if (results.items.length > 0) {", + " const items = results.items;", + " const firstItem = items[0];", + " const pageSize = results.pageSize;", + " const hasNext = results.hasNext();", + " const hasPrev = results.hasPrev();", + " const length = results.length;", + " const query = results.query;", + "", + " return items;", + " } else {", + " // Handle if no matching items found", + " }", + "}", + "" + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "startsWith", + "params": [ + { + "name": "propertyName", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Property whose value is compared with `string`.", + "required": false + }, + { + "name": "value", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "", + "required": false + } + ], + "requiredFields": [], + "ret": { + "type": [ + { + "referenceType": "wix-bookings-v2.Services.ServicesQueryBuilder" + } + ], + "doc": null + }, + "docs": { + "summary": "Refines a query to match items where the specified property starts with the specified value.", + "description": [ + "The `startsWith()` function refines a `ServicesQueryBuilder` to match only items where the value of the specified `propertyName` starts with the specified `string`.", + "Matching with `startsWith()` is case-insensitive, so `'TEXT'` starts with `'tex'`.", + "You can use `startsWith()` only with a property whose value is a string." + ], + "examples": [ + { + "title": "Add a `startsWith` filter to a query", + "body": [ + "const query = services.queryServices.startsWith('_id', 'L');", + "" + ] + }, + { + "title": "Create a query, add a `startsWith` filter, and run it", + "body": [ + "import { services } from 'wix-bookings.v2';", + "", + "export async function myQueryFunction() {", + " const results = await services.queryServices();", + " startsWith('_id', 'L').find();", + "", + " if (results.items.length > 0) {", + " const items = results.items;", + " const firstItem = items[0];", + " const pageSize = results.pageSize;", + " const hasNext = results.hasNext();", + " const hasPrev = results.hasPrev();", + " const length = results.length;", + " const query = results.query;", + "", + " return items;", + " } else {", + " // Handle if no matching items found", + " }", + "}", + "" + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + } + ], + "messages": [] +} diff --git a/wix-bookings-v2/wix-bookings-v2/Services/ServicesQueryResult.service.json b/wix-bookings-v2/wix-bookings-v2/Services/ServicesQueryResult.service.json new file mode 100644 index 0000000000..eaac9fc900 --- /dev/null +++ b/wix-bookings-v2/wix-bookings-v2/Services/ServicesQueryResult.service.json @@ -0,0 +1,492 @@ +{ + "name": "ServicesQueryResult", + "memberOf": "wix-bookings-v2.Services", + "mixes": [], + "callbacks": [], + "extra": {}, + "clientId": "wix-bookings.v2-service.services.services-query-result", + "docs": {}, + "relatedGuides": [], + "properties": [ + { + "name": "currentPage", + "type": [ + { + "nativeType": "number" + } + ], + "docs": { + "summary": "Returns the index of the current page of results.", + "description": [ + "`currentPage` is a zero-based index of the current page of results, meaning the 1st page is `0`, the 2nd page is `1`, and so on.", + "If no results match the query, `currentPage` is undefined.", + "The page size is defined by the [`limit()`](#limit) function and can be retrieved using the [`pageSize`](#pagesize) property. You can use the [`next()`](#next) and [`prev()`](#prev) functions returned by `services` to navigate the pages of a query result." + ], + "examples": [ + { + "title": "Get `currentPage` from a query result", + "body": [ + "const resultPage = results.currentPage;", + "" + ] + }, + { + "title": "Perform a query and get `currentPage` from the result", + "body": [ + "import { services } from 'wix-bookings.v2';", + "", + "export async function myQueryFunction() {", + " const results = await services.queryServices().find();", + "", + " return results.currentPage;", + "}", + "" + ] + } + ] + } + }, + { + "name": "items", + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Services.Service" + } + ] + } + } + ], + "docs": { + "summary": "Returns an array of `services` items that match the query.", + "description": [ + "`items` contains the current page of results retrieved by the query.", + "If no results match the query, `items` is an empty array.", + "The page size is defined by the [`limit()`](#limit) function and can be retrieved using the [`pageSize`](#pagesize) property. You can use the [`next()`](#next) and [`prev()`](#prev) functions returned by `services` to navigate the pages of a query result." + ], + "examples": [ + { + "title": "Get `items` from a query result", + "body": [ + "const returnedItems = results.items;", + "" + ] + }, + { + "title": "Perform a query and get `items` from the result", + "body": [ + "import { services } from 'wix-bookings.v2';", + "", + "export async function myQueryFunction() {", + " const results = await services.queryServices().find();", + "", + " const returnedItems = results.items;", + "", + " if (returnedItems.length > 0) {", + " return items;", + " } else {", + " // Handle if no matching items found", + " }", + "}", + "" + ] + } + ] + } + }, + { + "name": "length", + "type": [ + { + "nativeType": "number" + } + ], + "docs": { + "summary": "Returns the number of items in the current page of results.", + "description": [ + "`length` returns just the number of items in the current page, not the total number of items that match the query. For the total number of items that match the query, see [`totalCount`](#totalcount).", + "The page size is defined by the [`limit()`](#limit) function and can be retrieved using the [`pageSize`](#pagesize) property. You can use the [`next()`](#next) and [`prev()`](#prev) functions returned by `services` to navigate the pages of a query result." + ], + "examples": [ + { + "title": "Get `length` from a query result", + "body": [ + "const resultLength = results.length;", + "" + ] + }, + { + "title": "Perform a query and get `length` from the result", + "body": [ + "import { services } from 'wix-bookings.v2';", + "", + "export async function myQueryFunction() {", + " const results = await services.queryServices().find();", + "", + " return results.length;", + "}", + "" + ] + } + ] + } + }, + { + "name": "pageSize", + "type": [ + { + "nativeType": "number" + } + ], + "docs": { + "summary": "Returns the requested page size.", + "description": [ + "`pageSize` returns the page size set in [`limit()`](#limit) in `ServicesQueryBuilder`." + ], + "examples": [ + { + "title": "Get the query's page size", + "body": [ + "const requestedPageSize = results.pageSize;", + "" + ] + }, + { + "title": "Perform a query and get `pageSize` from the result", + "body": [ + "import { services } from 'wix-bookings.v2';", + "", + "export async function myQueryFunction() {", + " const results = await services.queryServices().find();", + "", + " return results.pageSize;", + "}", + "" + ] + } + ] + } + }, + { + "name": "query", + "type": [ + { + "referenceType": "wix-bookings-v2.Services.ServicesQueryBuilder" + } + ], + "docs": { + "summary": "Returns the `ServicesQueryBuilder` object used to get the current results.", + "description": [ + "Use `query` to create and run a new query by chaining additional `ServicesQueryBuilder` functions to it. You can filter only on properties that haven't already been used in the previous `ServicesQueryBuilder`." + ], + "examples": [ + { + "title": "Get `query` that produced the current result", + "body": [ + "const originalQuery = results.query;", + "" + ] + }, + { + "title": "Perform a query and get `query` from the result", + "body": [ + "import { services } from 'wix-bookings.v2';", + "", + "export async function myQueryFunction() {", + " const results = await services.queryServices().find();", + "", + " return results.query;", + "}", + "" + ] + } + ] + } + }, + { + "name": "totalCount", + "type": [ + { + "nativeType": "number" + } + ], + "docs": { + "summary": "Returns the total number of items that match the query.", + "description": [ + "`totalCount` returns the total number of items that match the query, not just the number of items in the current page. For the number of items in the current page, see [`length`](#length)." + ], + "examples": [ + { + "title": "Get `totalCount` from a query result", + "body": [ + "const resultCount = results.totalCount;", + "" + ] + }, + { + "title": "Perform a query and get `totalCount` from the result", + "body": [ + "import { services } from 'wix-bookings.v2';", + "", + "export async function myQueryFunction() {", + " const results = await services.queryServices().find();", + "", + " return results.totalCount;", + "}", + "" + ] + } + ] + } + }, + { + "name": "totalPages", + "type": [ + { + "nativeType": "number" + } + ], + "docs": { + "summary": "Returns the total number of pages the query produced.", + "description": [ + "The page size is defined by the [`limit()`](#limit) function and can be retrieved using the [`pageSize`](#pagesize) property. You can use the [`next()`](#next) and [`prev()`](#prev) functions returned by `services` to navigate the pages of a query result." + ], + "examples": [ + { + "title": "Get `totalPages` from a query result", + "body": [ + "const pageCount = results.totalPages;", + "" + ] + }, + { + "title": "Perform a query and get `totalPages` from the result", + "body": [ + "import { services } from 'wix-bookings.v2';", + "", + "export async function myQueryFunction() {", + " const results = await services.queryServices().find();", + "", + " return results.totalPages;", + "}", + "" + ] + } + ] + } + } + ], + "operations": [ + { + "name": "hasNext", + "params": [], + "requiredFields": [], + "ret": { + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": null + }, + "docs": { + "summary": "Indicates whether the query has more results.", + "description": [ + "You can use the [`next()`](#next) and [`prev()`](#prev) functions returned by `services` to navigate the pages of a query result." + ], + "examples": [ + { + "title": "Get whether the query has more results", + "body": [ + "const hasNext = results.hasNext();", + "" + ] + }, + { + "title": "Perform a query and get `hasNext` from the result", + "body": [ + "import { services } from 'wix-bookings.v2';", + "", + "export async function myQueryFunction() {", + " const results = await services.queryServices().find();", + "", + " return results.hasNext();", + "}", + "" + ] + } + ] + }, + "isVeloEvent": false + }, + { + "name": "hasPrev", + "params": [], + "requiredFields": [], + "ret": { + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": null + }, + "docs": { + "summary": "Indicates whether the query has previous results.", + "description": [ + "You can use the [`next()`](#next) and [`prev()`](#prev) functions returned by `services` to navigate the pages of a query result." + ], + "examples": [ + { + "title": "Get whether the query has previous results", + "body": [ + "const hasPrev = results.hasPrev();", + "" + ] + }, + { + "title": "Perform a query and get `hasPrev` from the result", + "body": [ + "import { services } from 'wix-bookings.v2';", + "", + "export async function myQueryFunction() {", + " const results = await services.queryServices().find();", + "", + " return results.hasPrev();", + "}", + "" + ] + } + ] + }, + "isVeloEvent": false + }, + { + "name": "next", + "params": [], + "requiredFields": [], + "ret": { + "type": [ + { + "complexType": { + "nativeType": "Promise", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Services.ServicesQueryResult" + } + ] + } + } + ], + "doc": null + }, + "docs": { + "summary": "Retrieves the next page of query results.", + "description": [ + "The `next()` function retrieves the next page of query results.", + "The page size is defined by the [`limit()`](#limit) function and can be retrieved using the [`pageSize`](#pagesize) property. You can use the [`next()`](#next) and [`prev()`](#prev) functions returned by `services` to navigate the pages of a query result.", + "If items are added or removed between calls to `next()`, the values returned by `ServicesQueryBuilder` may change." + ], + "examples": [ + { + "title": "Get `next` from a query result", + "body": [ + "const nextPage = results.next();", + "" + ] + }, + { + "title": "Perform a query and get `next` from the result", + "body": [ + "import { services } from 'wix-bookings.v2';", + "", + "export async function myQueryFunction() {", + " const results = await services.queryServices().find();", + "", + " return results.next();", + "}", + "" + ] + }, + { + "title": "Iterate through all pages of query results", + "body": [ + "import { services } from 'wix-bookings.v2';", + "", + "export async function myQueryFunction() {", + " let allItems = [];", + "", + " const results = await services.queryServices().limit(1000).find();", + " allItems.push(results.items);", + "", + " while (results.hasNext()) {", + " results = await results.next();", + " allItems.push(results.items);", + " }", + "", + " return allItems;", + "}", + "" + ] + } + ] + }, + "isVeloEvent": false + }, + { + "name": "prev", + "params": [], + "requiredFields": [], + "ret": { + "type": [ + { + "complexType": { + "nativeType": "Promise", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Services.ServicesQueryResult" + } + ] + } + } + ], + "doc": null + }, + "docs": { + "summary": "Retrieves the previous page of query results.", + "description": [ + "The `prev()` function retrieves the previous page of query results.", + "The page size is defined by the [`limit()`](#limit) function and can be retrieved using the [`pageSize`](#pagesize) property. You can use the [`next()`](#next) and [`prev()`](#prev) functions returned by `services` to navigate the pages of a query result.", + "If items are added or removed between calls to `prev()`, the values returned may change." + ], + "examples": [ + { + "title": "Get `prev` from a query result", + "body": [ + "const previousPage = results.prev();", + "" + ] + }, + { + "title": "Perform a query and get `prev` from the result", + "body": [ + "import { services } from 'wix-bookings.v2';", + "", + "export async function myQueryFunction() {", + " const results = await services.queryServices().find();", + "", + " return results.prev();", + "}", + "" + ] + } + ] + }, + "isVeloEvent": false + } + ], + "messages": [] +} diff --git a/wix-bookings-v2/wix-bookings-v2/Services/guides/Introduction.md b/wix-bookings-v2/wix-bookings-v2/Services/guides/Introduction.md new file mode 100644 index 0000000000..9759027eba --- /dev/null +++ b/wix-bookings-v2/wix-bookings-v2/Services/guides/Introduction.md @@ -0,0 +1,100 @@ +--- +title: Introduction +--- + +# About Wix Bookings Services + + +  + +
+ Developer Preview +
+ APIs in Developer Preview are subject to change and are not intended for use in production.
Send us your suggestions for improving this API. Your feedback is valuable to us.
+
+ +  + +> **Note:** This module is +> [universal](/api-overview/api-versions#universal-modules). +> Functions in this module can run on both the backend and frontend, +> unless specified otherwise. + +The Wix Bookings Services API enables you to retrieve the services your business offers. + +The service contains the information customers need to decide whether to book the business offering. This includes the type of offering (appointment, class, course), scheduling information, locations, booking policies (such as the latest possible time a session can be booked), payment information, and more. Creating and managing your services is the cornerstone for working with Wix Bookings. + +Once services are created, you can: + +- Use these Services APIs to retrieve information about the service(s), enabling you to make the information available to your customers. + +- Use other Bookings APIs to process customer bookings, manage schedules and calendars, check availability, and more. + +## More About Services + +A service is an online or in-person offering that a business provides to its customers, such as courses and private sessions. + +For example, a fitness studio may offer the following services: +- A 1-hour Pilates class +- A 30-minute 1-on-1 personal training session +- A 4-month Yoga course for instructors + +Alternatively, a hair salon may offer the following services: +- A 30-minute haircut appointment +- A 2-hour hair coloring appointment +- A 3-week hair styling course + +Services may differ in the offering they provide, but the API differentiates between 3 main types of services: + +- **Appointments**: An appointments is a 1-time session that can be booked and scheduled by a customer. The appointment takes place whenever a customer books a specific time slot. + + For example, a 30-minute haircut. + +- **Classes**: Recurring sessions of multiple participants scheduled by the business. Customers can book any session of the class. Classes can be scheduled on different days, at different times, with different resources, such as staff members. Customers can sign up for single sessions or a class's recurring sessions. + + For example, a language school offers a beginner's Spanish class every Monday at 8:00 PM. Customers can join the session they want and don't have to commit to attending all sessions. + +- **Courses**: A limited number of sessions for the same service that starts and ends on a particular day. Customers sign up for the entire course and not just one session. + + For example, a 12-session introductory course to Pilates, starting on February 1st and ending on March 17th. + + + +## Before You Begin + +- Before using the API, make sure to set up [Wix Bookings](https://support.wix.com/en/article/wix-bookings-about-wix-bookings) and [create the right services for your business](https://support.wix.com/en/article/creating-the-right-booking-service-for-your-business). + +- To use the Bookings Services API, import `{ services }` from the `wix-bookings.v2` module in your Velo code: + + ```javascript + import { services } from 'wix-bookings.v2'; + ``` + +## Terminology + +- **Booking**: Information about the service that the customer has booked. Includes details about the time, location, participants, and price. + +- **Schedule**: A collection of sessions that belong to the same class, course, appointment, or resource. Schedules also comprise available slots that can still be booked. Additional information required to calculate availability is also contained in a schedule. Read more about [schedules](https://dev.wix.com/api/rest/wix-bookings/schedules-and-sessions/introduction#wix-bookings_schedules-and-sessions_introduction_terminology). + + - **Appointment schedules**: The schedule determines when customers can book a session. Bookability is determined using the specified session's duration, the time between sessions, and the schedules of staff members who provide the service. + + For example, given the following scheduling criteria for a business offering haircuts, the schedule allows customers to book sessions from 9:00 to 17:30 with the possibility of booking a maximum of 9 sessions per day: + + - The business offers a 30-minute haircut service. + - The schedule allows customers to book 30-minute sessions with 30 minutes between each session. + - The staff members are available from 9:00 to 18:00. + + + - **Class and course schedules**: For classes and courses, the business decides when to schedule a session. This is in contrast to appointments, where the customer decides when to book a session. For classes and courses, the schedule is used to manage the available sessions and holds some aggregated information, such as the start time and end time of a course. + + +- **Session:** An occupied period of time in a schedule. A session is a term we use for any occupied period of time, whether that period is an appointment, class, or course. + + For example, if a “Vinyasa Yoga” class-type service is offered every Monday between 6-7pm, the class on Monday June 5, 2023 from 6-7pm is 1 session in a schedule. + + Therefore, sessions are the building blocks of appointments, classes, and courses. Each of these types of services comprise sessions. The collection of related sessions for a service represent the service's schedule. Read more [about sessions](https://dev.wix.com/api/rest/wix-bookings/schedules-and-sessions/introduction#wix-bookings_schedules-and-sessions_introduction_terminology). + +- **Slot**: An available period of time in a schedule that can be booked by a customer. While this includes existing sessions that are available for booking, it can also represent a period of time that can be booked based on the availability of a resource, such as a barber with appointments of 30 minutes each that are open for booking every weekday between 8:00 - 17:00. These slots are calculated according to the constraints of the schedule. + +- **Bookings Policy**: Terms the business wants to enforce when customers try to book a service. For example, how far in advance customers may book a service or until what point before the start of a session customers can cancel. + diff --git a/wix-bookings.v2/metadata.json b/wix-bookings.v2/metadata.json new file mode 100644 index 0000000000..3942f0bd65 --- /dev/null +++ b/wix-bookings.v2/metadata.json @@ -0,0 +1,7 @@ +{ + "name": "@wix/wix-bookings.v2", + "fingerprint": "5a97fad493cb9972710cb9e040d51b79d822d98d876aa5f70e98c22d", + "groupId": "com.wixpress.velo-autogen", + "artifactId": "wix-bookings-v2-velo-autogen", + "module": "wix-bookings.v2" +} diff --git a/wix-events-v2/wix-events-v2/Orders/guides/orders sort.md b/wix-events-v2/wix-events-v2/Orders/guides/orders sort.md new file mode 100644 index 0000000000..e28288bdb9 --- /dev/null +++ b/wix-events-v2/wix-events-v2/Orders/guides/orders sort.md @@ -0,0 +1,26 @@ +# Orders: Supported Sorting and Faceting + +Select functions allow sorting results by field. Use `field:asc` to sort results in **ascending** order, and `field:desc` to sort in **descending** order. + +For example, to sort orders by `created` date in ascending order, and then by `name` in descending order, use this format in the `options` parameter: + +```js +{ + sort: 'created:asc,name:desc' +} +``` + +The following table shows property support for sorting for the `Order` object: + +| Field | Sortable | Facetable | +|--------------------|----------|-----------| +| `created` | Sortable | | +| `name` | Sortable | | +| `score` | Sortable | | +| `orderNumber` | Sortable | | +| `status` | | Facetable | +| `archived` | | Facetable | +| `fullyCheckedIn` | | Facetable | + +__Related content:__ +[`listOrders`](/wix-events-v2/orders/listorders) \ No newline at end of file diff --git a/wix-events-v2/wix-events-v2/TicketDefinitions/guides/ticket definitions sort.md b/wix-events-v2/wix-events-v2/TicketDefinitions/guides/ticket definitions sort.md new file mode 100644 index 0000000000..90a9158fae --- /dev/null +++ b/wix-events-v2/wix-events-v2/TicketDefinitions/guides/ticket definitions sort.md @@ -0,0 +1,27 @@ +# Ticket Definitions: Supported Sorting and Faceting + +Select functions allow sorting results by field. Use `field:asc` to sort results in **ascending** order, and `field:desc` to sort in **descending** order. + +For example, to sort ticket definitions by `created` date in ascending order, and then by `modified` date in descending order, use this format in the `options` parameter: + +```js +{ + sort: 'created:asc,modified:desc' +} +``` + +The following table shows property support for sorting for the `Ticket Definition` object: + + +| Field | Sortable | Facetable | +|-----------------|----------|-----------| +| `created` | Sortable | | +| `modified` | Sortable | | +| `orderIndex` | Sortable | | +| `saleStatus` | | Facetable | +| `saleStartDate` | Sortable | | +| `saleEndDate` | Sortable | | +| `state` | | | + +__Related content:__ +[`listTicketDefinitions`](/wix-events-v2/ticketdefinitions/listticketdefinitions) \ No newline at end of file diff --git a/wix-events-v2/wix-events-v2/Tickets/guides/tickets sort.md b/wix-events-v2/wix-events-v2/Tickets/guides/tickets sort.md new file mode 100644 index 0000000000..382c75d4bd --- /dev/null +++ b/wix-events-v2/wix-events-v2/Tickets/guides/tickets sort.md @@ -0,0 +1,31 @@ +# Tickets: Supported Sorting and Faceting + +Select functions allow sorting results by field. Use `field:asc` to sort results in **ascending** order, and `field:desc` to sort in **descending** order. + +For example, to sort tickets by `price` in ascending order, and then by `guestFullName` in descending order, use this format in the `options` parameter: + + +```js +{ + sort: 'price:asc,guestFullName:desc' +} +``` + +The following table shows property support for sorting for the `Ticket` object: + + +| Field | Sortable | Facetable | +|-----------------|----------|-----------| +| `ticketNumber` | Sortable | | +| `orderStatus` | Sortable | | +| `price` | Sortable | | +| `orderFullName` | Sortable | | +| `guestFullName` | Sortable | | +| `score` | Sortable | | +| `free` | | Facetable | +| `archived` | | Facetable | +| `checkedIn` | | Facetable | +| `eventId` | | Facetable | + +__Related content:__ +[`listTickets`](/wix-events-v2/tickets/listtickets) \ No newline at end of file diff --git a/wix-router/wix-router.service.json b/wix-router/wix-router.service.json new file mode 100644 index 0000000000..f1c9ed729f --- /dev/null +++ b/wix-router/wix-router.service.json @@ -0,0 +1,1183 @@ +{ "name": "wix-router", + "mixes": [], + "labels": [], + "location": + { "lineno": 1, + "filename": "router.js" }, + "docs": + { "summary": "This module contains the APIs for code routers and data binding router hooks.", + "description": + [ "The Wix Router API allows you to handle certain incoming requests to your site's pages and sitemap and customize the responses.", + "", + "Some things you might do with the Router API are:", + " * Control the URL structure of your site.", + " * Customize your site's sitemap.", + " * Extend [dynamic pages](https://support.wix.com/en/article/content-manager-about-dynamic-pages) to include subpages that use different data.", + "", + "The API gives you access to the following:", + " * Requests to certain pages on your site and routing responses for those pages.", + " * Sitemap requests and responses.", + " * Hooks to control the flow of the data used to display pages returned by the router or sitemap. Hooks are often used when working with the code for [dynamic pages](https://support.wix.com/en/article/velo-about-data-hooks-for-dynamic-pages).", + "", + "Code using the Routers API is stored in the **routers.js** file in the backend code section the Velo Sidebar. You shouldn't create this file manually.", + "The file is created automatically when you [add a router](https://support.wix.com/en/article/velo-creating-a-router#add-a-router) to your site.", + "", + "To use the [`router()`](wix-router/router) and [`sitemap()`](wix-router/sitemap) functions in the **routers.js** file, use the following convention:", + "", + "```js", + "export function _()", + "```", + "", + "To import the other API functions into the **routers.js** file, use the following syntax:", + "", + "```js", + "import { } from 'wix-router';", + "```", + "", + "## Terminology", + "", + " * **Router**: Part of the code on your site that receives requests for specific URLs and handles which page is ", + " served and what data is included in that page.", + " * **Sitemap**: A model of a site's content structure, designed to help both users and search engines navigate the site.", + " * **Data binding router hooks**: Functions that run before, during, and after data is included in ", + " the pages that the router and sitemap functions return. Router hooks are often used when working with [dynamic pages](https://support.wix.com/en/article/velo-about-data-hooks-for-dynamic-pages). The API includes 4 hooks:", + " * [`beforeRouter`](wix-router/beforeRouter)", + " * [`customizeQuery`](wix-router/customizeQuery)", + " * [`afterRouter`](wix-router/afterRouter)", + " * [`afterSitemap`](wix-router/afterSitemap)" ], + "links": [], + "examples": [], + "extra": + { } }, + "properties": + [ { "name": "wixRouterSitemapEntry", + "labels": [], + "get": true, + "set": false, + "type": "wix-router.WixRouterSitemapEntry", + "locations": + [ { "lineno": 6, + "filename": "sitemap-entry.js" } ], + "docs": + { "links": [], + "examples": [], + "extra": + { } }, + "extra": + { } } ], + "operations": + [ { "name": "afterRouter", + "labels": [], + "nameParams": [], + "params": + [ { "name": "request", + "type": "wix-router.WixRouterRequest", + "doc": "The routing request." }, + { "name": "response", + "type": "wix-router.WixRouterResponse", + "doc": "The router response." } ], + "ret": + { "type": + { "name": "Promise", + "typeParams": + [ "wix-router.WixRouterResponse" ] }, + "doc": "Fulfilled - A router response, either the response received or a new response." }, + "locations": + [ { "lineno": 209, + "filename": "router.js" } ], + "docs": + { "summary": "Registers a hook that is called after a router.", + "description": + [ "The `afterRouter` hook is a data binding router hook that is triggered", + "after the router with the specified [prefix](#prefixes) has bound the data, but before", + "the page is displayed. The router can be a code router or the data binding", + "router that binds data to a dynamic page.", + "", + "The `afterRouter()` function is not a function that you call from your code.", + "You define the function in a file named **routers.js** in the Code File's Backend section of the [Velo Sidebar](https://support.wix.com/en/article/velo-working-with-the-site-structure-sidebar).", + "The function is called as described above.", + "", + "Use this hook with a code router to change the router's response based on the", + "data that was retrieved. For example, you can have two versions of a page,", + "one for portrait oriented images and another for landscape oriented ones.", + "After the image is pulled from the database, you can show the page that", + "corresponds to the image's orientation.", + "", + "The function receives a [`WixRouterRequest`](wix-router.WixRouterRequest.html)", + "object containing information about the incoming request and a [`WixRouterResponse`](wix-router.WixRouterResponse.html)", + "object containing information about the router's response.", + "", + "The function returns a [`WixRouterResponse`](wix-router.WixRouterResponse.html)", + "object that causes the router to respond with a specified page, specified data,", + "and a success response code, or respond with any other HTTP response code.", + "The returned response can be either the response received or a new response", + "that overrides the one received.", + "", + "If the function does not return a [`WixRouterResponse`](wix-router.WixRouterResponse.html),", + "the response received as the `response` parameter acts as the effective router response.", + "", + "Typically, the response is created using one of the [`ok()`](#ok),", + "[`forbidden()`](#forbidden), [`notFound()`](#notFound), [`redirect()`](#redirect),", + "or [`sendStatus()`](#sendStatus) functions." ], + "links": + [ "[ok()](#ok)", + "[forbidden()](#forbidden)", + "[notFound()](#notFound)", + "[redirect()](#redirect)", + "[sendStatus()](#sendStatus)" ], + "examples": + [ { "title": "After router stub", + "body": + [ "// In routers.js", + "", + "export function myRouter_afterRouter(request, response) {", + " // after router code ...", + "}", + "" ], + "extra": + { "description": "This example creates an after router hook on the `myRouter` prefix." } }, + { "title": "Basic after router hook", + "body": + [ "// In routers.js", + "", + "import {ok, forbidden} from 'wix-router';", + "", + "export function myRouter_afterRouter(request, response) {", + " if (some_condition)", + " return ok(\"different-page\", response.data, response.head);", + " else if (other_condition)", + " return response;", + " else", + " return forbidden();", + "}", + "" ], + "extra": + { "description": "This example creates an after router hook on the `myRouter` prefix that possibly\nreroutes the request depending on some conditions." } }, + { "title": "After router hook that reroutes based on response data", + "body": + [ "// In routers.js", + "", + "import {ok} from 'wix-router';", + "", + "export function myRouter_afterRouter(request, response) {", + " if(response.status === 200 && response.page === \"horizontal-pic\") {", + " if(response.data.picture.orientation === \"vertical\")", + " return ok(\"vertical-pic\", response.data, response.head);", + " else", + " return response;", + " }", + "", + " return response;", + "}", + "" ], + "extra": + { "description": "This example creates an after router hook on the `myRouter` prefix that checks\nthe orientation of a picture in the response's data and routes to a page that\nis built for displaying pictures in that orientation." } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "afterSitemap", + "labels": [], + "nameParams": [], + "params": + [ { "name": "request", + "type": "wix-router.WixRouterSitemapRequest", + "doc": "The sitemap request." }, + { "name": "sitemapEntries", + "type": + { "name": "Array", + "typeParams": + [ "wix-router.WixRouterSitemapEntry" ] }, + "doc": "The generated sitemap entries." } ], + "ret": + { "type": + { "name": "Promise", + "typeParams": + [ { "name": "Array", + "typeParams": + [ "wix-router.WixRouterSitemapEntry" ] } ] }, + "doc": "Fulfilled - A sitemapEntries array." }, + "locations": + [ { "lineno": 265, + "filename": "router.js" } ], + "docs": + { "summary": "Registers a hook that is called after a sitemap is created.", + "description": + [ "The `afterSitemap` hook is a data binding router hook that is triggered", + "after a sitemap is created for the specified router.", + "", + "The `afterSitemap()` function is not a function that you call from your code.", + "You define the function in a file named **routers.js** in the Code File's Backend section of the [Velo Sidebar](https://support.wix.com/en/article/velo-working-with-the-site-structure-sidebar).", + "The function is called as described above.", + "", + "Use this hook to revise the list of pages in your", + "sitemap. For example, you can add a search page's information to your sitemap.", + "", + "The function returns an array of [`WixRouterSitemapEntry`](wix-router.WixRouterSitemapEntry.html)", + "objects. Typically the returned array is a modified version of the one the", + "function received.", + "", + "If the function does not return a [`WixRouterSitemapEntry`](wix-router.WixRouterSitemapEntry.html)", + "array, the array received as the `sitemapEntries` parameter acts as the router's effective sitemap entries." ], + "links": [], + "examples": + [ { "title": "After sitemap stub", + "body": + [ "// In routers.js", + "", + "export function myRouter_afterSitemap(sitemapRequest, sitemapEntries) {", + " // after sitemap code ...", + "}", + "" ], + "extra": + { "description": "This example creates an after sitemap hook on the `myRouter` prefix." } }, + { "title": "Add a search page to the sitemap", + "body": + [ "// In routers.js", + "", + "import {WixRouterSitemapEntry} from 'wix-router';", + "", + "export function myRouter_afterSitemap(sitemapRequest, sitemapEntries) {", + " let prefix = sitemapRequest.prefix;", + " let entry = new WixRouterSitemapEntry(`${prefix}/search`);", + " sitemapEntries.push(entry);", + " return sitemapEntries;", + "}", + "" ], + "extra": + { "description": "This example creates an after sitemap hook on the `myRouter` prefix that adds\na search page to the sitemap. Note that the sitemap function only publishes a\nURL for the search page. To actually implement a page at this URL you can use\na `beforeRouter()` hook to check for the request for the search page URL and\nroute the user to a search page." } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "beforeRouter", + "labels": [], + "nameParams": [], + "params": + [ { "name": "request", + "type": "wix-router.WixRouterRequest", + "doc": "The routing request." } ], + "ret": + { "type": + { "name": "Promise", + "typeParams": + [ "wix-router.WixRouterResponse" ] }, + "doc": "Fulfilled - Which page to display, redirect to, or which HTTP status code to respond with." }, + "locations": + [ { "lineno": 161, + "filename": "router.js" } ], + "docs": + { "summary": "Registers a hook that is called before a router.", + "description": + [ "The `beforeRouter` hook is a data binding router hook that is triggered", + "before the router with the specified [prefix](#prefixes) has bound the data to the page.", + "The router can be a code router or the data binding router that binds data", + "to a dynamic page.", + "", + "The `beforeRouter()` function is not a function that you call from your code.", + "You define the function in a file named **routers.js** in the Code File's Backend section of the [Velo Sidebar](https://support.wix.com/en/article/velo-working-with-the-site-structure-sidebar).", + "The function is called as described above.", + "", + "Use this hook with a code router to route requests to a different page or return an error response.", + "For example, you can check who is requesting the page and then decide based on", + "the user's role whether to let the router continue to the next step or to return", + "an error type response code.", + "", + "The function receives a [`WixRouterRequest`](wix-router.WixRouterRequest.html)", + "object containing information about the incoming request.", + "", + "The function returns a [`WixRouterResponse`](wix-router.WixRouterResponse.html)", + "object that causes the router to continue its routing, or respond with an", + "HTTP response code.", + "", + "Typically, the response is created using one of the [`next()`](#next),", + "[`forbidden()`](#forbidden), [`notFound()`](#notFound), [`redirect()`](#redirect),", + "or [`sendStatus()`](#sendStatus) functions." ], + "links": + [ "[next()](#next)", + "[forbidden()](#forbidden)", + "[notFound()](#notFound)", + "[redirect()](#redirect)", + "[sendStatus()](#sendStatus)" ], + "examples": + [ { "title": "Before router stub", + "body": + [ "// In routers.js", + "", + "export function myRouter_beforeRouter(request) {", + " // before router code ...", + "}", + "" ], + "extra": + { "description": "This example creates a before router hook on the `myRouter` prefix." } }, + { "title": "Basic before router hook", + "body": + [ "// In routers.js", + "", + "import {forbidden, next} from 'wix-router';", + "", + "export function myRouter_beforeRouter(request) {", + " if (some_condition)", + " return next();", + " else", + " return forbidden();", + "}", + "" ], + "extra": + { "description": "This example creates a before router hook on the `myRouter` prefix that continues\nwith the request if `some_condition` is true and returns a 403 in all other cases." } }, + { "title": "Before router hook that restricts access based on user role", + "body": + [ "// In routers.js", + "", + "import {forbidden, next} from 'wix-router';", + "", + "export function myRouter_beforeRouter(request) {", + " if (request.path.length > 1 && request.path[0] === \"admin\") {", + " if (request.user && request.user.role == \"Admin\")", + " return next();", + " else", + " return forbidden();", + " }", + "", + " return next();", + "}", + "" ], + "extra": + { "description": "This example creates a before router hook on the `myRouter` prefix that continues\nwith the request as long as the path does not begin with `\"admin\"`. If it does,\nthe hook checks to see if the user is the site owner before continuing." } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "customizeQuery", + "labels": [], + "nameParams": [], + "params": + [ { "name": "request", + "type": "wix-router.WixRouterRequest", + "doc": "The routing request." }, + { "name": "route", + "type": "string", + "doc": "The resolved router URL pattern." }, + { "name": "query", + "type": "wix-data.WixDataQuery", + "doc": "The wix-data query." } ], + "ret": + { "type": "wix-data.WixDataQuery", + "doc": "A wix-data query." }, + "locations": + [ { "lineno": 300, + "filename": "router.js" } ], + "docs": + { "summary": "Registers a hook that is called after a route is resolved by the data binding router, but before the wix-data query is executed.", + "description": + [ "The `customizeQuery` hook is a data binding router hook that is triggered", + "before the data query is executed for the pages in the specified router.", + "", + "The `customizeQuery()` function is not a function that you call from your code.", + "You define the function in a file named **routers.js** in the Code File's Backend section of the [Velo Sidebar](https://support.wix.com/en/article/velo-working-with-the-site-structure-sidebar).", + "The function is called as described above.", + "", + "Use this hook to further refine or", + "change the query that will determine what data is bound to your page's", + "dataset. For example, you can filter the query to only return items that have", + "a `status` field set to `\"active\"`.", + "", + "The function returns a [`WixDataQuery`](wix-data.WixDataQuery.html) object.", + "Typically the returned query is a modified version of the one the", + "function received.", + "", + "The `customizeQuery()` hook is triggered when using dynamic pages, but not", + "when you code your own router." ], + "links": [], + "examples": + [ { "title": "Customize query stub", + "body": + [ "// In routers.js", + "", + "export function myRouter_customizeQuery(request, route, query) {", + " // customize query code ...", + "}", + "" ], + "extra": + { "description": "This example creates a customize query hook on the `myRouter` prefix." } }, + { "title": "Filter query to return on active users", + "body": + [ "// In routers.js", + "", + "export function myRouter_customizeQuery(request, route, query) {", + " if (route === \"/users/{name}\")", + " return query.eq(\"status\", \"active\");", + " else", + " return query;", + "}", + "" ], + "extra": + { "description": "This example creates a customize query hook on the `myRouter` prefix that filters\nthe query for a certain route to only query for active users." } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "forbidden", + "labels": [], + "nameParams": [], + "params": + [ { "name": "message", + "type": "string", + "doc": "The message to show.", + "optional": true } ], + "ret": + { "type": + { "name": "Promise", + "typeParams": + [ "wix-router.WixRouterResponse" ] }, + "doc": "Fulfilled - A response object with HTTP status code 403." }, + "locations": + [ { "lineno": 382, + "filename": "router.js" } ], + "docs": + { "summary": "Returns a response with a status code 403 (Forbidden) and instructs the router to show a 403 page.", + "description": + [ "The `forbidden()` function is used in the [`router()`](wix-router/router), [`beforeRouter()`](wix-router/beforeRouter),", + "and [`afterRouter()`](wix-router/afterRouter) hooks to indicate that the requested page", + "is forbidden. Optionally, you can pass a message that otherwise defaults to", + "'Forbidden'." ], + "links": + [ "[router( )](#router)", + "[beforeRouter( )](wix-router/beforeRouter)", + "[afterRouter( )](wix-router/afterRouter)" ], + "examples": + [ { "title": "Create a forbidden response", + "body": + [ "import {forbidden} from 'wix-router';", + "", + "export function myRouter_Router(request) {", + "", + " return forbidden();", + "}" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "next", + "labels": [], + "nameParams": [], + "params": [], + "ret": + { "type": + { "name": "Promise", + "typeParams": + [ "wix-router.WixRouterResponse" ] }, + "doc": "Fulfilled - The router response." }, + "locations": + [ { "lineno": 445, + "filename": "router.js" } ], + "docs": + { "summary": "Returns a response that instructs the router to continue.", + "description": + [ "The `next()` function is used in the [`beforeRouter()`](#beforeRouter) hook", + "to indicate the hook has completed and the routing should continue to the", + "data binding router." ], + "links": + [ "[beforeRouter( )](#beforeRouter)" ], + "examples": + [ { "title": "Create a response to continue routing", + "body": + [ "import {next} from 'wix-router';", + "", + "export function myRouter_beforeRouter(request) {", + "", + " return next();", + "}" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "notFound", + "labels": [], + "nameParams": [], + "params": + [ { "name": "message", + "type": "string", + "doc": "The message to show.", + "optional": true } ], + "ret": + { "type": + { "name": "Promise", + "typeParams": + [ "wix-router.WixRouterResponse" ] }, + "doc": "Fulfilled - A response object with HTTP status code 404." }, + "locations": + [ { "lineno": 363, + "filename": "router.js" } ], + "docs": + { "summary": "Returns a response with a status code 404 (Not Found) and instructs the router to show a 404 page.", + "description": + [ "The `notFound()` function is used in the [`router()`](#router), [`beforeRouter()`](#beforeRouter),", + "and [`afterRouter()`](#afterRouter) hooks to indicate that the requested page", + "was not found. Optionally, you can pass a message that otherwise defaults to", + "\"Not Found\"." ], + "links": + [ "[router( )](#router)", + "[beforeRouter( )](#beforeRouter)", + "[afterRouter( )](#afterRouter)" ], + "examples": + [ { "title": "Create a not found response", + "body": + [ "import {notFound} from 'wix-router';", + "", + "export function myRouter_Router(request) {", + "", + " return notFound();", + "}" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "ok", + "labels": [], + "nameParams": [], + "params": + [ { "name": "Page", + "type": + [ "string", + { "name": "Array", + "typeParams": + [ "string" ] } ], + "doc": "A router page or an array of page fallbacks." }, + { "name": "routerReturnedData", + "type": "Object", + "doc": "A data object.", + "optional": true }, + { "name": "head", + "type": "wix-router.WixRouterResponse.HeadOptions", + "doc": "HTML head members of the response.", + "optional": true } ], + "ret": + { "type": + { "name": "Promise", + "typeParams": + [ "wix-router.WixRouterResponse" ] }, + "doc": "Fulfilled - The router response object." }, + "locations": + [ { "lineno": 334, + "filename": "router.js" } ], + "docs": + { "summary": "Returns a response with a status code 200 (OK) and instructs the router to show the selected page.", + "description": + [ "The `ok()` function is used in the [`router()`](#router) and [`afterRouter()`](#afterRouter)", + "hooks to continue the routing process to the specified page with a successful", + "HTTP response code. The specified page must be a page found under the given router", + "in the [Velo Sidebar](https://support.wix.com/en/article/working-with-the-site-structure-sidebar-1610527#router-pages). For example, if you want to route to **myRouter-page** from", + "the `myRouter_Router()` function, **myRouter-page** must be in the **MyRouter Pages (Router)**", + "section of your site's Velo Sidebar.", + "", + "Optionally, you can pass a data object to be used by the", + "page routed to and header options for the page. The page routed to accesses the", + "data passed to it using the [`getRouterData()`](wix-window.html#getRouterData)", + "function of [`wix-window`](wix-window.html) with optional data and HTML header." ], + "links": + [ "[router( )](#router)", + "[afterRouter( )](#afterRouter)" ], + "examples": + [ { "title": "Create an okay response", + "body": + [ "import {ok} from 'wix-router';", + "", + "export function myRouter_Router(request) {", + "", + " return ok(\"router-page\");", + "}" ], + "extra": + { } }, + { "title": "Create an okay response with data and head options", + "body": + [ "import {ok} from 'wix-router';", + "", + "export function myRouter_Router(request) {", + "", + " return ok(\"router-page\", dataObj, headOpts);", + "}" ], + "extra": + { } }, + { "title": "Create an okay response with data and head options", + "body": + [ "import { ok } from 'wix-router';", + "", + "export function myRouter_Router(request) {", + "", + " let dataObj = {", + " \"field1\": \"value1\",", + " \"field2\": \"value2\"", + " };", + "", + " let headOptions = {", + " \"title\": \"A page title\",", + " \"metaTags\": [", + " {", + " \"name\": \"description\",", + " \"content\": \"A page description\"", + " }, {", + " \"name\": \"keywords\",", + " \"content\": \"Velo Example\"", + " }, {", + " \"name\": \"robots\",", + " \"content\": \"noindex\"", + " }, {", + " \"name\": \"og:title\",", + " \"content\": \"The Title\"", + " }, {", + " \"property\": \"og:image\",", + " \"content\": \"wix:image://v1/6...2.jpg/a.jpg#originWidth=970&originHeight=120\"", + " }", + " ],", + " \"links\": [", + " {", + " \"rel\": \"canonical\",", + " \"href\": \"http://mysite.com/somePage.html\"", + " }", + " ],", + " \"structuredData\": [", + " {", + " \"@context\": \"http://schema.org\",", + " \"@type\": \"Organization\",", + " \"name\": \"My Organization Name\",", + " \"url\": \"https://www.myorgdomain.com\"", + " }, {", + " \"@context\": \"http://schema.org\",", + " \"@type\": \"Person\",", + " \"email\": \"mailto:john.doe@somedomain.com\",", + " \"jobTitle\": \"Professor\",", + " \"name\": \"John Doe\",", + " \"telephone\": \"(555) 555-555\"", + " }", + " ]", + " };", + "", + " return ok(\"router-page\", dataObj, headOptions);", + "}" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "redirect", + "labels": [], + "nameParams": [], + "params": + [ { "name": "url", + "type": "string", + "doc": "The url to redirect to." }, + { "name": "statusCode", + "type": "string", + "doc": "The status code to use.", + "optional": true } ], + "ret": + { "type": + { "name": "Promise", + "typeParams": + [ "wix-router.WixRouterResponse" ] }, + "doc": "Fulfilled - The redirect response object." }, + "locations": + [ { "lineno": 401, + "filename": "router.js" } ], + "docs": + { "summary": "Returns a response with a status code of 301 (Moved Permanently) or 302 (Found) and instructs the router to redirect to the given URL.", + "description": + [ "The `redirect()` function is used in the [`router()`](#router), [`beforeRouter()`](#beforeRouter),", + "and [`afterRouter()`](#afterRouter) hooks to redirect to a page that is", + "not the requested page.", + "", + "Optionally, you can pass a status code of `\"301\"` or `\"302\"` using the `statusCode`", + "parameter. If any other status code is passed or no status code is passed at all,", + "the status code defaults to `\"302\"`." ], + "links": + [ "[router( )](#router)", + "[beforeRouter( )](#beforeRouter)", + "[afterRouter( )](#afterRouter)" ], + "examples": + [ { "title": "Create a redirect response", + "body": + [ "import {redirect} from 'wix-router';", + "", + "export function myRouter_Router(request) {", + "", + " return redirect(\"http://myothersite.com\");", + "}" ], + "extra": + { } }, + { "title": "Create a redirect response with HTTP code 301", + "body": + [ "import {redirect} from 'wix-router';", + "", + "export function myRouter_Router(request) {", + "", + " return redirect(\"http://myothersite.com\", \"301\");", + "}" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "router", + "labels": [], + "nameParams": [], + "params": + [ { "name": "request", + "type": "wix-router.WixRouterRequest", + "doc": "The routing request." } ], + "ret": + { "type": + { "name": "Promise", + "typeParams": + [ "wix-router.WixRouterResponse" ] }, + "doc": "Fulfilled - Which page to display, redirect to, or which HTTP status code to respond with." }, + "locations": + [ { "lineno": 47, + "filename": "router.js" } ], + "docs": + { "summary": "Function containing routing logic for a given URL prefix.", + "description": + [ "The `router()` function handles all incoming requests with the specified URL", + "[prefix](#prefixes). It is responsible for deciding which page to display and what data to", + "pass to the page, where to redirect to, or which HTTP status code to respond with.", + "", + "The `router()` function is not a function that you call from your code. You define", + "the function in a file named **routers.js** in the Code File's Backend section of the [Velo Sidebar](https://support.wix.com/en/article/velo-working-with-the-site-structure-sidebar). The", + "function is called when your users browse to a URL that is handled by the router", + "with the specified prefix.", + "", + "The function receives a [`WixRouterRequest`](wix-router.WixRouterRequest.html)", + "object containing information about the incoming request.", + "", + "The function returns a [`WixRouterResponse`](wix-router.WixRouterResponse.html)", + "object that causes the router to respond with a specified page, specified data,", + "and a success response code, or respond with any other HTTP response code.", + "", + "Typically, the response is created using one of the [`ok()`](#ok),", + "[`forbidden()`](#forbidden), [`notFound()`](#notFound), [`redirect()`](#redirect),", + "or [`sendStatus()`](#sendStatus) functions.", + "", + "Data that is returned as part of the `WixRouterResponse` is accessed in the", + "page code of the page that was routed to using the", + "[`getRouterData()`](wix-window.html#getRouterData) function of", + "[`wix-window`](wix-window.html).", + "", + "You can also set members of the HTML head of the response using the response's", + "`HeadOptions` parameter.", + "> **Notes:**", + "> + The `router()` function also runs when you navigate to a router page in the Editor.", + ">", + "> + In a request URL, spaces are replaced with dashes (`-`). For example, a request for `/animals/killer whale` or `/animals/killer%20whale` will be received in the request as `/animals/killer-whale`. Therefore, when searching for the data that matches the incoming request, you need to take special care if the [path](#wixrouterrequest/path) contains dashes (`-`)." ], + "links": + [ "[ok()](#ok)", + "[forbidden()](#forbidden)", + "[notFound()](#notFound)", + "[redirect()](#redirect)", + "[sendStatus()](#sendStatus)" ], + "examples": + [ { "title": "Router stub", + "body": + [ "export function myRouter_Router(request) {", + " // router code ...", + "}", + "" ], + "extra": + { "description": "This example creates a router on the `myRouter` prefix." } }, + { "title": "Basic router", + "body": + [ "import {ok, notFound} from \"wix-router\";", + "", + "export function myRouter_Router(request) {", + "", + " // URL looks like:", + " // https://mysite.com/myRouter/good", + " // or:", + " // https://user.wixsite.com/mysite/myRouter/good", + " const status = request.path[0];", + "", + " if(status === \"good\") {", + " // Show a page", + " return ok(\"myRouter-page\");", + " }", + " else {", + " // Return 404", + " return notFound();", + " }", + "}", + "" ], + "extra": + { "description": "This example creates a router on the `myRouter` prefix that shows a page when\nthe path begins with the word \"good\" and returns a 404 in all other cases." } }, + { "title": "Router that checks requesting devices form factor", + "body": + [ "import {ok} from \"wix-router\";", + "", + "export function myRouter_Router(request) {", + " if(request.formFactor === \"desktop\") {", + " // Show desktop page", + " return ok(\"desktop-page\");", + " }", + " else {", + " // Show mobile page", + " return ok(\"mobile-page\");", + " }", + "}", + "" ], + "extra": + { "description": "This example creates a router on the `myRouter` prefix that shows a desktop\nversion of a page when the requesting devices form factor is a desktop. If the form\nfactor of the requesting device is not a desktop, the router shows a mobile version of the page." } }, + { "title": "A router with static data", + "body": + [ "import {ok, notFound} from \"wix-router\";", + "", + "// Sample data", + "const peopleData = {", + " \"Ash\": {", + " title: \"Ash Stowe\",", + " imageSite: \"https://static.wixstatic.com/media/\",", + " image: \"b8f383e0fe2b478ea91362b707ef267b.jpg\"", + " },", + " \"Aiden\": {", + " title: \"Aiden Johnson\",", + " imageSite: \"https://static.wixstatic.com/media/\",", + " image: \"ca3c7ac5427e43928aa5f3f443ae2163.jpg\"", + " },", + " \"Jess\": {", + " title: \"Jess White\",", + " imageSite: \"https://static.wixstatic.com/media/\",", + " image: \"147fe6f37fe24e83977b4124e41b6d3d.jpg\"", + " },", + " \"Morgan\": {", + " title: \"Morgan James\",", + " imageSite: \"https://static.wixstatic.com/media/\",", + " image: \"59e1f2f4dbbc4f7c9d6e66e3e125d830.jpg\"", + " }", + "};", + "", + "export function myRouter_Router(request) {", + "", + " // Get item name from URL request", + " // URL looks like:", + " // https://mysite.com/myRouter/Morgan", + " // or:", + " // https://user.wixsite.com/mysite/myRouter/Morgan", + " const name = request.path[0];", + "", + " // Get the item data by name", + " const data = peopleData[name];", + "", + " // If the item exists", + " if(data) {", + "", + " //Define SEO tags", + " const seoData = {", + " title: data.title,", + " description: `This is a description of ${data.title} page`,", + " noIndex: false,", + " metaTags: {", + " \"og:title\": data.title,", + " \"og:image\": data.imageSite + data.image", + " }", + " };", + "", + " // Render item page, passing data and head info", + " return ok(\"myRouter-page\", data, seoData);", + " }", + "", + " // Return 404 if the item is not found", + " return notFound();", + "}", + "" ], + "extra": + { "description": "This example creates a router on the `myRouter` prefix that shows a page when\nthe path begins with a name that is found in a static data object. The appropriate\ndata and HTML head options are also passed in the response. If the requested\nitem does not exist, a 404 \"Not Found\" response is returned." } }, + { "title": "A router with data from a collection", + "body": + [ "import wixData from 'wix-data';", + "import {ok, notFound} from 'wix-router';", + "", + "export function myRouter_Router(request) {", + "", + " // Empty path - show index page", + " // URL looks like:", + " // https://mysite.com/myRouter", + " // or:", + " // https://user.wixsite.com/mysite/myRouter", + " if (request.path.length < 1) {", + " return ok(\"index-page\");", + " }", + "", + " // Path with item - show item page with data from collection", + " // URL looks like:", + " // https://mysite.com/myRouter/itemTitle", + " // or:", + " // https://user.wixsite.com/mysite/myRouter/itemTitle", + " // Retrieve data from collection", + " return wixData.query(\"myCollection\")", + " .eq(\"title\", request.path[0])", + " .find()", + " .then( (queryResult) => {", + " if (queryResult.length > 0) {", + " return ok(\"item-page\", queryResult.items[0]);", + " }", + " return notFound();", + " } );", + "}", + "" ], + "extra": + { "description": "This example creates a router on the `myRouter` prefix that shows an index page\nwhen the path is empty. If the path contains an item title, that title is looked\nup in a collection. If the item is found in the collection, it shows an item\npage and passes the item data. If the item is not found in the collection,\na 404 \"Not Found\" response is returned." } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "sendStatus", + "labels": [], + "nameParams": [], + "params": + [ { "name": "statusCode", + "type": "string", + "doc": "The HTTP status code to return." }, + { "name": "message", + "type": "string", + "doc": "The message to write as the HTTP body.", + "optional": true } ], + "ret": + { "type": + { "name": "Promise", + "typeParams": + [ "wix-router.WixRouterResponse" ] }, + "doc": "Fulfilled - A response object with the specified HTTP status." }, + "locations": + [ { "lineno": 425, + "filename": "router.js" } ], + "docs": + { "summary": "Returns a response with the specified HTTP status code with an optional message.", + "description": + [ "The `sendStatus()` function is used in the [`router()`](#router), [`beforeRouter()`](#beforeRouter),", + "and [`afterRouter()`](#afterRouter) hooks to return a specified response.", + "Optionally, you can pass a message." ], + "links": + [ "[router( )](#router)", + "[beforeRouter( )](#beforeRouter)", + "[afterRouter( )](#afterRouter)" ], + "examples": + [ { "title": "Create a response with a specified status code", + "body": + [ "import {sendStatus} from 'wix-router';", + "", + "export function myRouter_Router(request) {", + "", + " return sendStatus(\"418\");", + "}" ], + "extra": + { } }, + { "title": "Create a response with a specified status code and message", + "body": + [ "import {sendStatus} from 'wix-router';", + "", + "export function myRouter_Router(request) {", + "", + " return sendStatus(\"418\", \"Message\");", + "}" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "sitemap", + "labels": [], + "nameParams": [], + "params": + [ { "name": "request", + "type": "wix-router.WixRouterSitemapRequest", + "doc": "The sitemap request." } ], + "ret": + { "type": + { "name": "Promise", + "typeParams": + [ { "name": "Array", + "typeParams": + [ "wix-router.WixRouterSitemapEntry" ] } ] }, + "doc": "Fulfilled - An array of sitemap entries." }, + "locations": + [ { "lineno": 114, + "filename": "router.js" } ], + "docs": + { "summary": "Function containing sitemap logic for a given URL prefix.", + "description": + [ "The `sitemap()` function handles sitemap requests for pages with the specified", + " URL [prefix](#prefixes). Use this function to make sure search engines can find the links", + " to your router's pages.", + "", + " The `sitemap()` function is not a function that you call from your code. You define", + " the function in a file named **routers.js** in the Code File's Backend section of the [Velo Sidebar](https://support.wix.com/en/article/velo-working-with-the-site-structure-sidebar). The", + " function is called when a sitemap request is received for the router with the", + " specified prefix.", + "", + " The function receives a [`WixRouterSitemapRequest`](wix-router.WixRouterSitemapRequest.html)", + " object containing information about the incoming sitemap request.", + "", + " The function returns an array of [`WixRouterSitemapEntry`](wix-router.WixRouterSitemapEntry.html)", + " objects each of which includes information about a page, such as its URL, title, and name.", + "", + " To create sitemap entry objects, first import [`WixRouterSitemapEntry`](wix-router.WixRouterSitemapEntry.html)", + " from [`wix-router`](wix-router.html):", + "", + " ```javascript", + " import {WixRouterSitemapEntry} from \"wix-router\";", + " ```", + "", + " The `sitemap()` function is also used to populate the items preview widget,", + " allowing you to switch between URLs in preview mode.", + "", + "> **Note:** The `sitemap()` function also runs when you navigate to a router page in the Editor." ], + "links": [], + "examples": + [ { "title": "Sitemap stub", + "body": + [ "// In routers.js", + "", + "export function myRouter_SiteMap(sitemapRequest) {", + " // sitemap code ...", + "}", + "" ], + "extra": + { "description": "This example creates a sitemap on the `myRouter` prefix." } }, + { "title": "Basic sitemap", + "body": + [ "// In routers.js", + "", + "import {WixRouterSitemapEntry} from 'wix-router';", + "", + "export function myRouter_SiteMap(sitemapRequest) {", + "", + "\tlet siteMapEntries = [];", + "", + " // Create a sitemap entry for each item", + " for (var key in myData) {", + " let entry = new WixRouterSitemapEntry();", + " entry.pageName = \"myRouter-page\";", + " entry.url = \"/myRouter/\" + key;", + " entry.title = myData[key].title;", + " siteMapEntries.push(entry);", + " }", + "", + " // Return the sitemap entries", + " return siteMapEntries;", + "}", + "" ], + "extra": + { "description": "This example creates a sitemap on the `myRouter` prefix by looping through\na data object and creating a sitemap entry for each object." } }, + { "title": "A sitemap with static data", + "body": + [ "// In routers.js", + "", + "import {WixRouterSitemapEntry} from 'wix-router';", + "", + "// Sample data", + "const peopleData = {", + " \"Ash\": {", + " title: \"Ash Stowe\",", + " imageSite: \"https://static.wixstatic.com/media/\",", + " image: \"b8f383e0fe2b478ea91362b707ef267b.jpg\"", + " },", + " \"Aiden\": {", + " title: \"Aiden Johnson\",", + " imageSite: \"https://static.wixstatic.com/media/\",", + " image: \"ca3c7ac5427e43928aa5f3f443ae2163.jpg\"", + " },", + " \"Jess\": {", + " title: \"Jess White\",", + " imageSite: \"https://static.wixstatic.com/media/\",", + " image: \"147fe6f37fe24e83977b4124e41b6d3d.jpg\"", + "", + " },", + " \"Morgan\": {", + " title: \"Morgan James\",", + " imageSite: \"https://static.wixstatic.com/media/\",", + " image: \"59e1f2f4dbbc4f7c9d6e66e3e125d830.jpg\"", + " }", + "};", + "", + "export function myRouter_SiteMap(sitemapRequest) {", + "", + " //Convert the data to sitemap entries", + " const siteMapEntries = Object.keys(peopleData).map( (name) => {", + " const data = peopleData[name];", + " const entry = new WixRouterSitemapEntry(name);", + " entry.pageName = \"myRouter-page\";", + " entry.url = `/myRouter/${name}`;", + " entry.title = data.title;", + " return entry;", + " } );", + "", + " // Return the sitemap entries", + " return siteMapEntries;", + "}", + "" ], + "extra": + { "description": "This example creates a sitemap on the `myRouter` prefix by mapping an object's\nkeys to an array of corresponding sitemap entries." } }, + { "title": "A sitemap with collection data", + "body": + [ "// Place this code in the routers.js file", + "// of your site's Backend section.", + "", + "import wixData from 'wix-data';", + "import { WixRouterSitemapEntry } from 'wix-router';", + "", + "export async function myRouter_SiteMap(sitemapRequest) {", + "", + " // Retrieve the sitemap data from a collection.", + " const results = await wixData.query('mySitemapProperties').find()", + " const properties = results.items", + "", + " // Convert the data to site map entries.", + " const sitemapEntries = properties.map(property => {", + " const entry = new WixRouterSitemapEntry(property.title);", + " entry.pageName = 'myRouter-page';", + " entry.url = '/myRouter/' + property.slug;", + " entry.title = property.title;", + " return entry;", + " });", + "", + " // Return the site map entries.", + " return sitemapEntries;", + "}" ], + "extra": + { "description": "This example creates a sitemap on the `myRouter` prefix using data retrieved from a collection." } } ], + "extra": + { } }, + "extra": + { } } ], + "callbacks": [], + "messages": [], + "extra": + { "scopes": + [ "backend" ] }, + "menuSections": "APIs", + "relatedContent": + [ { "icon": "article", + "text": "About Routers", + "url": "https://support.wix.com/en/article/velo-about-routers" }, + { "icon": "article", + "text": "Creating a Router", + "url": "https://support.wix.com/en/article/velo-creating-a-router" }, + { "icon": "article", + "text": "SEO and Routing", + "url": "https://support.wix.com/en/article/velo-about-seo-and-routing" }, + { "icon": "example", + "text": "Stripe Payment Processing", + "url": "https://www.wix.com/velo/forum/wix-tips-and-updates/example-stripe-payment-processing" } ], + "FAQs": + [ { "title": "How do I create a dynamic sitemap?", + "markdown": "You can use the [`sitemap()`](https://www.wix.com/code/reference/wix-router.html#sitemap) function to create a dynamic sitemap for a given URL prefix. The function handles sitemap requests for pages with the specified URL prefix. Use this function to return a dynamic sitemap to search engines." }, + { "title": "Why is it not working when I try to route to some pages in my site?", + "markdown": "Each router can only route to the pages in its prefix. You can see which pages are in your router's prefix in the [Site Structure sidebar](https://support.wix.com/en/article/wix-code-working-with-the-site-structure-sidebar)." }, + { "title": "Can routers be used to create a custom 404 page?", + "markdown": "No. Using routers you can control when a 404 page will be shown, but the page that will be shown is the built-in Wix 404 page." } ] } \ No newline at end of file diff --git a/wix-router/wix-router/WixRouterRequest.service.json b/wix-router/wix-router/WixRouterRequest.service.json new file mode 100644 index 0000000000..f20a705b85 --- /dev/null +++ b/wix-router/wix-router/WixRouterRequest.service.json @@ -0,0 +1,516 @@ +{ "name": "WixRouterRequest", + "memberOf": "wix-router", + "mixes": [], + "labels": [], + "location": + { "lineno": 1, + "filename": "request.js" }, + "docs": + { "summary": "An object representing an incoming page request received by a router.", + "description": + [ "The `WixRouterRequest` object breaks the URL of the incoming router request", + "into different parameters for easy access.", + "", + "", + "", + "", + " The URL is broken into:", + " + [`baseUrl`](wix-router/wixrouterrequest/baseurl)", + " + [`prefix`](wix-router/wixrouterrequest/prefix)", + " + [`path`](wix-router/wixrouterrequest/path)", + " + [`query`](wix-router/wixrouterrequest/query)", + " + `hash` (for optional fragment identifier descriptions)", + "", + "#### Premium Sites", + "", + "For premium sites, the URL of the site router request has the following format:", + "**`https://www.domain.com/myPrefix/myPath?myQuery=myValue#myHashDesc`**", + "", + "+ **baseUrl**:     `https://www.domain.com`", + "+ **prefix**:        `myPrefix`", + "+ **path**:          `myPath`", + "+ **query**:        `myQuery=myValue`", + "+ **hash**:        `#myHashDesc`", + "", + "**Example**: ", + "**`https://domain.com/mammals/elephant?species=african-elephant#LifeSpan`**", + "+ **baseUrl**:     `https://domain.com/`", + "+ **prefix**:        `mammals`", + "+ **path**:          `elephant`", + "+ **query**:        `species=african-elephant`", + "+ **hash**:        `#LifeSpan`", + " ", + "#### Free Sites", + "", + "For free sites, the URL of the site router request has the following format:", + "**`https://user.wixsite.com/mySite/myPrefix/myPath?myQuery=myValue#myHashDesc`**", + "", + "+ **baseUrl**:     `https://user.wixsite.com/mySite`", + "+ **prefix**:        `myPrefix`", + "+ **path**:          `myPath`", + "+ **query**:        `myQuery=myValue`", + "+ **hash**:        `#myHashDesc`", + "", + "**Example**: ", + "**`https://user.wixsite.com/zoo/mammals/elephant?species=african-elephant#LifeSpan`**", + "+ **baseUrl**:     `https://user.wixsite.com/zoo`", + "+ **prefix**:        `mammals`", + "+ **path**:          `elephant`", + "+ **query**:        `species=african-elephant`", + "+ **hash**:        `#LifeSpan`", + "", + "", + " > **Note:** The above URLs are for a published site. When previewing your site, you will receive the Editor URL." ], + "links": [], + "examples": [], + "extra": + { } }, + "properties": + [ { "name": "baseUrl", + "labels": [], + "get": true, + "set": false, + "type": "string", + "locations": + [ { "lineno": 61, + "filename": "request.js" } ], + "docs": + { "summary": "Returns the base URL of the router request.", + "description": + [ "Premium sites:", + " ![Premium site baseUrl](images/url_premium_baseUrl.png \"Premium site baseUrl\")", + "", + " Free sites:", + " ![Free site baseUrl](images/url_free_baseUrl.png \"Free site baseUrl\")", + "", + "", + "", + "", + "", + "> **Note:** The above URLs are for a published site. When previewing your site,", + " you will receive the Editor URL." ], + "links": [], + "examples": + [ { "title": "Get the base URL of the router request", + "body": + [ "export function myRouter_Router(request) {", + "", + " let baseUrl = request.baseUrl;", + " // Premium site: \"https://domain.com/\"", + " // Free site: \"https://user.wixsite.com/zoo/\"", + "", + "}" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "env", + "labels": [], + "get": true, + "set": false, + "type": "string", + "locations": + [ { "lineno": 254, + "filename": "request.js" } ], + "docs": + { "summary": "Returns the current environment the router rendering process is running in.", + "description": + [ "When possible, the rendering process is split in two in order to", + " improve performance. The first cycle in the process is initiated from backend rendering,", + " and the second cycle is initiated from client-side rendering. Note that", + " even when the rendering cycle is initiated from client-side rendering, router code is called, ", + " and router code always runs in the backend.", + " ", + " If not possible on the backend, all rendering", + " is initiated from the client side.", + "", + " The `env` property returns `\"backend\"` when rendering on the backend,", + " and `\"browser\"` when rendering on the client.", + "", + " Use the `env` property in your page's [`onReady()`]($w.html#onReady)", + " event handler to control where your code runs during the rendering", + " process and to prevent code that causes side effects from running twice.", + "", + " > **Note:** Rendering never occurs on the backend when previewing your site." ], + "links": [], + "examples": + [ { "title": "Get the current environment the router request is running in", + "body": + [ "export function myRouter_Router(request) {", + "", + " let env = request.env; // \"backend\"", + "", + "}" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "formFactor", + "labels": [], + "get": true, + "set": false, + "type": "string", + "locations": + [ { "lineno": 209, + "filename": "request.js" } ], + "docs": + { "summary": "Returns the form factor of the device used to make the router request.", + "description": + [ "Returns either `desktop` or `mobile`." ], + "links": [], + "examples": + [ { "title": "Get the form factor of the device used to make the router request", + "body": + [ "export function myRouter_Router(request) {", + "", + " let formFactor = request.formFactor; // \"desktop\"", + "", + "}" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "ip", + "labels": [], + "get": true, + "set": false, + "type": "string", + "locations": + [ { "lineno": 167, + "filename": "request.js" } ], + "docs": + { "summary": "Returns the remote IP address of the router request.", + "links": [], + "examples": + [ { "title": "Get the IP of the router request", + "body": + [ "export function myRouter_Router(request) {", + "", + " let ip = request.ip; // \"34.232.34.242\"", + "", + "}" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "pages", + "labels": [], + "get": true, + "set": false, + "type": + { "name": "Array", + "typeParams": + [ "string" ] }, + "locations": + [ { "lineno": 241, + "filename": "request.js" } ], + "docs": + { "summary": "Returns the names of the pages associated with this router.", + "description": + [ "Pages are added and removed from a router in the Editor. The page names", + "returned by the `pages` property can be used when returning a router", + "response (e.g. `ok('page-name', ...)`)." ], + "links": [], + "examples": + [ { "title": "Get the names of the pages associated with this router", + "body": + [ "export function myRouter_Router(request) {", + "", + " let pages = request.pages;", + " // [\"myRouter-page1\", \"myRouter-page2\"]", + "", + "}" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "path", + "labels": [], + "get": true, + "set": false, + "type": + { "name": "Array", + "typeParams": + [ "string" ] }, + "locations": + [ { "lineno": 125, + "filename": "request.js" } ], + "docs": + { "summary": "Returns the path of the router request URL.", + "description": + [ "Premium sites:", + " ![Premium site path](images/url_premium_path.png \"Premium site path\")", + "", + " Free sites:", + " ![Free site path](images/url_free_path.png \"Free site path\")", + "", + "", + "", + "", + "> **Note:** The above URLs are for a published site. When previewing your site,", + " you will receive the Editor URL." ], + "links": [], + "examples": + [ { "title": "Get the path of the router request's URL", + "body": + [ "export function myRouter_Router(request) {", + "", + " let path = request.path; // [\"elephant\"]", + "", + "}" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "prefix", + "labels": [], + "get": true, + "set": false, + "type": "string", + "locations": + [ { "lineno": 104, + "filename": "request.js" } ], + "docs": + { "summary": "Returns the router prefix of the router request URL.", + "description": + [ "Premium sites:", + " ![Premium site prefix](images/url_premium_prefix.png \"Premium site prefix\")", + "", + " Free sites:", + " ![Free site prefix](images/url_free_prefix.png \"Free site prefix\")", + "", + "", + "", + "", + "> **Note:** The above URLs are for a published site. When previewing your site,", + " you will receive the Editor URL." ], + "links": [], + "examples": + [ { "title": "Get the prefix of the router request's URL", + "body": + [ "export function myRouter_Router(request) {", + "", + " let prefix = request.prefix; // \"mammals\"", + "", + "}" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "protocol", + "labels": [], + "get": true, + "set": false, + "type": "string", + "locations": + [ { "lineno": 176, + "filename": "request.js" } ], + "docs": + { "summary": "Returns the protocol of the router request URL.", + "description": + [ "Premium sites:", + " ![Premium site protocol](images/url_premium_protocol.png \"Premium site protocol\")", + "", + " Free sites:", + " ![Free site protocol](images/url_free_protocol.png \"Free site protocol\")", + "", + "", + "", + "", + "> **Note:** The above URLs are for a published site. When previewing your site,", + " you will receive the Editor URL." ], + "links": [], + "examples": + [ { "title": "Get the protocol of the router request's URL", + "body": + [ "export function myRouter_Router(request) {", + "", + " let protocol = request.protocol; // \"https\"", + "", + "}" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "query", + "labels": [], + "get": true, + "set": false, + "type": "Object", + "locations": + [ { "lineno": 146, + "filename": "request.js" } ], + "docs": + { "summary": "Returns the query fields and values of the request URL.", + "description": + [ "Premium sites:", + " ![Premium site query](images/url_premium_query.png \"Premium site query\")", + "", + " Free sites:", + " ![Free site query](images/url_free_query.png \"Free site query\")", + "", + "", + "", + "", + "> **Note:** The above URLs are for a published site. When previewing your site,", + " you will receive the Editor URL." ], + "links": [], + "examples": + [ { "title": "Get the query of the router request's URL", + "body": + [ "export function myRouter_Router(request) {", + "", + " let query = request.query;", + " // {\"species\": \"african-elephant\"}", + "}" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "referrer", + "labels": [], + "get": true, + "set": false, + "type": "string", + "locations": + [ { "lineno": 229, + "filename": "request.js" } ], + "docs": + { "summary": "Returns the `referrer` header from the router request.", + "description": + [ "The `referrer` is the address of the web page from which the router request was", + " initiated, typically by clicking on a link." ], + "links": [], + "examples": + [ { "title": "Get the `referrer` header from the router request", + "body": + [ "export function myRouter_Router(request) {", + "", + " let referrer = request.referrer;", + " // \"http://somesite.com\"", + "", + "}" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "url", + "labels": [], + "get": true, + "set": false, + "type": "string", + "locations": + [ { "lineno": 83, + "filename": "request.js" } ], + "docs": + { "summary": "Returns the full URL of the router request.", + "description": + [ "Premium sites:", + " ![Premium site URL](images/url_premium_url.png \"Premium site URL\")", + "", + " Free sites:", + " ![Free site URL](images/url_free_url.png \"Free site URL\")", + "", + "", + "", + "", + "> **Note:** The above URLs are for a published site. When previewing your site,", + " you will receive the Editor URL." ], + "links": [], + "examples": + [ { "title": "Get the URL of the router request", + "body": + [ "export function myRouter_Router(request) {", + "", + " let url = request.url;", + " // Premium site:", + " // \"https://domain.com/elephant?species=african-elephant\"", + " // Free site:", + " // \"https://user.wixsite.com/zoo/elephant?species=african-elephant\"", + "", + "}" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "user", + "labels": [], + "get": true, + "set": false, + "type": "wix-router.WixRouterUser", + "locations": + [ { "lineno": 197, + "filename": "request.js" } ], + "docs": + { "summary": "Returns the details of the current site user who is logged in.", + "description": + [ "Returns an object with the `id` and `role` of the logged in user", + " who made the router request." ], + "links": [], + "examples": + [ { "title": "Get the user from the router request", + "body": + [ "export function myRouter_Router(request) {", + " let user = request.user;", + " let userId = user.id; // \"f6q0fb32-b06r-469f-ag4d-9df89afkj5d9\"", + " let role = user.role; // \"Admin\"", + "}" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "userAgent", + "labels": [], + "get": true, + "set": false, + "type": "string", + "locations": + [ { "lineno": 220, + "filename": "request.js" } ], + "docs": + { "summary": "Returns the `user-agent` header as sent from the device used to make the router request.", + "links": [], + "examples": + [ { "title": "Get the `user-agent` header of the device used to make the router request", + "body": + [ "export function myRouter_Router(request) {", + "", + " let userAgent = request.userAgent;", + " // \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36\"", + "", + "}" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } } ], + "operations": [], + "callbacks": [], + "messages": [], + "extra": + { } } \ No newline at end of file diff --git a/wix-router/wix-router/WixRouterResponse.service.json b/wix-router/wix-router/WixRouterResponse.service.json new file mode 100644 index 0000000000..556999ff57 --- /dev/null +++ b/wix-router/wix-router/WixRouterResponse.service.json @@ -0,0 +1,881 @@ +{ "name": "WixRouterResponse", + "memberOf": "wix-router", + "mixes": [], + "labels": [], + "location": + { "lineno": 1, + "filename": "response.js" }, + "docs": + { "summary": "An object representing a response to a request received by a router.", + "links": [], + "examples": [], + "extra": + { } }, + "properties": + [ { "name": "data", + "labels": [], + "get": true, + "set": true, + "type": "Object", + "locations": + [ { "lineno": 132, + "filename": "response.js" }, + { "lineno": 138, + "filename": "response.js" } ], + "docs": + { "summary": "Sets or gets the data to pass with the response.", + "description": + [ "A data object to be used by the page routed to. The page routed to accesses the", + "data passed to it using the [`getRouterData()`](wix-window.html#getRouterData)", + "function of [`wix-window`](wix-window.html) with optional data and HTML header." ], + "links": [], + "examples": + [ { "title": "Get the data that is passed with the response", + "body": + [ "export function myRouter_Router(request) {", + "", + " let data = response.data;", + " /*", + " * {", + " * \"title\": \"A\",", + " * \"imageSite\": \"https://static.wixstatic.com/media/\",", + " * \"image\": \"b8f383e0fe2b478ea91362b707ef267b.jpg\"", + " * }", + " */", + "", + "}" ], + "extra": + { } }, + { "title": "Set the data that is passed with the response", + "body": + [ "export function myRouter_Router(request) {", + "", + " response.data = {", + " \"title\": \"A\",", + " \"imageSite\": \"https://static.wixstatic.com/media/\",", + " \"image\": \"b8f383e0fe2b478ea91362b707ef267b.jpg\"", + " };", + "", + "}" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "head", + "labels": [], + "get": true, + "set": true, + "type": "wix-router.WixRouterResponse.HeadOptions", + "locations": + [ { "lineno": 110, + "filename": "response.js" }, + { "lineno": 116, + "filename": "response.js" } ], + "docs": + { "summary": "Sets or gets the members to be written to the HTML head of the page.", + "description": + [ "The information you set using the `head` property, such as links or meta tags.", + " Overwrites any head information set earlier.", + "", + " The members of the `head` property value are written to the HTML head for use by", + " browsers and SEO bots." ], + "links": [], + "examples": + [ { "title": "Get the response's head options", + "body": + [ "export function myRouter_Router(request) {", + "", + " let head = response.head;", + "", + "/*", + " * {", + " * \"title\": \"A page title\",", + " * \"metaTags\": [", + " * {", + " * \"name\": \"description\",", + " * \"content\": \"A page description\"", + " * }, {", + " * \"name\": \"keywords\",", + " * \"content\": \"Velo Example\"", + " * }, {", + " * \"name\": \"robots\",", + " * \"content\": \"noindex\"", + " * }, {", + " * \"name\": \"og:title\",", + " * \"content\": \"The Title\"", + " * }, {", + " * \"property\": \"og:image\",", + " * \"content\": \"wix:image://v1/6...2.jpg/a.jpg#originWidth=970&originHeight=120\"", + " * }", + " * ],", + " * \"links\": [", + " * {", + " * \"rel\": \"canonical\",", + " * \"href\": \"http://mysite.com/somePage.html\"", + " * }", + " * ],", + " * \"structuredData\": [", + " * {", + " * \"@context\": \"http://schema.org\",", + " * \"@type\": \"Organization\",", + " * \"name\": \"My Organization Name\",", + " * \"url\": \"https://www.myorgdomain.com\"", + " * }, {", + " * \"@context\": \"http://schema.org\",", + " * \"@type\": \"Person\",", + " * \"email\": \"mailto:john.doe@somedomain.com\",", + " * \"jobTitle\": \"Professor\",", + " * \"name\": \"John Doe\",", + " * \"telephone\": \"(555) 555-555\"", + " * }", + " * ]", + " * }", + " */" ], + "extra": + { } }, + { "title": "Set the response's head options", + "body": + [ "export function myRouter_Router(request) {", + "", + " let headOptions = {", + " \"title\": \"A page title\",", + " \"metaTags\": [", + " {", + " \"name\": \"description\",", + " \"content\": \"A page description\"", + " }, {", + " \"name\": \"keywords\",", + " \"content\": \"Velo Example\"", + " }, {", + " \"name\": \"robots\",", + " \"content\": \"noindex\"", + " }, {", + " \"name\": \"og:title\",", + " \"content\": \"The Title\"", + " }, {", + " \"property\": \"og:image\",", + " \"content\": \"wix:image://v1/6...2.jpg/a.jpg#originWidth=970&originHeight=120\"", + " }", + " ],", + " \"links\": [", + " {", + " \"rel\": \"canonical\",", + " \"href\": \"http://mysite.com/somePage.html\"", + " }", + " ],", + " \"structuredData\": [", + " {", + " \"@context\": \"http://schema.org\",", + " \"@type\": \"Organization\",", + " \"name\": \"My Organization Name\",", + " \"url\": \"https://www.myorgdomain.com\"", + " }, {", + " \"@context\": \"http://schema.org\",", + " \"@type\": \"Person\",", + " \"email\": \"mailto:john.doe@somedomain.com\",", + " \"jobTitle\": \"Professor\",", + " \"name\": \"John Doe\",", + " \"telephone\": \"(555) 555-555\"", + " }", + " ]", + " };", + "", + " let response.head = headOptions;" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "message", + "labels": [], + "get": true, + "set": true, + "type": "string", + "locations": + [ { "lineno": 152, + "filename": "response.js" }, + { "lineno": 158, + "filename": "response.js" } ], + "docs": + { "summary": "Sets or gets the response message to be used when responding with status codes 4xx and 5xx.", + "links": [], + "examples": + [ { "title": "Get the response message", + "body": + [ "export function myRouter_Router(request) {", + "", + " let message = response.message; // \"Not found\"", + "", + "}" ], + "extra": + { } }, + { "title": "Set the response message", + "body": + [ "export function myRouter_Router(request) {", + "", + " response.message = \"Not found\";", + "", + "}" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "page", + "labels": [], + "get": true, + "set": true, + "type": "string", + "locations": + [ { "lineno": 22, + "filename": "response.js" }, + { "lineno": 28, + "filename": "response.js" } ], + "docs": + { "summary": "Sets or gets the page to route to.", + "links": [], + "examples": + [ { "title": "Get the page the response routes to", + "body": + [ "export function myRouter_Router(request) {", + "", + " let page = response.page; // \"myRouter-page\"", + "", + "}" ], + "extra": + { } }, + { "title": "Set the page the response routes to", + "body": + [ "export function myRouter_Router(request) {", + "", + " response.page = \"myRouter-page\";", + "", + "}" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "redirectUrl", + "labels": [], + "get": true, + "set": true, + "type": "string", + "locations": + [ { "lineno": 168, + "filename": "response.js" }, + { "lineno": 174, + "filename": "response.js" } ], + "docs": + { "summary": "Sets or gets the url to redirect to when responding with status codes 301 and 302.", + "links": [], + "examples": + [ { "title": "Get the URL to redirect to", + "body": + [ "export function myRouter_Router(request) {", + "", + " let redirectUrl = response.redirectUrl;", + " // \"http://someothersite.com\"", + "", + "}" ], + "extra": + { } }, + { "title": "Set the URL to redirect to", + "body": + [ "export function myRouter_Router(request) {", + "", + " response.redirectUrl = \"http://someothersite.com\";", + "", + "}" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "status", + "labels": [], + "get": true, + "set": true, + "type": "number", + "locations": + [ { "lineno": 6, + "filename": "response.js" }, + { "lineno": 12, + "filename": "response.js" } ], + "docs": + { "summary": "Sets or gets the response's HTTP status code.", + "links": [], + "examples": + [ { "title": "Get the response's HTTP status code", + "body": + [ "export function myRouter_Router(request) {", + "", + " let status = response.status; // 200", + "", + "}" ], + "extra": + { } }, + { "title": "Set the response's HTTP status code", + "body": + [ "export function myRouter_Router(request) {", + "", + " response.status = 200;", + "", + "}" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } } ], + "operations": [], + "callbacks": [], + "messages": + [ { "name": "HeadOptions", + "locations": + [ { "lineno": 59, + "filename": "response.js" } ], + "docs": + { "summary": "Members of the HTML head.", + "links": [], + "examples": + [ { "title": "HeadOptions in page head", + "body": + [ "// Given the following HeadOptions", + "{", + " \"title\": \"A page title\",", + " \"metaTags\": [", + " {", + " \"name\": \"description\",", + " \"content\": \"A page description\"", + " }, {", + " \"name\": \"keywords\",", + " \"content\": \"Velo Example\"", + " }, {", + " \"name\": \"robots\",", + " \"content\": \"noindex\"", + " }, {", + " \"name\": \"og:title\",", + " \"content\": \"The Title\"", + " }, {", + " \"property\": \"og:image\",", + " \"content\": \"http://somesite/someimage.jpg\"", + " }", + " ],", + " \"links\": [", + " {", + " \"rel\": \"canonical\",", + " \"href\": \"http://mysite.com/somePage.html\"", + " }", + " ],", + " \"structuredData\": [", + " {", + " \"@context\": \"http://schema.org\",", + " \"@type\": \"Organization\",", + " \"name\": \"My Organization Name\",", + " \"url\": \"https://www.myorgdomain.com\"", + " }, {", + " \"@context\": \"http://schema.org\",", + " \"@type\": \"Person\",", + " \"email\": \"mailto:john.doe@somedomain.com\",", + " \"jobTitle\": \"Professor\",", + " \"name\": \"John Doe\",", + " \"telephone\": \"(555) 555-555\"", + " }", + " ]", + "}", + "", + "// The HTML page head will contain", + "", + " A page title", + " ", + " ", + " ", + " ", + " ", + " ", + " ", + "" ], + "extra": + { } }, + { "title": "Get the head options of the response", + "body": + [ "export function myRouter_Router(request) {", + "", + " let head = response.head;", + "", + "/*", + " * {", + " * \"title\": \"A page title\",", + " * \"metaTags\": [", + " * {", + " * \"name\": \"description\",", + " * \"content\": \"A page description\"", + " * }, {", + " * \"name\": \"keywords\",", + " * \"content\": \"Velo Example\"", + " * }, {", + " * \"name\": \"robots\",", + " * \"content\": \"noindex\"", + " * }, {", + " * \"name\": \"og:title\",", + " * \"content\": \"The Title\"", + " * }, {", + " * \"property\": \"og:image\",", + " * \"content\": \"wix:image://v1/6...2.jpg/a.jpg#originWidth=970&originHeight=120\"", + " * }", + " * ],", + " * \"links\": [", + " * {", + " * \"rel\": \"canonical\",", + " * \"href\": \"http://mysite.com/somePage.html\"", + " * }", + " * ],", + " * \"structuredData\": [", + " * {", + " * \"@context\": \"http://schema.org\",", + " * \"@type\": \"Organization\",", + " * \"name\": \"My Organization Name\",", + " * \"url\": \"https://www.myorgdomain.com\"", + " * }, {", + " * \"@context\": \"http://schema.org\",", + " * \"@type\": \"Person\",", + " * \"email\": \"mailto:john.doe@somedomain.com\",", + " * \"jobTitle\": \"Professor\",", + " * \"name\": \"John Doe\",", + " * \"telephone\": \"(555) 555-555\"", + " * }", + " * ]", + " * }", + " */" ], + "extra": + { } }, + { "title": "Set the page options of the response", + "body": + [ "export function myRouter_Router(request) {", + "", + " let headOptions = {", + " \"title\": \"A page title\",", + " \"metaTags\": [", + " {", + " \"name\": \"description\",", + " \"content\": \"A page description\"", + " }, {", + " \"name\": \"keywords\",", + " \"content\": \"Velo Example\"", + " }, {", + " \"name\": \"robots\",", + " \"content\": \"noindex\"", + " }, {", + " \"name\": \"og:title\",", + " \"content\": \"The Title\"", + " }, {", + " \"property\": \"og:image\",", + " \"content\": \"wix:image://v1/6...2.jpg/a.jpg#originWidth=970&originHeight=120\"", + " }", + " ],", + " \"links\": [", + " {", + " \"rel\": \"canonical\",", + " \"href\": \"http://mysite.com/somePage.html\"", + " }", + " ],", + " \"structuredData\": [", + " {", + " \"@context\": \"http://schema.org\",", + " \"@type\": \"Organization\",", + " \"name\": \"My Organization Name\",", + " \"url\": \"https://www.myorgdomain.com\"", + " }, {", + " \"@context\": \"http://schema.org\",", + " \"@type\": \"Person\",", + " \"email\": \"mailto:john.doe@somedomain.com\",", + " \"jobTitle\": \"Professor\",", + " \"name\": \"John Doe\",", + " \"telephone\": \"(555) 555-555\"", + " }", + " ]", + " };", + "", + " let response.head = headOptions;" ], + "extra": + { } }, + { "title": "Create an okay response with data and head options", + "body": + [ "import { ok } from 'wix-router';", + "", + "export function myRouter_Router(request) {", + "", + " let dataObj = {", + " \"field1\": \"value1\",", + " \"field2\": \"value2\"", + " };", + "", + " let headOptions = {", + " \"title\": \"A page title\",", + " \"metaTags\": [", + " {", + " \"name\": \"description\",", + " \"content\": \"A page description\"", + " }, {", + " \"name\": \"keywords\",", + " \"content\": \"Velo Example\"", + " }, {", + " \"name\": \"robots\",", + " \"content\": \"noindex\"", + " }, {", + " \"name\": \"og:title\",", + " \"content\": \"The Title\"", + " }, {", + " \"property\": \"og:image\",", + " \"content\": \"wix:image://v1/6...2.jpg/a.jpg#originWidth=970&originHeight=120\"", + " }", + " ],", + " \"links\": [", + " {", + " \"rel\": \"canonical\",", + " \"href\": \"http://mysite.com/somePage.html\"", + " }", + " ],", + " \"structuredData\": [", + " {", + " \"@context\": \"http://schema.org\",", + " \"@type\": \"Organization\",", + " \"name\": \"My Organization Name\",", + " \"url\": \"https://www.myorgdomain.com\"", + " }, {", + " \"@context\": \"http://schema.org\",", + " \"@type\": \"Person\",", + " \"email\": \"mailto:john.doe@somedomain.com\",", + " \"jobTitle\": \"Professor\",", + " \"name\": \"John Doe\",", + " \"telephone\": \"(555) 555-555\"", + " }", + " ]", + " };", + "", + " return ok(\"router-page\", dataObj, headOptions);", + "}" ], + "extra": + { } } ], + "extra": + { } }, + "members": + [ { "name": "title", + "type": "string", + "doc": "The page title. Written to the `` tag.", + "optional": true }, + { "name": "description", + "type": "string", + "doc": "**Deprecated: Use the new `metaTags` format instead.** \n\nThe page description.", + "optional": true }, + { "name": "keywords", + "type": "string", + "doc": "**Deprecated: Use the new `metaTags` format instead.**\n\n The page keywords.", + "optional": true }, + { "name": "noIndex", + "type": "boolean", + "doc": "**Deprecated: Use the new `metaTags` format instead.**\n\n Indicates whether to add a meta tag that prevents search engines from indexing the\n page.", + "optional": true }, + { "name": "metaTags", + "type": + { "name": "Array", + "typeParams": + [ "wix-router.WixRouterResponse.MetaTag" ] }, + "doc": "The page's SEO-related meta tags.\n\n The keys in the object represent the keys in the tag and the values in the\n object represent the values in the tag.\n\n For example:\n\n ```javascript\n {\n \"property\": \"og:image\",\n \"content\": \"https://.../Wix+logo.jpg\"\n }\n ```\n\nProduces:\n\n ```html\n <meta property=\"og:image\" content=\"https://.../Wix+logo.jpg\"/>\n ```\n\n When setting `og:image` meta tags, the `content` can be an external image URL\n or a Media Manager image URL as described [here]($w.Image.html#src).\n\n **Deprecated format:** An object with key:value pairs where the key is the meta tag name\n and the value is the content.", + "optional": true }, + { "name": "links", + "type": + { "name": "Array", + "typeParams": + [ "wix-router.WixRouterResponse.Link" ] }, + "doc": "The page's SEO-related link tags,\n which provide additional SEO information about the page. For example, you can set a\n link to a canonical or alternate version of the page.", + "optional": true }, + { "name": "structuredData", + "type": + { "name": "Array", + "typeParams": + [ "Object" ] }, + "doc": "The page's structured data, which helps search engines \n understand more about the page and your business so they can display a richer snippet of the\n page in search results.", + "optional": true } ], + "extra": + { }, + "labels": [] }, + { "name": "Link", + "locations": + [ { "lineno": 38, + "filename": "response.js" } ], + "docs": + { "summary": "An object representing a link tag.", + "links": [], + "examples": + [ { "title": "Get the head options of the response", + "body": + [ "export function myRouter_Router(request) {", + "", + " let head = response.head;", + "", + "/*", + " * {", + " * \"title\": \"A page title\",", + " * \"metaTags\": [", + " * {", + " * \"name\": \"description\",", + " * \"content\": \"A page description\"", + " * }, {", + " * \"name\": \"keywords\",", + " * \"content\": \"Velo Example\"", + " * }, {", + " * \"name\": \"robots\",", + " * \"content\": \"noindex\"", + " * }, {", + " * \"name\": \"og:title\",", + " * \"content\": \"The Title\"", + " * }, {", + " * \"property\": \"og:image\",", + " * \"content\": \"wix:image://v1/6...2.jpg/a.jpg#originWidth=970&originHeight=120\"", + " * }", + " * ],", + " * \"links\": [", + " * {", + " * \"rel\": \"canonical\",", + " * \"href\": \"http://mysite.com/somePage.html\"", + " * }", + " * ],", + " * \"structuredData\": [", + " * {", + " * \"@context\": \"http://schema.org\",", + " * \"@type\": \"Organization\",", + " * \"name\": \"My Organization Name\",", + " * \"url\": \"https://www.myorgdomain.com\"", + " * }, {", + " * \"@context\": \"http://schema.org\",", + " * \"@type\": \"Person\",", + " * \"email\": \"mailto:john.doe@somedomain.com\",", + " * \"jobTitle\": \"Professor\",", + " * \"name\": \"John Doe\",", + " * \"telephone\": \"(555) 555-555\"", + " * }", + " * ]", + " * }", + " */" ], + "extra": + { } }, + { "title": "Set the page options of the response", + "body": + [ "export function myRouter_Router(request) {", + "", + " let headOptions = {", + " \"title\": \"A page title\",", + " \"metaTags\": [", + " {", + " \"name\": \"description\",", + " \"content\": \"A page description\"", + " }, {", + " \"name\": \"keywords\",", + " \"content\": \"Velo Example\"", + " }, {", + " \"name\": \"robots\",", + " \"content\": \"noindex\"", + " }, {", + " \"name\": \"og:title\",", + " \"content\": \"The Title\"", + " }, {", + " \"property\": \"og:image\",", + " \"content\": \"wix:image://v1/6...2.jpg/a.jpg#originWidth=970&originHeight=120\"", + " }", + " ],", + " \"links\": [", + " {", + " \"rel\": \"canonical\",", + " \"href\": \"http://mysite.com/somePage.html\"", + " }", + " ],", + " \"structuredData\": [", + " {", + " \"@context\": \"http://schema.org\",", + " \"@type\": \"Organization\",", + " \"name\": \"My Organization Name\",", + " \"url\": \"https://www.myorgdomain.com\"", + " }, {", + " \"@context\": \"http://schema.org\",", + " \"@type\": \"Person\",", + " \"email\": \"mailto:john.doe@somedomain.com\",", + " \"jobTitle\": \"Professor\",", + " \"name\": \"John Doe\",", + " \"telephone\": \"(555) 555-555\"", + " }", + " ]", + " };", + "", + " let response.head = headOptions;" ], + "extra": + { } } ], + "extra": + { } }, + "members": + [ { "name": "rel", + "type": "string", + "doc": "The relationship of the linked resource to the current page.", + "optional": true }, + { "name": "href", + "type": "string", + "doc": "The URL of the linked resource.", + "optional": true } ], + "extra": + { }, + "labels": [] }, + { "name": "MetaTag", + "locations": + [ { "lineno": 47, + "filename": "response.js" } ], + "docs": + { "summary": "An object representing a meta tag.", + "links": [], + "examples": + [ { "title": "Get the head options of the response", + "body": + [ "export function myRouter_Router(request) {", + "", + " let head = response.head;", + "", + "/*", + " * {", + " * \"title\": \"A page title\",", + " * \"metaTags\": [", + " * {", + " * \"name\": \"description\",", + " * \"content\": \"A page description\"", + " * }, {", + " * \"name\": \"keywords\",", + " * \"content\": \"Velo Example\"", + " * }, {", + " * \"name\": \"robots\",", + " * \"content\": \"noindex\"", + " * }, {", + " * \"name\": \"og:title\",", + " * \"content\": \"The Title\"", + " * }, {", + " * \"property\": \"og:image\",", + " * \"content\": \"wix:image://v1/6...2.jpg/a.jpg#originWidth=970&originHeight=120\"", + " * }", + " * ],", + " * \"links\": [", + " * {", + " * \"rel\": \"canonical\",", + " * \"href\": \"http://mysite.com/somePage.html\"", + " * }", + " * ],", + " * \"structuredData\": [", + " * {", + " * \"@context\": \"http://schema.org\",", + " * \"@type\": \"Organization\",", + " * \"name\": \"My Organization Name\",", + " * \"url\": \"https://www.myorgdomain.com\"", + " * }, {", + " * \"@context\": \"http://schema.org\",", + " * \"@type\": \"Person\",", + " * \"email\": \"mailto:john.doe@somedomain.com\",", + " * \"jobTitle\": \"Professor\",", + " * \"name\": \"John Doe\",", + " * \"telephone\": \"(555) 555-555\"", + " * }", + " * ]", + " * }", + " */" ], + "extra": + { } }, + { "title": "Set the page options of the response", + "body": + [ "export function myRouter_Router(request) {", + "", + " let headOptions = {", + " \"title\": \"A page title\",", + " \"metaTags\": [", + " {", + " \"name\": \"description\",", + " \"content\": \"A page description\"", + " }, {", + " \"name\": \"keywords\",", + " \"content\": \"Velo Example\"", + " }, {", + " \"name\": \"robots\",", + " \"content\": \"noindex\"", + " }, {", + " \"name\": \"og:title\",", + " \"content\": \"The Title\"", + " }, {", + " \"property\": \"og:image\",", + " \"content\": \"wix:image://v1/6...2.jpg/a.jpg#originWidth=970&originHeight=120\"", + " }", + " ],", + " \"links\": [", + " {", + " \"rel\": \"canonical\",", + " \"href\": \"http://mysite.com/somePage.html\"", + " }", + " ],", + " \"structuredData\": [", + " {", + " \"@context\": \"http://schema.org\",", + " \"@type\": \"Organization\",", + " \"name\": \"My Organization Name\",", + " \"url\": \"https://www.myorgdomain.com\"", + " }, {", + " \"@context\": \"http://schema.org\",", + " \"@type\": \"Person\",", + " \"email\": \"mailto:john.doe@somedomain.com\",", + " \"jobTitle\": \"Professor\",", + " \"name\": \"John Doe\",", + " \"telephone\": \"(555) 555-555\"", + " }", + " ]", + " };", + "", + " let response.head = headOptions;" ], + "extra": + { } } ], + "extra": + { } }, + "members": + [ { "name": "name", + "type": "string", + "doc": "Name of the meta tag. Either `name` or `property` is required.", + "optional": true }, + { "name": "property", + "type": "string", + "doc": "Name of the meta tag property. Either `property` or `name` is required.", + "optional": true }, + { "name": "http-equiv", + "type": "string", + "doc": "HTTP header that corresponds to the `content`.", + "optional": true }, + { "name": "content", + "type": "string", + "doc": "Meta tag value. For `og:image` meta tags, the `content` can\n be an external image URL or a Media Manager image URL as described [here]($w.Image.html#src)." } ], + "extra": + { }, + "labels": [] } ], + "extra": + { } } \ No newline at end of file diff --git a/wix-router/wix-router/WixRouterSitemapEntry.service.json b/wix-router/wix-router/WixRouterSitemapEntry.service.json new file mode 100644 index 0000000000..23be249c7f --- /dev/null +++ b/wix-router/wix-router/WixRouterSitemapEntry.service.json @@ -0,0 +1,257 @@ +{ "name": "WixRouterSitemapEntry", + "memberOf": "wix-router", + "mixes": [], + "labels": [], + "location": + { "lineno": 1, + "filename": "sitemap-entry.js" }, + "docs": + { "summary": "An object representing a single entry in a sitemap.", + "links": [], + "examples": [], + "extra": + { } }, + "properties": + [ { "name": "changeFrequency", + "labels": [], + "get": true, + "set": true, + "type": "string", + "locations": + [ { "lineno": 44, + "filename": "sitemap-entry.js" }, + { "lineno": 50, + "filename": "sitemap-entry.js" } ], + "docs": + { "summary": "Sets or gets how frequently the page is likely to change.", + "description": + [ "The value of the `changeFrequency` property provides general information to", + "search engines and may not correlate exactly to how often they crawl the page.", + "", + "Valid values:", + "", + "+ `\"always\"`", + "+ `\"hourly\"`", + "+ `\"daily\"`", + "+ `\"weekly\"`", + "+ `\"monthly\"`", + "+ `\"yearly\"`", + "+ `\"never\"`" ], + "links": [], + "examples": + [ { "title": "Get the change frequency of the sitemap entry", + "body": + [ "export function myRouter_SiteMap(sitemapRequest) {", + "", + " let changeFrequency = entry.changeFrequency; // \"weekly\"", + "", + "}" ], + "extra": + { } }, + { "title": "Set the change frequency of the sitemap entry", + "body": + [ "export function myRouter_SiteMap(sitemapRequest) {", + "", + " entry.changeFrequency = \"weekly\";", + "", + "}" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "lastModified", + "labels": [], + "get": true, + "set": true, + "type": "Date", + "locations": + [ { "lineno": 28, + "filename": "sitemap-entry.js" }, + { "lineno": 34, + "filename": "sitemap-entry.js" } ], + "docs": + { "summary": "Sets or gets when was the page data last modified.", + "links": [], + "examples": + [ { "title": "Get the sitemap entry last modified date", + "body": + [ "export function myRouter_SiteMap(sitemapRequest) {", + "", + " let lastModified = entry.lastModified;", + " let year = lastModified.getFullYear(); // 2017", + "", + "}" ], + "extra": + { } }, + { "title": "Set the sitemap entry last modified date", + "body": + [ "export function myRouter_SiteMap(sitemapRequest) {", + "", + " entry.lastModified = new Date(2017, 9, 13);", + "", + "}" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "pageName", + "labels": [], + "get": true, + "set": true, + "type": "string", + "locations": + [ { "lineno": 114, + "filename": "sitemap-entry.js" }, + { "lineno": 120, + "filename": "sitemap-entry.js" } ], + "docs": + { "summary": "Sets or gets the page name.", + "links": [], + "examples": + [ { "title": "Get the name of the sitemap entry", + "body": + [ "export function myRouter_SiteMap(sitemapRequest) {", + "", + " let pageName = entry.pageName; // \"Page Name\"", + "", + "}" ], + "extra": + { } }, + { "title": "Set the name of the sitemap entry", + "body": + [ "export function myRouter_SiteMap(sitemapRequest) {", + "", + " entry.pageName = \"Page Name\";", + "", + "}" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "priority", + "labels": [], + "get": true, + "set": true, + "type": "number", + "locations": + [ { "lineno": 73, + "filename": "sitemap-entry.js" }, + { "lineno": 79, + "filename": "sitemap-entry.js" } ], + "docs": + { "summary": "Sets or gets the priority of this URL relative to other URLs on your site.", + "description": + [ "The value of the `priority` property lets search engines know which pages", + "you deem most important. Its value does not affect how your pages are", + "compared to pages on other sites.", + "", + "Valid values range from 0.0 to 1.0.", + "", + "The default priority of a page is 0.5." ], + "links": [], + "examples": + [ { "title": "Get the relative priority of the sitemap entry", + "body": + [ "export function myRouter_SiteMap(sitemapRequest) {", + "", + " let priority = entry.priority; // 0.9", + "", + "}" ], + "extra": + { } }, + { "title": "Set the relative priority of the sitemap entry", + "body": + [ "export function myRouter_SiteMap(sitemapRequest) {", + "", + " entry.priority = 0.9;", + "", + "}" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "title", + "labels": [], + "get": true, + "set": true, + "type": "string", + "locations": + [ { "lineno": 98, + "filename": "sitemap-entry.js" }, + { "lineno": 104, + "filename": "sitemap-entry.js" } ], + "docs": + { "summary": "Sets or gets the page title.", + "links": [], + "examples": + [ { "title": "Get the title of the sitemap entry", + "body": + [ "export function myRouter_SiteMap(sitemapRequest) {", + "", + " let title = entry.title; // \"Page Title\"", + "", + "}" ], + "extra": + { } }, + { "title": "Set the title of the sitemap entry", + "body": + [ "export function myRouter_SiteMap(sitemapRequest) {", + "", + " entry.title = \"Page Title\";", + "", + "}" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "url", + "labels": [], + "get": true, + "set": true, + "type": "string", + "locations": + [ { "lineno": 12, + "filename": "sitemap-entry.js" }, + { "lineno": 18, + "filename": "sitemap-entry.js" } ], + "docs": + { "summary": "Sets or gets the relative url of the page.", + "links": [], + "examples": + [ { "title": "Get the sitemap entry relative URL", + "body": + [ "export function myRouter_SiteMap(sitemapRequest) {", + "", + " let url = entry.url; // \"/myRouter/A\"", + "", + "}" ], + "extra": + { } }, + { "title": "Set the sitemap entry relative URL", + "body": + [ "export function myRouter_SiteMap(sitemapRequest) {", + "", + " entry.url = \"/myRouter/A\";", + "", + "}" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } } ], + "operations": [], + "callbacks": [], + "messages": [], + "extra": + { } } \ No newline at end of file diff --git a/wix-router/wix-router/WixRouterSitemapRequest.service.json b/wix-router/wix-router/WixRouterSitemapRequest.service.json new file mode 100644 index 0000000000..de75012923 --- /dev/null +++ b/wix-router/wix-router/WixRouterSitemapRequest.service.json @@ -0,0 +1,173 @@ +{ "name": "WixRouterSitemapRequest", + "memberOf": "wix-router", + "mixes": [], + "labels": [], + "location": + { "lineno": 1, + "filename": "sitemap-request.js" }, + "docs": + { "summary": "An object representing a request for a sitemap.", + "links": [], + "examples": [], + "extra": + { } }, + "properties": + [ { "name": "baseUrl", + "labels": [], + "get": true, + "set": false, + "type": "string", + "locations": + [ { "lineno": 6, + "filename": "sitemap-request.js" } ], + "docs": + { "summary": "Returns the base URL of the request.", + "description": + [ "Premium sites:", + " ![Premium site baseUrl](images/url_premium_baseUrl.png \"Premium site baseUrl\")", + "", + " Free sites:", + " ![Free site baseUrl](images/url_free_baseUrl.png \"Free site baseUrl\")" ], + "links": [], + "examples": + [ { "title": "Get the base URL of the request", + "body": + [ "export function myRouter_SiteMap(sitemapRequest) {", + "", + " let baseUrl = sitemapRequest.baseUrl;", + " // Premium site: \"https://domain.com\"", + " // Free site: \"https://user.wixsite.com/zoo\"", + "", + "}" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "pageName", + "labels": [], + "get": true, + "set": false, + "type": "string", + "locations": + [ { "lineno": 51, + "filename": "sitemap-request.js" } ], + "docs": + { "summary": "Sets or gets the page name.", + "links": [], + "examples": + [ { "title": "Get the request's page name", + "body": + [ "export function myRouter_SiteMap(sitemapRequest) {", + "", + " let pageName = sitemapRequest.pageName; // \"Page Name\"", + "", + "}" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "pages", + "labels": [], + "get": true, + "set": false, + "type": + { "name": "Array", + "typeParams": + [ "string" ] }, + "locations": + [ { "lineno": 61, + "filename": "sitemap-request.js" } ], + "docs": + { "summary": "Returns the names of the pages associated with this router.", + "description": + [ "Pages are added and removed from a router in the Editor." ], + "links": [], + "examples": + [ { "title": "Get the names of the pages associated with this router", + "body": + [ "export function myRouter_SiteMap(sitemapRequest) {", + "", + " let pages = sitemapRequest.pages;", + " // [\"myRouter-page1\", \"myRouter-page2\"]", + "", + "}" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "prefix", + "labels": [], + "get": true, + "set": false, + "type": "string", + "locations": + [ { "lineno": 22, + "filename": "sitemap-request.js" } ], + "docs": + { "summary": "Returns the router prefix of the request.", + "description": + [ "Premium sites:", + " ![Premium site prefix](images/url_premium_prefix.png \"Premium site prefix\")", + "", + " Free sites:", + " ![Free site prefix](images/url_free_prefix.png \"Free site prefix\")" ], + "links": [], + "examples": + [ { "title": "Get the prefix of the request's URL", + "body": + [ "export function myRouter_SiteMap(sitemapRequest) {", + "", + " let prefix = sitemapRequest.prefix; // \"mammals\"", + "", + "}" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "user", + "labels": [], + "get": true, + "set": false, + "type": "wix-router.WixRouterUser", + "locations": + [ { "lineno": 38, + "filename": "sitemap-request.js" } ], + "docs": + { "summary": "Returns the details of the current site user who is logged in.", + "description": + [ "Returns an object with the `id` and `role` of the logged in user", + " who made the request." ], + "links": [], + "examples": + [ { "title": "Get the user from the request", + "body": + [ "export function myRouter_SiteMap(sitemapRequest) {", + "", + " let user = sitemapRequest.user;", + " /*", + " * {", + " * \"id\": \"f6q0fb32-b06r-469f-ag4d-9df89afkj5d9\",", + " * \"role\": \"Admin\"", + " * }", + " */", + "", + "}" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } } ], + "operations": [], + "callbacks": [], + "messages": [], + "extra": + { } } \ No newline at end of file diff --git a/wix-router/wix-router/WixRouterUser.service.json b/wix-router/wix-router/WixRouterUser.service.json new file mode 100644 index 0000000000..7a6076ce95 --- /dev/null +++ b/wix-router/wix-router/WixRouterUser.service.json @@ -0,0 +1,84 @@ +{ "name": "WixRouterUser", + "memberOf": "wix-router", + "mixes": [], + "labels": [], + "location": + { "lineno": 1, + "filename": "common-types.js" }, + "docs": + { "summary": "An object that contains information about the current site visitor who is logged in.", + "links": [], + "examples": [], + "extra": + { } }, + "properties": + [ { "name": "id", + "labels": [], + "get": true, + "set": false, + "type": "string", + "locations": + [ { "lineno": 8, + "filename": "common-types.js" } ], + "docs": + { "summary": "Gets the user's ID.", + "description": + [ "The unique ID of the user.", + "", + " > **Note:** The APIs in `WixRouterUser` are only partially functional when previewing your site.", + " View a published version of your site to see their complete functionality." ], + "links": [], + "examples": + [ { "title": "Get the user from the router request", + "body": + [ "export function myRouter_Router(request) {", + " let user = request.user;", + " let userId = user.id; // \"f6q0fb32-b06r-469f-ag4d-9df89afkj5d9\"", + " let role = user.role; // \"Admin\"", + "}" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "role", + "labels": [], + "get": true, + "set": false, + "type": "string", + "locations": + [ { "lineno": 23, + "filename": "common-types.js" } ], + "docs": + { "summary": "Gets the user's role.", + "description": + [ "Gets one of the following roles:", + "", + " + `\"Admin\"` — The owner of the site.", + " + `\"Member\"` — A user who is logged in.", + " + `\"Visitor\"` — A user who is not logged in.", + "", + "", + "> **Note:** The APIs in `WixRouterUser` are only partially functional when previewing your site.", + " View a published version of your site to see their complete functionality." ], + "links": [], + "examples": + [ { "title": "Get the user from the router request", + "body": + [ "export function myRouter_Router(request) {", + " let user = request.user;", + " let userId = user.id; // \"f6q0fb32-b06r-469f-ag4d-9df89afkj5d9\"", + " let role = user.role; // \"Admin\"", + "}" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } } ], + "operations": [], + "callbacks": [], + "messages": [], + "extra": + { } } \ No newline at end of file diff --git a/wix-router/wix-router/guides/Coding with the Router API.md b/wix-router/wix-router/guides/Coding with the Router API.md new file mode 100644 index 0000000000..7439a37c54 --- /dev/null +++ b/wix-router/wix-router/guides/Coding with the Router API.md @@ -0,0 +1,95 @@ +# Coding with the Router API + + + +The functions in the **routers.js** file are named with the following convention: + + +``` javascript +export function <router-prefix>_<function-name>() +``` + +These are not functions that you call in your code, rather they are functions +that you define. They are called when your users browse to a URL that is handled +by a router as described below. + + +For example, the following code creates a router on the myRouter [prefix](#prefixes) that +shows a page when the path begins with the word "good" and returns a 404 in +all other cases. + +```javascript +import {ok, notFound} from "wix-router"; + +export function myRouter_Router(request) { + + // URL looks like: + // https://mysite.com/myRouter/good + // or: + // https://user.wixsite.com/mysite/myRouter/good + const status = request.path[0]; + + if(status === "good") { + // Show a page + return ok("myRouter-page"); + } + else { + // Return 404 + return notFound(); + } +} +``` + +### Code Router +Code your own [`router()`](#router) and [`sitemap()`](#sitemap) functions for a +[router](https://support.wix.com/en/article/routers) that handles all incoming +requests with a specified URL [prefix](#prefixes). Your code decides what actions to +perform, what responses to return, where to route the request, and what data +to pass to pages. + +You might want to use a router to: + + ++ Display a dynamic page using content from any data source. ++ Customize your URLs to make them more meaningful and yield better SEO results. ++ Authenticate users and then display content just for them. ++ Return custom HTTP response codes. + + +### Data Binding Router Hooks +When a request comes in for a page that a router handles, either a code router +or a dynamic page, you can add [data binding router hooks](https://support.wix.com/en/article/data-binding-router-hooks) +to intercept the process of the data getting bound to the page at certain +points and insert additional logic. + +The hooks you can use are listed here in the order they are triggered: + ++ [`beforeRouter`](/wix-router/beforeRouter) - Before the data binding router logic. ++ [`customizeQuery`](/wix-router/customizeQuery) - As the data binding router prepares a data query. ++ [`afterRouter`](/wix-router/afterRouter) - After the data binding router completes its logic, but before the page is displayed. ++ [`afterSitemap`](/wix-router/afterSitemap) - After the data binding sitemap function completes preparing the list of urls. + +### Prefixes + +When using the `wix-router` API you often need to know the prefix of your code router +or dynamic pages. You can find prefixes as follows: + ++ **Code router**: + + 1. Go to in the Page Code's Router Pages section of the Velo Sidebar. + 1. Click the ellipsis   ![ellipsis](../assets/images/ellipses.png)   icon that appears when you hover over the title of the router's grouped router pages. + 1. Click **Change Router**. + + The router's prefix is displayed. + + ++ **Dynamic pages**: + + 1. Go to in the Page Code's Dynamic Pages section of the Velo Sidebar. + + 1. Click the ellipsis   ![ellipsis](../assets/images/ellipses.png)   icon that appears when you hover over the dynamic page. + + 1. Click **Settings**. + + The **Page Info** tab shows the page URL. The prefix is the + first editable section of the URL up until the first forward slash (/). \ No newline at end of file From 708fe80081636f247a4fd5aaf284cbcf0aeafc44 Mon Sep 17 00:00:00 2001 From: Wix Docs Feds <wix-docs-feds@wix.com> Date: Fri, 3 Mar 2023 11:46:12 +0000 Subject: [PATCH 07/45] Auto commit to autodocs-wix-forum-v2 from WixDocs Server --- wix-forum-v2/wix-forum-v2/Events.service.json | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/wix-forum-v2/wix-forum-v2/Events.service.json b/wix-forum-v2/wix-forum-v2/Events.service.json index a48072fa97..5f9647cb34 100644 --- a/wix-forum-v2/wix-forum-v2/Events.service.json +++ b/wix-forum-v2/wix-forum-v2/Events.service.json @@ -185,7 +185,7 @@ "description": [], "examples": [ { - "title": "OnPostClosed example", + "title": "onPostClosed example", "body": [ "", " export function wixForum_onPostClosed(event) {", @@ -234,7 +234,7 @@ "description": [], "examples": [ { - "title": "OnPostCreated example", + "title": "onPostCreated example", "body": [ "", " export function wixForum_onPostCreated(event) {", @@ -283,7 +283,7 @@ "description": [], "examples": [ { - "title": "OnPostDeleted example", + "title": "onPostDeleted example", "body": [ "", " export function wixForum_onPostDeleted(event) {", @@ -332,7 +332,7 @@ "description": [], "examples": [ { - "title": "OnPostLiked example", + "title": "onPostLiked example", "body": [ "", " export function wixForum_onPostLiked(event) {", @@ -381,7 +381,7 @@ "description": [], "examples": [ { - "title": "OnPostMoved example", + "title": "onPostMoved example", "body": [ "", " export function wixForum_onPostMoved(event) {", @@ -430,7 +430,7 @@ "description": [], "examples": [ { - "title": "OnPostOpened example", + "title": "onPostOpened example", "body": [ "", " export function wixForum_onPostOpened(event) {", @@ -479,7 +479,7 @@ "description": [], "examples": [ { - "title": "OnPostPinned example", + "title": "onPostPinned example", "body": [ "", " export function wixForum_onPostPinned(event) {", @@ -528,7 +528,7 @@ "description": [], "examples": [ { - "title": "OnPostReacted example", + "title": "onPostReacted example", "body": [ "", " export function wixForum_onPostReacted(event) {", @@ -577,7 +577,7 @@ "description": [], "examples": [ { - "title": "OnPostReported example", + "title": "onPostReported example", "body": [ "", " export function wixForum_onPostReported(event) {", @@ -626,7 +626,7 @@ "description": [], "examples": [ { - "title": "OnPostUnliked example", + "title": "onPostUnliked example", "body": [ "", " export function wixForum_onPostUnliked(event) {", @@ -675,7 +675,7 @@ "description": [], "examples": [ { - "title": "OnPostUnpinned example", + "title": "onPostUnpinned example", "body": [ "", " export function wixForum_onPostUnpinned(event) {", @@ -724,7 +724,7 @@ "description": [], "examples": [ { - "title": "OnPostUnreacted example", + "title": "onPostUnreacted example", "body": [ "", " export function wixForum_onPostUnreacted(event) {", @@ -773,7 +773,7 @@ "description": [], "examples": [ { - "title": "OnPostUpdated example", + "title": "onPostUpdated example", "body": [ "", " export function wixForum_onPostUpdated(event) {", From 81e122e494114770c5d32126d367186bb1187a4d Mon Sep 17 00:00:00 2001 From: wix-docs-feds <87931637+wix-docs-feds@users.noreply.github.com> Date: Sun, 5 Mar 2023 11:02:18 +0200 Subject: [PATCH 08/45] updated ecom updateCheckout example * Auto commit to autodocs-wix-ecom-backend from WixDocs Server * Publishing Bookings Services Publishing Bookings Services * Auto commit to autodocs-wix-ecom-backend from WixDocs Server * Auto commit to autodocs-wix-ecom-backend from WixDocs Server * Auto commit to autodocs-wix-ecom-backend from WixDocs Server * Auto commit to autodocs-wix-ecom-backend from WixDocs Server * Auto commit to autodocs-wix-ecom-backend from WixDocs Server --------- Co-authored-by: guyofeck <guyo@wix.com> Co-authored-by: roysha-wix <62389977+roysha-wix@users.noreply.github.com> --- .../wix-bookings-v2/Events.service.json | 11126 ++++++++++++++++ .../ServiceOptionsAndVariants.service.json | 7117 ++++++++++ ...nsAndVariantsListQueryBuilder.service.json | 599 + ...onsAndVariantsListQueryResult.service.json | 401 + .../wix-bookings-v2/Sessions.service.json | 3986 ++++++ .../SessionsQueryBuilder.service.json | 1066 ++ .../Sessions/SessionsQueryResult.service.json | 382 + .../wix-bookings-v2/SessionsFeed.service.json | 3955 ++++++ .../wix-bookings-v2/SessionsView.service.json | 4027 ++++++ 9 files changed, 32659 insertions(+) create mode 100644 wix-bookings-v2/wix-bookings-v2/Events.service.json create mode 100644 wix-bookings-v2/wix-bookings-v2/ServiceOptionsAndVariants.service.json create mode 100644 wix-bookings-v2/wix-bookings-v2/ServiceOptionsAndVariants/ServiceOptionsAndVariantsListQueryBuilder.service.json create mode 100644 wix-bookings-v2/wix-bookings-v2/ServiceOptionsAndVariants/ServiceOptionsAndVariantsListQueryResult.service.json create mode 100644 wix-bookings-v2/wix-bookings-v2/Sessions.service.json create mode 100644 wix-bookings-v2/wix-bookings-v2/Sessions/SessionsQueryBuilder.service.json create mode 100644 wix-bookings-v2/wix-bookings-v2/Sessions/SessionsQueryResult.service.json create mode 100644 wix-bookings-v2/wix-bookings-v2/SessionsFeed.service.json create mode 100644 wix-bookings-v2/wix-bookings-v2/SessionsView.service.json diff --git a/wix-bookings-v2/wix-bookings-v2/Events.service.json b/wix-bookings-v2/wix-bookings-v2/Events.service.json new file mode 100644 index 0000000000..be9aebcad5 --- /dev/null +++ b/wix-bookings-v2/wix-bookings-v2/Events.service.json @@ -0,0 +1,11126 @@ +{ + "name": "Events", + "memberOf": "wix-bookings-v2", + "mixes": [], + "callbacks": [], + "extra": {}, + "clientId": "wix-bookings.v2-events", + "docs": {}, + "relatedGuides": [], + "properties": [], + "operations": [ + { + "name": "onServiceOptionsAndVariantsCreated", + "params": [ + { + "name": "event", + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsServiceOptionsAndVariantsCreated", + "displayName": "ServiceOptionsAndVariantsCreated" + } + ], + "doc": "", + "required": false + } + ], + "requiredFields": [], + "ret": { + "type": [ + { + "nativeType": "void" + } + ], + "doc": null + }, + "docs": { + "summary": "Triggered when a `serviceOptionsAndVariants` object is created.", + "description": [], + "examples": [ + { + "title": "onServiceOptionsAndVariantsCreated example", + "body": [ + "", + " export function wixBookingsCatalog_onServiceOptionsAndVariantsCreated(event) {", + " const eventId = event.metadata.id", + " const entityId = event.entity._id;", + " }", + "", + " " + ] + } + ] + }, + "isVeloEvent": true, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "onServiceOptionsAndVariantsDeleted", + "params": [ + { + "name": "event", + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsServiceOptionsAndVariantsDeleted", + "displayName": "ServiceOptionsAndVariantsDeleted" + } + ], + "doc": "", + "required": false + } + ], + "requiredFields": [], + "ret": { + "type": [ + { + "nativeType": "void" + } + ], + "doc": null + }, + "docs": { + "summary": "Triggered when a `serviceOptionsAndVariants` object is deleted.", + "description": [], + "examples": [ + { + "title": "onServiceOptionsAndVariantsDeleted example", + "body": [ + "", + " export function wixBookingsCatalog_onServiceOptionsAndVariantsDeleted(event) {", + " const eventId = event.metadata.id", + " const entityId = event.entity._id;", + " }", + "", + " " + ] + } + ] + }, + "isVeloEvent": true, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "onServiceOptionsAndVariantsUpdated", + "params": [ + { + "name": "event", + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsServiceOptionsAndVariantsUpdated", + "displayName": "ServiceOptionsAndVariantsUpdated" + } + ], + "doc": "", + "required": false + } + ], + "requiredFields": [], + "ret": { + "type": [ + { + "nativeType": "void" + } + ], + "doc": null + }, + "docs": { + "summary": "Triggered when a `serviceOptionsAndVariants` object is updated.", + "description": [], + "examples": [ + { + "title": "onServiceOptionsAndVariantsUpdated example", + "body": [ + "", + " export function wixBookingsCatalog_onServiceOptionsAndVariantsUpdated(event) {", + " const eventId = event.metadata.id", + " const entityId = event.entity._id;", + " }", + "", + " " + ] + } + ] + }, + "isVeloEvent": true, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + } + ], + "messages": [ + { + "name": "bookingsCalendarV2SessionViewAddress", + "members": [ + { + "name": "addressLine", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Main address line, usually street and number, as free text." + }, + { + "name": "addressLine2", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Free text providing more detailed address info. Usually contains Apt, Suite, and Floor." + }, + { + "name": "city", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "City name." + }, + { + "name": "country", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Country code." + }, + { + "name": "countryFullname", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Country full name." + }, + { + "name": "formattedAddress", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "A string containing the full address of this location." + }, + { + "name": "geocode", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewAddressLocation", + "displayName": "AddressLocation" + } + ], + "doc": "Coordinates of the physical address." + }, + { + "name": "hint", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Free text to help find the address." + }, + { + "name": "postalCode", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Zip/postal code." + }, + { + "name": "streetAddress", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewStreetAddress", + "displayName": "StreetAddress" + } + ], + "doc": "Street name, number and apartment number." + }, + { + "name": "subdivision", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Subdivision. Usually state, region, prefecture or province code, according to [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2)." + }, + { + "name": "subdivisions", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewSubdivision", + "displayName": "Subdivision" + } + ] + } + } + ], + "doc": "Multi-level subdivisions from top to bottom." + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfAddressStreetOneOf", + "members": [ + "addressLine", + "streetAddress" + ] + } + ] + }, + "docs": { + "description": [ + "Physical address" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewAddressLocation", + "members": [ + { + "name": "latitude", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Address latitude." + }, + { + "name": "longitude", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Address longitude." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewAddressStreetOneOf", + "members": [ + { + "name": "addressLine", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Main address line, usually street and number, as free text." + }, + { + "name": "streetAddress", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewStreetAddress", + "displayName": "StreetAddress" + } + ], + "doc": "Street name, number and apartment number." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewAvailability", + "members": [ + { + "name": "constraints", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewAvailabilityConstraints", + "displayName": "AvailabilityConstraints" + } + ], + "doc": "Constraints for calculating the schedule's availability." + }, + { + "name": "end", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "Date and time the schedule stops being available for booking. No value indicates no end time." + }, + { + "name": "linkedSchedules", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewLinkedSchedule", + "displayName": "LinkedSchedule" + } + ] + } + } + ], + "doc": "Other schedules that impact the availability calculation. Relevant only when there are availability constraints." + }, + { + "name": "start", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "Date and time the schedule starts to be available for booking." + } + ], + "docs": { + "description": [ + "<!-- Needs updating when recurrence has been tested\nSchedule's availability calculation is executed by the schedule's available intervals and this additional information.\nSchedule's available intervals are recurring intervals (defined in the schedule) minus sessions that has no more spots for bookings (including time between_slots), or schedule's sessions with open spots for bookings.-->" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewAvailabilityConstraints", + "members": [ + { + "name": "slotDurations", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "number" + } + ] + } + } + ], + "doc": "A list of duration options for slots, in minutes. Minimum value for a duration is 1.\nThe availability calculation generates slots with these durations, where there is no conflict with existing sessions or other availability constraints." + }, + { + "name": "slotsSplitInterval", + "readOnly": true, + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewSplitInterval", + "displayName": "SplitInterval" + } + ], + "doc": "An object defining the time between available slots' start times. For example, a slot with slots_split_interval=5 can start every 5 minutes. The default is the slot duration." + }, + { + "name": "splitInterval", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Specify how to split the slots in intervals of minutes.\nThis value indicates the time between available slots' start time. e.g., from 5 minute slots (3:00, 3:05, 3:15) and 1 hour slots (3:00, 4:00, 5:00).\nOptional. The default is the first duration in slot_durations field.\nDeprecated. Use the `split_slots_interval.value_in_minutes`." + }, + { + "name": "timeBetweenSlots", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "The number of minutes between the `end` of one slot, and the `start` of the next.\nMinimum value is 0, maximum value is 120." + } + ], + "docs": { + "description": [ + "Describes how to calculate the specific slots that are available for booking." + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewAvailabilityPolicy", + "members": [ + { + "name": "splitInterval", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewSplitInterval", + "displayName": "SplitInterval" + } + ], + "doc": "Specify how to split the schedule slots in intervals of minutes." + } + ], + "docs": { + "description": [ + "Availability policy applied to all site schedules." + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewAvailabilityPolicyUpdated", + "members": [ + { + "name": "availabilityPolicy", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewAvailabilityPolicy", + "displayName": "AvailabilityPolicy" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewBackendEventMetadata", + "members": [ + { + "name": "entityId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the entity associated with the event." + }, + { + "name": "eventTime", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Event timestamp." + }, + { + "name": "id", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Event ID." + }, + { + "name": "triggeredByAnonymizeRequest", + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the event was triggered as a result of a privacy regulation application (for example, [GDPR](https://support.wix.com/en/article/gdpr-frequently-asked-questions)). For advanced users." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewBusinessSchedule", + "members": [ + { + "name": "periods", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewTimePeriod", + "displayName": "TimePeriod" + } + ] + } + } + ], + "doc": "Weekly recurring time periods when the business is regularly open or the service is available. Limited to 100 time periods." + }, + { + "name": "specialHourPeriod", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewSpecialHourPeriod", + "displayName": "SpecialHourPeriod" + } + ] + } + } + ], + "doc": "Exceptions to the business's regular hours. The business can be open or closed during the exception." + } + ], + "docs": { + "description": [ + "Business schedule. Regular and exceptional time periods when the business is open or the service is available." + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewCalendarConference", + "members": [ + { + "name": "_id", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Wix Calendar conference ID." + }, + { + "name": "accountOwnerId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the account owner in the video conferencing service." + }, + { + "name": "conferenceType", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Conference type.\n<!--ONLY:VELO\nOne of:\n- `\"ONLINE_MEETING_PROVIDER\"` API-generated online meeting.\n- `\"CUSTOM\"` User-defined meeting.\n<!--END:ONLY:VELO-->" + }, + { + "name": "description", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Conference description." + }, + { + "name": "externalId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Conference meeting ID in the provider's conferencing system." + }, + { + "name": "guestUrl", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "URL used by a guest to join the conference." + }, + { + "name": "hostUrl", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "URL used by the host to start the conference." + }, + { + "name": "password", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Password to join the conference." + }, + { + "name": "providerId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Conference provider ID." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewCalendarDateTime", + "members": [ + { + "name": "localDateTime", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewLocalDateTime", + "displayName": "LocalDateTime" + } + ], + "doc": "An object containing the local date and time for the business's time zone." + }, + { + "name": "timeZone", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The time zone. Optional. Derived from the schedule's time zone.\nIn case this field is associated with recurring session, this field is empty." + }, + { + "name": "timestamp", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "UTC date-time in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601#Coordinated_Universal_Time_(UTC)) format. If a time zone offset is specified, the time is converted to UTC. For example, if you specify `new Date('2021-01-06T16:00:00.000-07:00')`, the stored value will be `\"2021-01-06T23:00:00.000Z\"`.\nRequired if `localDateTime` is not specified.\nIf `localDateTime` is specified, `timestamp` is calculated as `localDateTime`, using the business's time zone." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewCancel", + "members": [], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewComplete", + "members": [], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewConferenceProvider", + "members": [ + { + "name": "providerId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Conferencing provider ID" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewEmpty", + "members": [], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewExtendSessionViewRequest", + "members": [ + { + "name": "futureDurationInDays", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "The number of days the view lasts into the future.\nMust be greater than the current value." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewExtendSessionViewResponse", + "members": [ + { + "name": "sessionView", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewSessionView", + "displayName": "SessionView" + } + ], + "doc": "The updated sessions view." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewExternalCalendarInfo", + "members": [ + { + "name": "calendarType", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The external calendar type (e.g. Google Calendar, iCal, etc)." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewExternalCalendarOverrides", + "members": [ + { + "name": "description", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Synced description of the external calendar event." + }, + { + "name": "title", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Synced title of the external calendar event." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewFeedEvent", + "members": [ + { + "name": "sessionAddedOrUpdated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewSessionAddedOrUpdated", + "displayName": "SessionAddedOrUpdated" + } + ], + "doc": "Session has been added or updated within the feed window." + }, + { + "name": "sessionRemoved", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewSessionRemoved", + "displayName": "SessionRemoved" + } + ], + "doc": "Session has been removed from the feed." + }, + { + "name": "windowExtended", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewWindowExtended", + "displayName": "WindowExtended" + } + ], + "doc": "The feed window has been extended." + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfFeedEventTypeOneOf", + "members": [ + "sessionAddedOrUpdated", + "sessionRemoved", + "windowExtended", + "windowMoved" + ] + } + ] + }, + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewFeedEventTypeOneOf", + "members": [ + { + "name": "sessionAddedOrUpdated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewSessionAddedOrUpdated", + "displayName": "SessionAddedOrUpdated" + } + ], + "doc": "Session has been added or updated within the feed window." + }, + { + "name": "sessionRemoved", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewSessionRemoved", + "displayName": "SessionRemoved" + } + ], + "doc": "Session has been removed from the feed." + }, + { + "name": "windowExtended", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewWindowExtended", + "displayName": "WindowExtended" + } + ], + "doc": "The feed window has been extended." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewFeedReplayEvent", + "members": [ + { + "name": "replayCompleted", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewReplayCompleted", + "displayName": "ReplayCompleted" + } + ], + "doc": "Sessions replay completed." + }, + { + "name": "replayId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + }, + { + "name": "sessionAdded", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewSessionAdded", + "displayName": "SessionAdded" + } + ], + "doc": "Session has been added within the feed window." + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfFeedReplayEventTypeOneOf", + "members": [ + "replayCompleted", + "sessionAdded" + ] + } + ] + }, + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewFeedReplayEventTypeOneOf", + "members": [ + { + "name": "replayCompleted", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewReplayCompleted", + "displayName": "ReplayCompleted" + } + ], + "doc": "Sessions replay completed." + }, + { + "name": "sessionAdded", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewSessionAdded", + "displayName": "SessionAdded" + } + ], + "doc": "Session has been added within the feed window." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewFrequency", + "members": [ + { + "name": "repetition", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "The frequency of the recurrence in weeks. i.e. when this value is 4, the interval occurs every 4 weeks. Optional. The default is 1. minimum: 1, maximum: 52." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewGetSessionViewRequest", + "members": [], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewGetSessionViewResponse", + "members": [ + { + "name": "sessionView", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewSessionView", + "displayName": "SessionView" + } + ], + "doc": "The sessions view." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewInterval", + "members": [ + { + "name": "daysOfWeek", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The day the interval accrue. Optional. The default is the day of the recurring interval's start time." + }, + { + "name": "duration", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "The duration of the interval in minutes. Required. Part of the session end time calculation. minimum: 1, maximum: 86400." + }, + { + "name": "hourOfDay", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "The hour of the day the interval accrue. must be consistent with the Interval start time. Options. The default is 0. minimum: 0, maximum: 23." + }, + { + "name": "minuteOfHour", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "The minutes of hour the interval accrue. must be consistent with the Interval end time. Options. The default is 0. minimum: 0, maximum: 59." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewIntervalSplit", + "members": [ + { + "name": "intervals", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewRecurringInterval", + "displayName": "RecurringInterval" + } + ] + } + } + ], + "doc": "" + }, + { + "name": "newScheduleVersion", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "" + }, + { + "name": "oldScheduleVersion", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "" + }, + { + "name": "scheduleId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewLinkedSchedule", + "members": [ + { + "name": "scheduleId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Schedule ID." + }, + { + "name": "scheduleOwnerId", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Owner ID, of the linked schedule." + }, + { + "name": "transparency", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Sets this schedule's availability for the duration of the linked schedule's sessions. Default is `\"BUSY\"`.\n<!--ONLY:REST-->\nIf set to `\"BUSY\"`, this schedule cannot have any available slots during the linked schedule's sessions.\nIf set to `\"FREE\"`, this schedule can have available slots during the linked schedule's sessions.\n<!--END:ONLY:REST-->\n\n<!--ONLY:VELO\nOne of:\n- `\"FREE\"` This schedule can have available slots during the linked schedule's sessions.\n- `\"BUSY\"` This schedule cannot have any available slots during the linked schedule's sessions.\n<!--END:ONLY:VELO-->\n" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewLocalDateTime", + "members": [ + { + "name": "dayOfMonth", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Day of the month, from 1-31." + }, + { + "name": "hourOfDay", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Hour of the day in 24-hour format, from 0-23." + }, + { + "name": "minutesOfHour", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Minute, from 0-59." + }, + { + "name": "monthOfYear", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Month number, from 1-12." + }, + { + "name": "year", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Year. 4-digit format." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewLocation", + "members": [ + { + "name": "address", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Free text address used when locationType is `OWNER_CUSTOM`." + }, + { + "name": "businessLocation", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewLocationsLocation", + "displayName": "LocationsLocation" + } + ], + "doc": "Valid when `locationType` is `OWNER_BUSINESS`. Defaults to the business's location.\n\n`businessSchedule` is not supported by Wix Bookings\n" + }, + { + "name": "customAddress", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewAddress", + "displayName": "Address" + } + ], + "doc": "Custom address, used when locationType is `\"OWNER_CUSTOM\"`. Might be used when locationType is `\"CUSTOM\"` in case the owner sets a custom address for the session which is different from the default." + }, + { + "name": "locationType", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Location type.\nOne of:\n- `\"OWNER_BUSINESS\"` The business address as set in the site’s general settings.\n- `\"OWNER_CUSTOM\"` The address as set when creating the service.\n- `\"CUSTOM\"` The address set for the individual session." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewLocationsAddress", + "members": [ + { + "name": "city", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "City name." + }, + { + "name": "country", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "2-letter country code in an [ISO-3166 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format." + }, + { + "name": "postalCode", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Postal or zip code." + }, + { + "name": "streetAddress", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewLocationsStreetAddress", + "displayName": "LocationsStreetAddress" + } + ], + "doc": "Street address. Includes street name, number, and apartment number in separate fields." + }, + { + "name": "subdivision", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Code for a subdivision (such as state, prefecture, or province) in [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2) format." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewLocationsAddressLocation", + "members": [ + { + "name": "latitude", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Latitude of the location. Must be between -90 and 90." + }, + { + "name": "longitude", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Longitude of the location. Must be between -180 and 180." + } + ], + "docs": { + "description": [ + "Address Geolocation" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewLocationsLocation", + "members": [ + { + "name": "_id", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Location ID." + }, + { + "name": "address", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewLocationsAddress", + "displayName": "LocationsAddress" + } + ], + "doc": "Address." + }, + { + "name": "archived", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the location is archived. Archived locations can't be updated.\n__Note:__ [Archiving a location](https://dev.wix.com/api/rest/business-info/locations/archive-location)\ndoesn't affect its `status`." + }, + { + "name": "businessSchedule", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewBusinessSchedule", + "displayName": "BusinessSchedule" + } + ], + "doc": "Business schedule. Array of weekly recurring time periods when the location is open for business. Limited to 100 time periods.\n\n__Note:__ Not supported by Wix Bookings.\n" + }, + { + "name": "default", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether this is the default location. There can only be one default location per site. The default location can't be archived." + }, + { + "name": "description", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Location description." + }, + { + "name": "email", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Email address." + }, + { + "name": "fax", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Fax number." + }, + { + "name": "locationType", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Location type. **Note:** Currently not supported." + }, + { + "name": "name", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Location name." + }, + { + "name": "phone", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Phone number." + }, + { + "name": "revision", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Revision number, which increments by 1 each time the location is updated.\nTo prevent conflicting changes, the existing revision must be used when updating a location." + }, + { + "name": "status", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Location status. Defaults to `ACTIVE`.\n__Note:__ [Archiving a location](https://dev.wix.com/api/rest/business-info/locations/archive-location)\ndoesn't affect the location's status. `INACTIVE` is currently not supported." + }, + { + "name": "timeZone", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Timezone in `America/New_York` format." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewLocationsStreetAddress", + "members": [ + { + "name": "apt", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Apartment number." + }, + { + "name": "name", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Street name." + }, + { + "name": "number", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Street number." + } + ], + "docs": { + "description": [ + "Street address. Includes street name, number, and apartment number in separate fields." + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewMigrationData", + "members": [ + { + "name": "businessId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + }, + { + "name": "staffs", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewStaffData", + "displayName": "StaffData" + } + ] + } + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewMigrationEvent", + "members": [ + { + "name": "migrationData", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewMigrationData", + "displayName": "MigrationData" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewMultipleSessionsCreated", + "members": [ + { + "name": "schedulesWithSessions", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewScheduleWithSessions", + "displayName": "ScheduleWithSessions" + } + ] + } + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewParticipant", + "members": [ + { + "name": "_id", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Participant ID. Currently represents the booking.id." + }, + { + "name": "approvalStatus", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Approval status for the participant.\n<!-- Commented out untill updateParticipant is exposed Generally the same status as the booking, unless updated using the `updateParticipant()` API. Defaults to `\"UNDEFINED\"`.-->\n<!--ONLY:VELO\nOne of:\n- `\"PENDING\"` Pending business approval.\n- `\"APPROVED\"` Approved by the business.\n- `\"DECLINED\"` Declined by the business.\n<!--END:ONLY:VELO-->" + }, + { + "name": "contactId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Contact ID." + }, + { + "name": "email", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Participant's email address." + }, + { + "name": "inherited", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the participant was inherited from the schedule, as opposed to being booked directly to the session." + }, + { + "name": "name", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Participant's name." + }, + { + "name": "partySize", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Group or party size. The number of people attending. Defaults to 0. Maximum is 250." + }, + { + "name": "phone", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Participant's phone number." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewParticipantNotification", + "members": [ + { + "name": "message", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Custom message to send to the participants about the changes to the booking." + }, + { + "name": "notifyParticipants", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether to send the message about the changes to the customer.\n\nDefault: `false`\n" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewPrice", + "members": [ + { + "name": "amount", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Required payment amount." + }, + { + "name": "currency", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Currency in which the amount is quoted." + }, + { + "name": "downPayAmount", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Amount of a down payment or deposit as part of the transaction." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewRate", + "members": [ + { + "name": "labeledPriceOptions", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Record", + "typeParams": [ + { + "nativeType": "string" + }, + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewPrice", + "displayName": "Price" + } + ] + } + } + ], + "doc": "Mapping between a named price option, for example, adult or child prices, and the price, currency, and down payment amount.\nWhen present in an update request, the `default_varied_price` is ignored to support backward compatibility." + }, + { + "name": "priceText", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Textual price information used when **Price Per Session** is set to **Custom Price** in the app's service details page.\nWhen present in an update request, the `default_varied_price` is ignored to support backward compatibility." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewRecurringInterval", + "members": [ + { + "name": "_id", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The recurring interval identifier." + }, + { + "name": "affectedSchedules", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewLinkedSchedule", + "displayName": "LinkedSchedule" + } + ] + } + } + ], + "doc": "Specifies the list of linked schedules and the way this link affects the corresponding schedules' availability. Can be calculated from the schedule or overridden on the recurring interval." + }, + { + "name": "end", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "The end time of the recurring interval. Optional. Empty value indicates that there is no end time." + }, + { + "name": "frequency", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewFrequency", + "displayName": "Frequency" + } + ], + "doc": "The frequency of the interval. Optional. The default is frequency with the default repetition." + }, + { + "name": "interval", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewInterval", + "displayName": "Interval" + } + ], + "doc": "The interval rules. The day, hour and minutes the interval is recurring." + }, + { + "name": "intervalType", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The type of recurring interval.\n<!--ONLY:VELO\nOne of:\n- `\"UNDEFINED\"` The default value. Sessions for this interval will be of type EVENT.\n- `\"EVENT\"` A recurring interval of events.\n- `\"WORKING_HOURS\"` A recurring interval for availability.\n<!--END:ONLY:VELO-->" + }, + { + "name": "start", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "The start time of the recurring interval. Required." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewRecurringSessionSplit", + "members": [ + { + "name": "newScheduleVersion", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "" + }, + { + "name": "oldScheduleVersion", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "" + }, + { + "name": "recurringSessions", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewSession", + "displayName": "Session" + } + ] + } + } + ], + "doc": "" + }, + { + "name": "scheduleId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewRecurringSessionsUpdated", + "members": [ + { + "name": "newRecurringSessions", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewSession", + "displayName": "Session" + } + ] + } + } + ], + "doc": "New schedule's recurring session list." + }, + { + "name": "oldRecurringSessions", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewSession", + "displayName": "Session" + } + ] + } + } + ], + "doc": "Old schedule's recurring session list." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewReplayCompleted", + "members": [ + { + "name": "totalSessions", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "The (minimum) number of sessions that were replayed." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewReplayRequest", + "members": [ + { + "name": "affectedScheduleId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Filter by either `session.schedule_id` or `session.affectedSchedules[*].scheduleId`. Optional." + }, + { + "name": "from", + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "The date to replay sessions from. Required." + }, + { + "name": "replayId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The replay id. Required." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewReplayResponse", + "members": [ + { + "name": "window", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewWindow", + "displayName": "Window" + } + ], + "doc": "The feed window." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewReschedule", + "members": [ + { + "name": "executeAt", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "" + }, + { + "name": "payload", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewSchedule", + "members": [ + { + "name": "_id", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Schedule ID." + }, + { + "name": "availability", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewAvailability", + "displayName": "Availability" + } + ], + "doc": "An object describing how to calculate the schedule's availability.\nAn empty object indicates that the schedule is not available for booking." + }, + { + "name": "calendarConference", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewCalendarConference", + "displayName": "CalendarConference" + } + ], + "doc": "A conference created for the schedule. This is used when a participant is added to a schedule." + }, + { + "name": "capacity", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Maximum number of participants that can be added to the schedule's sessions.\nMust be at most `1` for schedule whose availability is affected by another schedule. E.g, appointment schedules of the Wix Bookings app." + }, + { + "name": "conferenceProvider", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewConferenceProvider", + "displayName": "ConferenceProvider" + } + ], + "doc": "Conferencing Provider. A schedule with a conferencing provider will use to provider information to create a conference on the provider's system when a session is created on the schedule or on one of its linked schedule's." + }, + { + "name": "created", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "Schedule creation date." + }, + { + "name": "externalCalendarOverrides", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewExternalCalendarOverrides", + "displayName": "ExternalCalendarOverrides" + } + ], + "doc": "Title and description values to override session defaults when syncing to an external calendar.\nLearn more about [syncing calendars](https://support.wix.com/en/article/wix-bookings-important-information-about-syncing-google-calendars-with-wix-bookings)." + }, + { + "name": "inheritedFields", + "readOnly": true, + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Fields which were inherited from the Business Info page under Settings in the Dashboard." + }, + { + "name": "intervals", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewRecurringInterval", + "displayName": "RecurringInterval" + } + ] + } + } + ], + "doc": "Specifies the intervals for the sessions calculation. Optional. e.g. when creating class service you can add\npattern for recurring intervals, these intervals can be returned as schedule's sessions or available slots if\nthere are no other availability calculation constraints and the capacity is bigger then the current total number of sessions' participants." + }, + { + "name": "location", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewLocation", + "displayName": "Location" + } + ], + "doc": "Default location for the schedule's sessions." + }, + { + "name": "participants", + "readOnly": true, + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewParticipant", + "displayName": "Participant" + } + ] + } + } + ], + "doc": "Participants currently registered to sessions in this schedule.\nParticipants who are registered in the schedule are automatically registered to any session that is created for the schedule." + }, + { + "name": "rate", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewRate", + "displayName": "Rate" + } + ], + "doc": "Price options offered when booking this schedule's slots. Default is no rate." + }, + { + "name": "scheduleOwnerId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the schedule's owner entity. This may be a resource ID or a service ID." + }, + { + "name": "status", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Schedule status." + }, + { + "name": "tags", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Tags for grouping schedules. These tags are the default tags for the schedule's sessions.\nThe Wix Bookings app uses the following predefined tags to set schedule type: `\"INDIVIDUAL\"`, `\"GROUP\"`, and `\"COURSE\"`. Once the schedule type is set using these tags, you cannot update it. In addition to the app's tags, you can create and update your own tags." + }, + { + "name": "timeZone", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + }, + { + "name": "title", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Default title for the schedule's sessions. Maximum length: 6000 characters." + }, + { + "name": "totalNumberOfParticipants", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Number of participants registered to sessions in this schedule, calculated as the sum of the party sizes." + }, + { + "name": "updated", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "Schedule last update date." + }, + { + "name": "version", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Schedule version number, updated each time the schedule is updated." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewScheduleCancelled", + "members": [ + { + "name": "oldSchedule", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewSchedule", + "displayName": "Schedule" + } + ], + "doc": "" + }, + { + "name": "participantNotification", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewParticipantNotification", + "displayName": "ParticipantNotification" + } + ], + "doc": "Whether to notify participants about the change and an optional custom message" + }, + { + "name": "schedule", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewSchedule", + "displayName": "Schedule" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewScheduleCreated", + "members": [ + { + "name": "schedule", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewSchedule", + "displayName": "Schedule" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewScheduleNotification", + "members": [ + { + "name": "availabilityPolicyUpdated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewAvailabilityPolicyUpdated", + "displayName": "AvailabilityPolicyUpdated" + } + ], + "doc": "" + }, + { + "name": "instanceId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + }, + { + "name": "intervalSplit", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewIntervalSplit", + "displayName": "IntervalSplit" + } + ], + "doc": "" + }, + { + "name": "migrationEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewMigrationEvent", + "displayName": "MigrationEvent" + } + ], + "doc": "supported only for schedule migration apis." + }, + { + "name": "multipleSessionsCreated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewMultipleSessionsCreated", + "displayName": "MultipleSessionsCreated" + } + ], + "doc": "supported only for schedule migration apis." + }, + { + "name": "notifyParticipants", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether to notify participants about changed sessions. deprecated, use participant_notification" + }, + { + "name": "preserveFutureSessionsWithParticipants", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "" + }, + { + "name": "recurringSessionSplit", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewRecurringSessionSplit", + "displayName": "RecurringSessionSplit" + } + ], + "doc": "" + }, + { + "name": "scheduleCancelled", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewScheduleCancelled", + "displayName": "ScheduleCancelled" + } + ], + "doc": "" + }, + { + "name": "scheduleCreated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewScheduleCreated", + "displayName": "ScheduleCreated" + } + ], + "doc": "" + }, + { + "name": "scheduleUnassignedFromUser", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewScheduleUnassignedFromUser", + "displayName": "ScheduleUnassignedFromUser" + } + ], + "doc": "Inspect `schedule.scheduleOwnerUserId` on `scheduleUpdated` instead." + }, + { + "name": "scheduleUpdated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewScheduleUpdated", + "displayName": "ScheduleUpdated" + } + ], + "doc": "" + }, + { + "name": "sessionCancelled", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewSessionCancelled", + "displayName": "SessionCancelled" + } + ], + "doc": "" + }, + { + "name": "sessionCreated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewSessionCreated", + "displayName": "SessionCreated" + } + ], + "doc": "" + }, + { + "name": "sessionUpdated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewSessionUpdated", + "displayName": "SessionUpdated" + } + ], + "doc": "" + }, + { + "name": "siteProperties", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewSitePropertiesOnScheduleCreation", + "displayName": "SitePropertiesOnScheduleCreation" + } + ], + "doc": "site properties. Optional. Given in create schedule notification." + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfScheduleNotificationEventOneOf", + "members": [ + "availabilityPolicyUpdated", + "intervalSplit", + "migrationEvent", + "multipleSessionsCreated", + "recurringSessionSplit", + "scheduleCancelled", + "scheduleCreated", + "scheduleUnassignedFromUser", + "scheduleUpdated", + "sessionCancelled", + "sessionCreated", + "sessionUpdated" + ] + } + ] + }, + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewScheduleNotificationEventOneOf", + "members": [ + { + "name": "availabilityPolicyUpdated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewAvailabilityPolicyUpdated", + "displayName": "AvailabilityPolicyUpdated" + } + ], + "doc": "" + }, + { + "name": "intervalSplit", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewIntervalSplit", + "displayName": "IntervalSplit" + } + ], + "doc": "" + }, + { + "name": "migrationEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewMigrationEvent", + "displayName": "MigrationEvent" + } + ], + "doc": "supported only for schedule migration apis." + }, + { + "name": "multipleSessionsCreated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewMultipleSessionsCreated", + "displayName": "MultipleSessionsCreated" + } + ], + "doc": "supported only for schedule migration apis." + }, + { + "name": "recurringSessionSplit", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewRecurringSessionSplit", + "displayName": "RecurringSessionSplit" + } + ], + "doc": "" + }, + { + "name": "scheduleCancelled", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewScheduleCancelled", + "displayName": "ScheduleCancelled" + } + ], + "doc": "" + }, + { + "name": "scheduleCreated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewScheduleCreated", + "displayName": "ScheduleCreated" + } + ], + "doc": "" + }, + { + "name": "scheduleUnassignedFromUser", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewScheduleUnassignedFromUser", + "displayName": "ScheduleUnassignedFromUser" + } + ], + "doc": "Inspect `schedule.scheduleOwnerUserId` on `scheduleUpdated` instead." + }, + { + "name": "scheduleUpdated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewScheduleUpdated", + "displayName": "ScheduleUpdated" + } + ], + "doc": "" + }, + { + "name": "sessionCancelled", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewSessionCancelled", + "displayName": "SessionCancelled" + } + ], + "doc": "" + }, + { + "name": "sessionCreated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewSessionCreated", + "displayName": "SessionCreated" + } + ], + "doc": "" + }, + { + "name": "sessionUpdated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewSessionUpdated", + "displayName": "SessionUpdated" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewScheduleUnassignedFromUser", + "members": [ + { + "name": "schedule", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewSchedule", + "displayName": "Schedule" + } + ], + "doc": "The schedule that was unassigned from the user." + }, + { + "name": "userId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The Wix user id." + } + ], + "docs": { + "description": [ + "Schedule unassigned from user." + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewScheduleUpdated", + "members": [ + { + "name": "newSchedule", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewSchedule", + "displayName": "Schedule" + } + ], + "doc": "The new schedule after the update." + }, + { + "name": "oldSchedule", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewSchedule", + "displayName": "Schedule" + } + ], + "doc": "The old schedule before the update." + }, + { + "name": "participantNotification", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewParticipantNotification", + "displayName": "ParticipantNotification" + } + ], + "doc": "Whether to notify participants about the change and an optional custom message" + }, + { + "name": "recurringSessions", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewRecurringSessionsUpdated", + "displayName": "RecurringSessionsUpdated" + } + ], + "doc": "Recurring sessions updated event. If this field is given, the reason for the schedule updated event was\nupdating at least one of the given schedule's recurring sessions.\nThis event is triggered by create/update/delete recurring session apis." + }, + { + "name": "triggeredByAnonymizeRequest", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether this notification was created as a result of an anonymization request, such as GDPR.\nAn anonymized participant will have the following details:\nname = \"deleted\"\nphone = \"deleted\"\nemail = \"deleted@deleted.com\"" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewScheduleWithSessions", + "members": [ + { + "name": "schedule", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewSchedule", + "displayName": "Schedule" + } + ], + "doc": "" + }, + { + "name": "sessions", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewSession", + "displayName": "Session" + } + ] + } + } + ], + "doc": "" + }, + { + "name": "siteProperties", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewSitePropertiesOnScheduleCreation", + "displayName": "SitePropertiesOnScheduleCreation" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewSession", + "members": [ + { + "name": "_id", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Session ID." + }, + { + "name": "affectedSchedules", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewLinkedSchedule", + "displayName": "LinkedSchedule" + } + ] + } + } + ], + "doc": "An object specifying a list of schedules and the way each schedule's availability is affected by the session. For example, the schedule of an instructor is affected by sessions of the class that they instruct.\nThe array is inherited from the schedule and can be overridden even if the session is a recurring session." + }, + { + "name": "calendarConference", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewCalendarConference", + "displayName": "CalendarConference" + } + ], + "doc": "A conference created for the session according to the details set in the schedule's conference provider information.\nIf the session is a recurring session, this field is inherited from the schedule." + }, + { + "name": "capacity", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Maximum number of participants that can be added to the session. Defaults to the schedule capacity.\nThe value is inherited from the schedule and can be overridden unless the session is a recurring session." + }, + { + "name": "end", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewCalendarDateTime", + "displayName": "CalendarDateTime" + } + ], + "doc": "An object specifying the end date and time of the session. The `end` time must be after the `start` time and be same type as `start`.\nIf the session is a recurring session, `end` must contain a `localDateTime`." + }, + { + "name": "externalCalendarOverrides", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewExternalCalendarOverrides", + "displayName": "ExternalCalendarOverrides" + } + ], + "doc": "Title and description values to override session defaults when syncing to an external calendar.\nLearn more about [syncing calendars](https://support.wix.com/en/article/wix-bookings-important-information-about-syncing-google-calendars-with-wix-bookings).\nThe value is inherited from the schedule and can be overridden unless the session is a recurring session." + }, + { + "name": "inheritedFields", + "readOnly": true, + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "A list of properties for which values were inherited from the schedule.\nThis does not include participants that were inherited from the schedule." + }, + { + "name": "instanceOfRecurrence", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "A string representing a recurrence rule (RRULE) if the session is an instance of a recurrence pattern.\nEmpty when the session is not an instance of a recurrence rule, or if the session defines a recurrence pattern, and `recurrence` is not empty." + }, + { + "name": "location", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewLocation", + "displayName": "Location" + } + ], + "doc": "An object describing the location where the session takes place.\nDefaults to the schedule location.\nFor single sessions, `session.location.businessLocation` can only be provided for locations that are defined in the schedule using `schedule.location` or `schedule.availability.locations`." + }, + { + "name": "notes", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Additional information about the session.\nNotes are not supported for recurring sessions." + }, + { + "name": "originalStart", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "Original start date and time of the session in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601#Coordinated_Universal_Time_(UTC)) format." + }, + { + "name": "participants", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewParticipant", + "displayName": "Participant" + } + ] + } + } + ], + "doc": "List of participants booked for the session.\nThe list includes participants who have registered for this specific session, and participants who have registered for a schedule that includes this session.\nIf the session is a recurring session, this field must be empty." + }, + { + "name": "rate", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewRate", + "displayName": "Rate" + } + ], + "doc": "The price options offered for the session. Defaults to the schedule rate.\nThe value is inherited from the schedule and can be overridden unless the session is a recurring session." + }, + { + "name": "recurrence", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "A string representing a recurrence rule (RRULE) for a recurring session, as defined in [iCalendar RFC 5545](https://icalendar.org/iCalendar-RFC-5545/3-3-10-recurrence-rule.html).\nIf the session is an instance of a recurrence pattern, the `instanceOfRecurrence` property will be contain the recurrence rule and this property will be empty.\nThe RRULE defines a rule for repeating a session.\nSupported parameters are:\n\n|Keyword|Description|Supported values|\n|--|--|---|\n|`FREQ`|The frequency at which the session is recurs. Required.|`WEEKLY`|\n|`INTERVAL`|How often, in terms of `FREQ`, the session recurs. Default is 1. Optional.|\n|`UNTIL`|The UTC end date and time of the recurrence. Optional.|\n|`BYDAY`|Day of the week when the event should recur. Required.|One of: `MO`, `TU`, `WE`, `TH`, `FR`, `SA`, `SU`|\n\n\nFor example, a session that repeats every second week on a Monday until January 7, 2022 at 8 AM:\n`\"FREQ=WEEKLY;INTERVAL=2;BYDAY=MO;UNTIL=20220107T080000Z\"`\n\n<!--ORIGINAL COMMENTS:\n`FREQ` — The frequency with which the session should be repeated (such as DAILY or WEEKLY).\nSupported `WEEKLY` value is supported.\nINTERVAL — Works together with FREQ to specify how often the session should be repeated. For example, FREQ=WEEKLY;INTERVAL=2 means once every two weeks. Optional. Default value is 1.\nCOUNT — The number of times this event should be repeated. Not yet supported.\nUNTIL — The UTC date & time until which the session should be repeated. This parameter is optional. When it is not specified, the event repeats forever.\nThe format is a short ISO date, followed by 'T' and a short time with seconds and without milliseconds, terminated by the UTC designator 'Z'. For example, until Jan. 19th 2018 at 7:00 AM: 'UNTIL=20180119T070000Z'.\nBYDAY - The days of the week when the event should be repeated. Currently, only a single day is supported. This parameter is mandatory.\nPossible values are: MO, TU, WE, TH, FR, SA, SU\nNote that DTSTART and DTEND lines are not allowed in this field; session start and end times are specified in the start and end fields.\n**Example**: FREQ=WEEKLY;INTERVAL=2;BYDAY=MO;UNTIL=20200427T070000Z\nORIGINAL COMMENTS-->\n" + }, + { + "name": "recurringIntervalId", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Recurring interval ID. Defined when a session will be a recurring session. read-only. Optional.\nFor exmaple, when creating a class service with recurring sessions, you add a recurrence rule to create recurring sessions.\nThis field is omitted for single sessions or instances of recurring sessions.\nSpecified when the session was originally generated from a schedule recurring interval.\nDeprecated. Use `recurringSessionId`." + }, + { + "name": "recurringSessionId", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The ID of the recurring session if this session is an instance of a recurrence. Use this ID to update the recurrence and all of the instances." + }, + { + "name": "scheduleId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the schedule that the session belongs to." + }, + { + "name": "scheduleOwnerId", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the resource or service that the session's schedule belongs to." + }, + { + "name": "start", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewCalendarDateTime", + "displayName": "CalendarDateTime" + } + ], + "doc": "An object specifying the start date and time of the session. If the session is a recurring session, `start` must contain a `localDateTime`." + }, + { + "name": "status", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Session status.\n<!--ONLY:VELO\nOne of:\n- `\"CONFIRMED\"` Default value.\n- `\"CANCELLED\"` The session was deleted.\n<!--END:ONLY:VELO-->" + }, + { + "name": "tags", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Tags for the session.\nThe value is inherited from the schedule and can be overridden unless the session is a recurring session." + }, + { + "name": "timeReservedAfter", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Time reserved after the session end time, derived from the schedule availability constraints and the time between slots. Read-only.\nIf the session is a recurring session, this field must be empty." + }, + { + "name": "title", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Session title.\nThe value is inherited from the schedule and can be overridden unless the session is a recurring session." + }, + { + "name": "totalNumberOfParticipants", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "The number of participants booked for the session. Read-only.\nCalculated as the sum of the party sizes." + }, + { + "name": "type", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Session type.\n<!--ONLY:VELO\nOne of:\n- `\"EVENT\"` Reserved period of time on the schedule. For example, an appointment, class, course, or blocked time. Events are visible in the Dashboard in the Bookings app's [Booking Calendar](https://support.wix.com/en/article/wix-bookings-about-the-wix-bookings-calendar) page.\n- `\"WORKING_HOURS\"` Placeholder for available time on a resource’s schedule.\n<!--END:ONLY:VELO-->" + }, + { + "name": "version", + "readOnly": true, + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewSessionVersion", + "displayName": "SessionVersion" + } + ], + "doc": "The session version.\nComposed by the schedule, session and participants versions." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewSessionAdded", + "members": [ + { + "name": "session", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewSession", + "displayName": "Session" + } + ], + "doc": "The session which was added within the feed window." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewSessionAddedOrUpdated", + "members": [ + { + "name": "previousSession", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewSession", + "displayName": "Session" + } + ], + "doc": "Optionally, the previous session." + }, + { + "name": "session", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewSession", + "displayName": "Session" + } + ], + "doc": "The session which was added or updated within the view." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewSessionCancelled", + "members": [ + { + "name": "participantNotification", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewParticipantNotification", + "displayName": "ParticipantNotification" + } + ], + "doc": "Whether to notify participants about the change and an optional custom message" + }, + { + "name": "session", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewSession", + "displayName": "Session" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewSessionCreated", + "members": [ + { + "name": "session", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewSession", + "displayName": "Session" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewSessionRemoved", + "members": [ + { + "name": "previousSession", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewSession", + "displayName": "Session" + } + ], + "doc": "Optionally, the previous session." + }, + { + "name": "session", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewSession", + "displayName": "Session" + } + ], + "doc": "The updated session which was removed from the view." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewSessionUpdated", + "members": [ + { + "name": "newSession", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewSession", + "displayName": "Session" + } + ], + "doc": "" + }, + { + "name": "oldSession", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewSession", + "displayName": "Session" + } + ], + "doc": "" + }, + { + "name": "participantNotification", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewParticipantNotification", + "displayName": "ParticipantNotification" + } + ], + "doc": "Whether to notify participants about the change and an optional custom message" + }, + { + "name": "triggeredByAnonymizeRequest", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether this notification was created as a result of an anonymization request, such as GDPR.\nAn anonymized participant will have the following details:\nname = \"deleted\"\nphone = \"deleted\"\nemail = \"deleted@deleted.com\"" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewSessionVersion", + "members": [ + { + "name": "number", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Incremental version number, which is updated on each change to the session or on changes affecting the session." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewSessionView", + "members": [ + { + "name": "endDate", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "The view end date." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewSessionViewExtended", + "members": [ + { + "name": "extendedSessionViewEndDate", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "The extended session view end date." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewSessionViewExtendedEvent", + "members": [ + { + "name": "data", + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewSessionViewExtended", + "displayName": "SessionViewExtended" + } + ], + "doc": "" + }, + { + "name": "metadata", + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewBackendEventMetadata", + "displayName": "BackendEventMetadata" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewSessionViewUpdated", + "members": [ + { + "name": "sessionAddedOrUpdated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewSessionAddedOrUpdated", + "displayName": "SessionAddedOrUpdated" + } + ], + "doc": "Session has been added or updated within the view." + }, + { + "name": "sessionRemoved", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewSessionRemoved", + "displayName": "SessionRemoved" + } + ], + "doc": "Session has been removed from the view." + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfSessionViewUpdatedTypeOneOf", + "members": [ + "sessionAddedOrUpdated", + "sessionRemoved" + ] + } + ] + }, + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewSessionViewUpdatedEvent", + "members": [ + { + "name": "entity", + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewSessionViewUpdated", + "displayName": "SessionViewUpdated" + } + ], + "doc": "" + }, + { + "name": "metadata", + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewBackendEventMetadata", + "displayName": "BackendEventMetadata" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewSessionViewUpdatedTypeOneOf", + "members": [ + { + "name": "sessionAddedOrUpdated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewSessionAddedOrUpdated", + "displayName": "SessionAddedOrUpdated" + } + ], + "doc": "Session has been added or updated within the view." + }, + { + "name": "sessionRemoved", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewSessionRemoved", + "displayName": "SessionRemoved" + } + ], + "doc": "Session has been removed from the view." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewSitePropertiesOnScheduleCreation", + "members": [ + { + "name": "timeZone", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The global time zone value." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewSpecialHourPeriod", + "members": [ + { + "name": "comment", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Additional info about the exception. For example, \"We close earlier on New Year's Eve.\"" + }, + { + "name": "endDate", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "End date and time of the exception in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format and [Coordinated Universal Time (UTC)](https://en.wikipedia.org/wiki/Coordinated_Universal_Time)." + }, + { + "name": "isClosed", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the business is closed (or the service is not available) during the exception.\n\nDefault: `true`.\n" + }, + { + "name": "startDate", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Start date and time of the exception in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format and [Coordinated Universal Time (UTC)](https://en.wikipedia.org/wiki/Coordinated_Universal_Time)." + } + ], + "docs": { + "description": [ + "Exception to the business's regular hours. The business can be open or closed during the exception." + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewSplitInterval", + "members": [ + { + "name": "sameAsDuration", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the slot duration is used as the split interval value.\nIf `same_as_duration` is `true`, the `value_in_minutes` is the sum of the first duration in\n`schedule.availabilityConstraints.SlotDurations` field, and `schedule.availabilityConstraints.TimeBetweenSlots` field." + }, + { + "name": "valueInMinutes", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Number of minutes between available slots' start times when `same_as_duration` is `false`." + } + ], + "docs": { + "description": [ + "The time between available slots' start times. For example, For 5 minute slots, 3:00, 3:05, 3:15 etc. For 1 hour slots, 3:00, 4:00, 5:00 etc." + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewStaffData", + "members": [ + { + "name": "refreshToken", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + }, + { + "name": "resourceId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + }, + { + "name": "syncRequestEmail", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewStreetAddress", + "members": [ + { + "name": "apt", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Apartment number." + }, + { + "name": "name", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Street name." + }, + { + "name": "number", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Street number." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewSubdivision", + "members": [ + { + "name": "code", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Subdivision code. Usually state, region, prefecture or province code, according to [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2)." + }, + { + "name": "name", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Subdivision full name." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewTask", + "members": [ + { + "name": "executeAt", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "" + }, + { + "name": "key", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewTaskKey", + "displayName": "TaskKey" + } + ], + "doc": "" + }, + { + "name": "payload", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewTaskAction", + "members": [ + { + "name": "cancel", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewCancel", + "displayName": "Cancel" + } + ], + "doc": "" + }, + { + "name": "complete", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewComplete", + "displayName": "Complete" + } + ], + "doc": "" + }, + { + "name": "reschedule", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewReschedule", + "displayName": "Reschedule" + } + ], + "doc": "" + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfTaskActionActionOneOf", + "members": [ + "cancel", + "complete", + "reschedule" + ] + } + ] + }, + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewTaskActionActionOneOf", + "members": [ + { + "name": "cancel", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewCancel", + "displayName": "Cancel" + } + ], + "doc": "" + }, + { + "name": "complete", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewComplete", + "displayName": "Complete" + } + ], + "doc": "" + }, + { + "name": "reschedule", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCalendarV2SessionViewReschedule", + "displayName": "Reschedule" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewTaskKey", + "members": [ + { + "name": "appId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + }, + { + "name": "instanceId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + }, + { + "name": "subjectId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewTimePeriod", + "members": [ + { + "name": "closeDay", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Day of the week the period ends on." + }, + { + "name": "closeTime", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Time the period ends in 24-hour [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) extended format. Valid values are `00:00` to `24:00`, where `24:00` represents\nmidnight at the end of the specified day.\n\n__Note:__ If `openDay` and `closeDay` specify the same day of the week `closeTime` must be later than `openTime`.\n" + }, + { + "name": "openDay", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Day of the week the period starts on." + }, + { + "name": "openTime", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Time the period starts in 24-hour [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) extended format. Valid values are `00:00` to `24:00`, where `24:00` represents\nmidnight at the end of the specified day." + } + ], + "docs": { + "description": [ + "Weekly recurring time periods when the business is regularly open or the service is available." + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewVersion", + "members": [ + { + "name": "participantsVersion", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Participants version number, updated each time the schedule participants are updated." + }, + { + "name": "scheduleVersion", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Schedule version number, updated each time the schedule is updated." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewWindow", + "members": [ + { + "name": "endDate", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "The window end date." + }, + { + "name": "futureDurationInDays", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "The number of days the window lasts into the future." + }, + { + "name": "version", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "The window version." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewWindowExtended", + "members": [ + { + "name": "windowEndDate", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "The updated window end date." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCalendarV2SessionViewWindowMoved", + "members": [ + { + "name": "edge", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "The updated window edge." + }, + { + "name": "windowVersion", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "The window version." + } + ], + "docs": { + "description": [ + "Deprecated. Please use `window_extended` instead." + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsActionEvent", + "members": [ + { + "name": "bodyAsJson", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsAddress", + "members": [ + { + "name": "addressLine", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Main address line, usually street and number, as free text." + }, + { + "name": "addressLine2", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Free text providing more detailed address info. Usually contains Apt, Suite, and Floor." + }, + { + "name": "city", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "City name." + }, + { + "name": "country", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Country code." + }, + { + "name": "countryFullname", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Country full name." + }, + { + "name": "formattedAddress", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "A string containing the full address of this location." + }, + { + "name": "geocode", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsAddressLocation", + "displayName": "AddressLocation" + } + ], + "doc": "Coordinates of the physical address." + }, + { + "name": "hint", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Free text to help find the address." + }, + { + "name": "postalCode", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Zip/postal code." + }, + { + "name": "streetAddress", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsStreetAddress", + "displayName": "StreetAddress" + } + ], + "doc": "Street name, number and apartment number." + }, + { + "name": "subdivision", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Subdivision. Usually state, region, prefecture or province code, according to [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2)." + }, + { + "name": "subdivisions", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsSubdivision", + "displayName": "Subdivision" + } + ] + } + } + ], + "doc": "Multi-level subdivisions from top to bottom." + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfAddressStreetOneOf", + "members": [ + "addressLine", + "streetAddress" + ] + } + ] + }, + "docs": { + "description": [ + "Physical address" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsAddressHint", + "members": [ + { + "name": "placement", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Where the extra text should be displayed." + }, + { + "name": "text", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Extra text displayed next to, or instead of, the actual address." + } + ], + "docs": { + "description": [ + "Extra information on displayed addresses.\nThis is used for display purposes. Used to add additional data about the address, such as \"In the passage\".\nFree text. In addition the user can state where he wants that additional description - before, after, or instead\nthe address string." + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsAddressLocation", + "members": [ + { + "name": "latitude", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Address latitude." + }, + { + "name": "longitude", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Address longitude." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsAddressStreetOneOf", + "members": [ + { + "name": "addressLine", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Main address line, usually street and number, as free text." + }, + { + "name": "streetAddress", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsStreetAddress", + "displayName": "StreetAddress" + } + ], + "doc": "Street name, number and apartment number." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsAvailability", + "members": [ + { + "name": "constraints", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsAvailabilityConstraints", + "displayName": "AvailabilityConstraints" + } + ], + "doc": "Constraints for calculating the schedule's availability." + }, + { + "name": "end", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "Date and time the schedule stops being available for booking. No value indicates no end time." + }, + { + "name": "linkedSchedules", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsLinkedSchedule", + "displayName": "LinkedSchedule" + } + ] + } + } + ], + "doc": "Other schedules that impact the availability calculation. Relevant only when there are availability constraints." + }, + { + "name": "start", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "Date and time the schedule starts to be available for booking." + } + ], + "docs": { + "description": [ + "<!-- Needs updating when recurrence has been tested\nSchedule's availability calculation is executed by the schedule's available intervals and this additional information.\nSchedule's available intervals are recurring intervals (defined in the schedule) minus sessions that has no more spots for bookings (including time between_slots), or schedule's sessions with open spots for bookings.-->" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsAvailabilityConstraints", + "members": [ + { + "name": "slotDurations", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "number" + } + ] + } + } + ], + "doc": "A list of duration options for slots, in minutes. Minimum value for a duration is 1.\nThe availability calculation generates slots with these durations, where there is no conflict with existing sessions or other availability constraints." + }, + { + "name": "slotsSplitInterval", + "readOnly": true, + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsSplitInterval", + "displayName": "SplitInterval" + } + ], + "doc": "An object defining the time between available slots' start times. For example, a slot with slots_split_interval=5 can start every 5 minutes. The default is the slot duration." + }, + { + "name": "splitInterval", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Specify how to split the slots in intervals of minutes.\nThis value indicates the time between available slots' start time. e.g., from 5 minute slots (3:00, 3:05, 3:15) and 1 hour slots (3:00, 4:00, 5:00).\nOptional. The default is the first duration in slot_durations field.\nDeprecated. Use the `split_slots_interval.value_in_minutes`." + }, + { + "name": "timeBetweenSlots", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "The number of minutes between the `end` of one slot, and the `start` of the next.\nMinimum value is 0, maximum value is 120." + } + ], + "docs": { + "description": [ + "Describes how to calculate the specific slots that are available for booking." + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsAvailabilityPolicy", + "members": [ + { + "name": "splitInterval", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsSplitInterval", + "displayName": "SplitInterval" + } + ], + "doc": "Specify how to split the schedule slots in intervals of minutes." + } + ], + "docs": { + "description": [ + "Availability policy applied to all site schedules." + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsAvailabilityPolicyUpdated", + "members": [ + { + "name": "availabilityPolicy", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsAvailabilityPolicy", + "displayName": "AvailabilityPolicy" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsBackendEventMetadata", + "members": [ + { + "name": "entityId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the entity associated with the event." + }, + { + "name": "eventTime", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Event timestamp." + }, + { + "name": "id", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Event ID." + }, + { + "name": "triggeredByAnonymizeRequest", + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the event was triggered as a result of a privacy regulation application (for example, [GDPR](https://support.wix.com/en/article/gdpr-frequently-asked-questions)). For advanced users." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsBookingPolicy", + "members": [ + { + "name": "bookUpToXMinutesBefore", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Minimum number of minutes before the start of a session that a booking can be made. For a schedule, this is relative to the start time of the next session, excluding past sessions. Default value is taken form BusinessServicesPolicy." + }, + { + "name": "bookingsApprovalPolicy", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsBookingsApprovalPolicy", + "displayName": "BookingsApprovalPolicy" + } + ], + "doc": "Bookings approval policy for the service. Empty by default." + }, + { + "name": "cancelRescheduleUpToXMinutesBefore", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Minimum number of minutes before the start of a session that a booking can be canceled or rescheduled. Default value is taken form BusinessServicesPolicy." + }, + { + "name": "cancellationPolicy", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "User defined cancellation policy message." + }, + { + "name": "futureBookingsPolicy", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsFutureBookingPolicy", + "displayName": "FutureBookingPolicy" + } + ], + "doc": "How far in advance a booking can be made. Default value is taken form BusinessServicesPolicy." + }, + { + "name": "isBookOnlineAllowed", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether online booking is available. Defaults to true." + }, + { + "name": "isCancelAllowed", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether bookings for the service can be canceled. Defaults to true." + }, + { + "name": "isRescheduleAllowed", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether bookings for the service can be rescheduled. Defaults to true." + }, + { + "name": "maxParticipantsPerBooking", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Maximum number of participants for a single booking. Defaults to 1." + }, + { + "name": "overrideBusinessPolicyFields", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "A list of booking policy field names of fields that override the respective values of the default business booking policy.\nCurrently only 'service.policy.bookUpToXMinutesBefore' field is supported" + }, + { + "name": "waitingListPolicy", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsWaitingListPolicy", + "displayName": "WaitingListPolicy" + } + ], + "doc": "Waitlist policy for the service. Default value is taken form BusinessServicesPolicy." + } + ], + "docs": { + "description": [ + "A set of rules defining the policies for booking the service for visitors and members." + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsBookingsApprovalPolicy", + "members": [ + { + "name": "isBusinessApprovalRequired", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether bookings to the service require approval." + }, + { + "name": "requestsAffectsAvailability", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the booking requests affect the session or slot availability. For example, 3 booking requests for a 10-person session will cause the session to have 7 available spots, before the requests are approved." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsBusinessSchedule", + "members": [ + { + "name": "periods", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsTimePeriod", + "displayName": "TimePeriod" + } + ] + } + } + ], + "doc": "Weekly recurring time periods when the business is regularly open or the service is available. Limited to 100 time periods." + }, + { + "name": "specialHourPeriod", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsSpecialHourPeriod", + "displayName": "SpecialHourPeriod" + } + ] + } + } + ], + "doc": "Exceptions to the business's regular hours. The business can be open or closed during the exception." + } + ], + "docs": { + "description": [ + "Business schedule. Regular and exceptional time periods when the business is open or the service is available." + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsBusinessServicesPolicy", + "members": [ + { + "name": "bookUpToXMinutesBefore", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Minimum amount of time to make a booking before the start of the booked item. For sessions, this is relative to the start time of the session. For schedules, this is relative to the start time of the first session, excluding past sessions. Defaults to 0." + }, + { + "name": "cancelRescheduleUpToXMinutesBefore", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Minimum time that a booking can be canceled or rescheduled before the session starts. Defaults to 0." + }, + { + "name": "cancellationPolicy", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "User defined cancellation policy message." + }, + { + "name": "futureBookingsPolicy", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsFutureBookingPolicy", + "displayName": "FutureBookingPolicy" + } + ], + "doc": "An object specifying how far in advance a booking can be made." + }, + { + "name": "waitingListPolicy", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsWaitingListPolicy", + "displayName": "WaitingListPolicy" + } + ], + "doc": "Waitlist policy for the service. Empty by default." + } + ], + "docs": { + "description": [ + "Defines the Bookings Policy applied to the business's services. The policy can be overridden for a service when setting the `Service.BookingsPolicy` property.\nUnless overridden, each service inherits the settings in the business policy." + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsCalendarConference", + "members": [ + { + "name": "_id", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Wix Calendar conference ID." + }, + { + "name": "accountOwnerId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the account owner in the video conferencing service." + }, + { + "name": "conferenceType", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Conference type.\n<!--ONLY:VELO\nOne of:\n- `\"ONLINE_MEETING_PROVIDER\"` API-generated online meeting.\n- `\"CUSTOM\"` User-defined meeting.\n<!--END:ONLY:VELO-->" + }, + { + "name": "description", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Conference description." + }, + { + "name": "externalId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Conference meeting ID in the provider's conferencing system." + }, + { + "name": "guestUrl", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "URL used by a guest to join the conference." + }, + { + "name": "hostUrl", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "URL used by the host to start the conference." + }, + { + "name": "password", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Password to join the conference." + }, + { + "name": "providerId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Conference provider ID." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsCalendarDateTime", + "members": [ + { + "name": "localDateTime", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsLocalDateTime", + "displayName": "LocalDateTime" + } + ], + "doc": "An object containing the local date and time for the business's time zone." + }, + { + "name": "timeZone", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The time zone. Optional. Derived from the schedule's time zone.\nIn case this field is associated with recurring session, this field is empty." + }, + { + "name": "timestamp", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "UTC date-time in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601#Coordinated_Universal_Time_(UTC)) format. If a time zone offset is specified, the time is converted to UTC. For example, if you specify `new Date('2021-01-06T16:00:00.000-07:00')`, the stored value will be `\"2021-01-06T23:00:00.000Z\"`.\nRequired if `localDateTime` is not specified.\nIf `localDateTime` is specified, `timestamp` is calculated as `localDateTime`, using the business's time zone." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsCategories", + "members": [ + { + "name": "primary", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Primary site category." + }, + { + "name": "secondary", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Secondary site category." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsChangeContext", + "members": [ + { + "name": "propertiesChange", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsPropertiesChange", + "displayName": "PropertiesChange" + } + ], + "doc": "Properties were updated." + }, + { + "name": "siteCloned", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsSiteCloned", + "displayName": "SiteCloned" + } + ], + "doc": "Properties were cloned on site cloning." + }, + { + "name": "siteCreated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsSiteCreated", + "displayName": "SiteCreated" + } + ], + "doc": "Default properties were created on site creation." + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfChangeContextPayloadOneOf", + "members": [ + "propertiesChange", + "siteCloned", + "siteCreated" + ] + } + ] + }, + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsChangeContextPayloadOneOf", + "members": [ + { + "name": "propertiesChange", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsPropertiesChange", + "displayName": "PropertiesChange" + } + ], + "doc": "Properties were updated." + }, + { + "name": "siteCloned", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsSiteCloned", + "displayName": "SiteCloned" + } + ], + "doc": "Properties were cloned on site cloning." + }, + { + "name": "siteCreated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsSiteCreated", + "displayName": "SiteCreated" + } + ], + "doc": "Default properties were created on site creation." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsCloneServiceOptionsAndVariantsRequest", + "members": [ + { + "name": "cloneFromId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the `serviceOptionsAndVariants` object to clone." + }, + { + "name": "targetServiceId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the service that will be set for the cloned `serviceOptionsAndVariants`" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsCloneServiceOptionsAndVariantsResponse", + "members": [ + { + "name": "serviceOptionsAndVariants", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsServiceOptionsAndVariants", + "displayName": "ServiceOptionsAndVariants" + } + ], + "doc": "The cloned `serviceOptionsAndVariants` object." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsConferenceProvider", + "members": [ + { + "name": "providerId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Conferencing provider ID" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsConsentPolicy", + "members": [ + { + "name": "advertising", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the site uses cookies that collect information allowing better customization of the experience for a current visitor." + }, + { + "name": "analytics", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the site uses cookies that collect analytics about how the site is used (in order to improve it)." + }, + { + "name": "dataToThirdParty", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "CCPA compliance flag." + }, + { + "name": "essential", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the site uses cookies that are essential to site operation." + }, + { + "name": "functional", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the site uses cookies that affect site performance and other functional measurements." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsCreateServiceOptionsAndVariantsRequest", + "members": [ + { + "name": "serviceOptionsAndVariants", + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsServiceOptionsAndVariants", + "displayName": "ServiceOptionsAndVariants" + } + ], + "doc": "Service options and variants to create." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsCreateServiceOptionsAndVariantsResponse", + "members": [ + { + "name": "serviceOptionsAndVariants", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsServiceOptionsAndVariants", + "displayName": "ServiceOptionsAndVariants" + } + ], + "doc": "Information about the created service options and variants." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsCursorPaging", + "members": [ + { + "name": "cursor", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Pointer to the next or previous page in the list of results.\n\nYou can get the relevant cursor token\nfrom the `pagingMetadata` object in the previous call's response.\nNot relevant for the first request.\n" + }, + { + "name": "limit", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Number of items to load." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsCursors", + "members": [ + { + "name": "next", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Cursor pointing to next page in the list of results." + }, + { + "name": "prev", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Cursor pointing to previous page in the list of results." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsCustomServiceOption", + "members": [ + { + "name": "choices", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Available choices for the service option. For example, `child`, `student`,\n`adult`, and `senior` for a service option named `Age group`. Each value must\nbe unique. The value's case is ignored, meaning `Child` and `child` are\nconsidered to be identical. Currently, only a single choice is supported\nbecause a service can have only a single option.\n\nMax: 1 choice\n" + }, + { + "name": "name", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Name of the service option. For example, `Age group`, `Location`, `Equipment`,\nor `Time`." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsDeleteMetadata", + "members": [ + { + "name": "participantNotification", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsParticipantNotification", + "displayName": "ParticipantNotification" + } + ], + "doc": "" + }, + { + "name": "preserveFutureSessionsWithParticipants", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsDeleteServiceOptionsAndVariantsRequest", + "members": [ + { + "name": "revision", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Revision of the `serviceOptionsAndVariants` object to delete." + }, + { + "name": "serviceOptionsAndVariantsId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the `serviceOptionsAndVariants` object to delete." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsDeleteServiceOptionsAndVariantsResponse", + "members": [], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsDomainEvent", + "members": [ + { + "name": "_id", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "random GUID so clients can tell if event was already handled" + }, + { + "name": "actionEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsActionEvent", + "displayName": "ActionEvent" + } + ], + "doc": "" + }, + { + "name": "createdEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsEntityCreatedEvent", + "displayName": "EntityCreatedEvent" + } + ], + "doc": "" + }, + { + "name": "deletedEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsEntityDeletedEvent", + "displayName": "EntityDeletedEvent" + } + ], + "doc": "" + }, + { + "name": "entityEventSequence", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "A sequence number defining the order of updates to the underlying entity.\nFor example, given that some entity was updated at 16:00 and than again at 16:01,\nit is guaranteed that the sequence number of the second update is strictly higher than the first.\nAs the consumer, you can use this value to ensure that you handle messages in the correct order.\nTo do so, you will need to persist this number on your end, and compare the sequence number from the\nmessage against the one you have stored. Given that the stored number is higher, you should ignore the message." + }, + { + "name": "entityFqdn", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Assumes actions are also always typed to an entity_type\nExample: wix.stores.catalog.product, wix.bookings.session, wix.payments.transaction" + }, + { + "name": "entityId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Assuming that all messages including Actions have id\nExample: The id of the specific order, the id of a specific campaign" + }, + { + "name": "eventTime", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "The time of the event. Useful if there was a delay in dispatching" + }, + { + "name": "extendedFieldsUpdatedEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsExtendedFieldsUpdatedEvent", + "displayName": "ExtendedFieldsUpdatedEvent" + } + ], + "doc": "" + }, + { + "name": "originatedFrom", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "If present, indicates the action that triggered the event." + }, + { + "name": "slug", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "This is top level to ease client code dispatching of messages (switch on entity_fqdn+slug)\nThis is although the created/updated/deleted notion is duplication of the oneof types\nExample: created/updated/deleted/started/completed/email_opened" + }, + { + "name": "triggeredByAnonymizeRequest", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "A field that should be set if this event was triggered by an anonymize request.\nFor example you must set it to true when sending an event as a result of a GDPR right to be forgotten request.\nNOTE: This field is not relevant for `EntityCreatedEvent` but is located here for better ergonomics of consumers." + }, + { + "name": "updatedEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsEntityUpdatedEvent", + "displayName": "EntityUpdatedEvent" + } + ], + "doc": "" + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfDomainEventBodyOneOf", + "members": [ + "actionEvent", + "createdEvent", + "deletedEvent", + "extendedFieldsUpdatedEvent", + "updatedEvent" + ] + } + ] + }, + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsDomainEventBodyOneOf", + "members": [ + { + "name": "actionEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsActionEvent", + "displayName": "ActionEvent" + } + ], + "doc": "" + }, + { + "name": "createdEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsEntityCreatedEvent", + "displayName": "EntityCreatedEvent" + } + ], + "doc": "" + }, + { + "name": "deletedEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsEntityDeletedEvent", + "displayName": "EntityDeletedEvent" + } + ], + "doc": "" + }, + { + "name": "extendedFieldsUpdatedEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsExtendedFieldsUpdatedEvent", + "displayName": "ExtendedFieldsUpdatedEvent" + } + ], + "doc": "" + }, + { + "name": "updatedEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsEntityUpdatedEvent", + "displayName": "EntityUpdatedEvent" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsEmpty", + "members": [], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsEntityCreatedEvent", + "members": [ + { + "name": "entityAsJson", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsEntityDeletedEvent", + "members": [], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsEntityUpdatedEvent", + "members": [ + { + "name": "currentEntityAsJson", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Since platformized APIs only expose PATCH and not PUT we can't assume that the fields sent from the client are the actual diff.\nThis means that to generate a list of changed fields (as opposed to sent fields) one needs to traverse both objects.\nWe don't want to impose this on all developers and so we leave this traversal to the notification recipients which need it." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsExtendedFieldsUpdatedEvent", + "members": [ + { + "name": "currentEntityAsJson", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsExternalCalendarInfo", + "members": [ + { + "name": "calendarType", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The external calendar type (e.g. Google Calendar, iCal, etc)." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsExternalCalendarOverrides", + "members": [ + { + "name": "description", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Synced description of the external calendar event." + }, + { + "name": "title", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Synced title of the external calendar event." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsFrequency", + "members": [ + { + "name": "repetition", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "The frequency of the recurrence in weeks. i.e. when this value is 4, the interval occurs every 4 weeks. Optional. The default is 1. minimum: 1, maximum: 52." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsFutureBookingPolicy", + "members": [ + { + "name": "limitXMinutesToTheFuture", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "How far in advance, in minutes, a session can be booked. Defaults to 10,080 minutes (3 days)." + }, + { + "name": "shouldLimit", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether a limit is imposed on advance bookings." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsGeoCoordinates", + "members": [ + { + "name": "latitude", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Latitude of the location. Must be between -90 and 90." + }, + { + "name": "longitude", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Longitude of the location. Must be between -180 and 180." + } + ], + "docs": { + "description": [ + "Geocoordinates for a particular address." + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsGetServiceOptionsAndVariantsByServiceIdRequest", + "members": [ + { + "name": "serviceId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the service to retrieve options and variants for." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsGetServiceOptionsAndVariantsByServiceIdResponse", + "members": [ + { + "name": "serviceVariants", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsServiceOptionsAndVariants", + "displayName": "ServiceOptionsAndVariants" + } + ], + "doc": "Retrieved `serviceOptionsAndVariants` object." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsGetServiceOptionsAndVariantsRequest", + "members": [ + { + "name": "serviceOptionsAndVariantsId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the `serviceOptionsAndVariants` object to retrieve." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsGetServiceOptionsAndVariantsResponse", + "members": [ + { + "name": "serviceOptionsAndVariants", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsServiceOptionsAndVariants", + "displayName": "ServiceOptionsAndVariants" + } + ], + "doc": "Retrieved `serviceOptionsAndVariants` object." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsInterval", + "members": [ + { + "name": "daysOfWeek", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The day the interval accrue. Optional. The default is the day of the recurring interval's start time." + }, + { + "name": "duration", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "The duration of the interval in minutes. Required. Part of the session end time calculation. minimum: 1, maximum: 86400." + }, + { + "name": "hourOfDay", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "The hour of the day the interval accrue. must be consistent with the Interval start time. Options. The default is 0. minimum: 0, maximum: 23." + }, + { + "name": "minuteOfHour", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "The minutes of hour the interval accrue. must be consistent with the Interval end time. Options. The default is 0. minimum: 0, maximum: 59." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsIntervalSplit", + "members": [ + { + "name": "intervals", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsRecurringInterval", + "displayName": "RecurringInterval" + } + ] + } + } + ], + "doc": "" + }, + { + "name": "newScheduleVersion", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "" + }, + { + "name": "oldScheduleVersion", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "" + }, + { + "name": "scheduleId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsKeyword", + "members": [ + { + "name": "isMain", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the keyword is the main focus keyword." + }, + { + "name": "term", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Keyword value." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsLinkedSchedule", + "members": [ + { + "name": "scheduleId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Schedule ID." + }, + { + "name": "scheduleOwnerId", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Owner ID, of the linked schedule." + }, + { + "name": "transparency", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Sets this schedule's availability for the duration of the linked schedule's sessions. Default is `\"BUSY\"`.\n<!--ONLY:REST-->\nIf set to `\"BUSY\"`, this schedule cannot have any available slots during the linked schedule's sessions.\nIf set to `\"FREE\"`, this schedule can have available slots during the linked schedule's sessions.\n<!--END:ONLY:REST-->\n\n<!--ONLY:VELO\nOne of:\n- `\"FREE\"` This schedule can have available slots during the linked schedule's sessions.\n- `\"BUSY\"` This schedule cannot have any available slots during the linked schedule's sessions.\n<!--END:ONLY:VELO-->\n" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsLocalDateTime", + "members": [ + { + "name": "dayOfMonth", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Day of the month, from 1-31." + }, + { + "name": "hourOfDay", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Hour of the day in 24-hour format, from 0-23." + }, + { + "name": "minutesOfHour", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Minute, from 0-59." + }, + { + "name": "monthOfYear", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Month number, from 1-12." + }, + { + "name": "year", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Year. 4-digit format." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsLocale", + "members": [ + { + "name": "country", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Two-letter country code in [ISO-3166 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements) format." + }, + { + "name": "languageCode", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Two-letter language code in [ISO 639-1 alpha-2](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) format." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsLocation", + "members": [ + { + "name": "address", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Free text address used when locationType is `OWNER_CUSTOM`." + }, + { + "name": "businessLocation", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsLocationsLocation", + "displayName": "LocationsLocation" + } + ], + "doc": "Valid when `locationType` is `OWNER_BUSINESS`. Defaults to the business's location.\n\n`businessSchedule` is not supported by Wix Bookings\n" + }, + { + "name": "customAddress", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsAddress", + "displayName": "Address" + } + ], + "doc": "Custom address, used when locationType is `\"OWNER_CUSTOM\"`. Might be used when locationType is `\"CUSTOM\"` in case the owner sets a custom address for the session which is different from the default." + }, + { + "name": "locationType", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Location type.\nOne of:\n- `\"OWNER_BUSINESS\"` The business address as set in the site’s general settings.\n- `\"OWNER_CUSTOM\"` The address as set when creating the service.\n- `\"CUSTOM\"` The address set for the individual session." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsLocationsAddress", + "members": [ + { + "name": "city", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "City name." + }, + { + "name": "country", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "2-letter country code in an [ISO-3166 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format." + }, + { + "name": "postalCode", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Postal or zip code." + }, + { + "name": "streetAddress", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsLocationsStreetAddress", + "displayName": "LocationsStreetAddress" + } + ], + "doc": "Street address. Includes street name, number, and apartment number in separate fields." + }, + { + "name": "subdivision", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Code for a subdivision (such as state, prefecture, or province) in [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2) format." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsLocationsAddressLocation", + "members": [ + { + "name": "latitude", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Latitude of the location. Must be between -90 and 90." + }, + { + "name": "longitude", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Longitude of the location. Must be between -180 and 180." + } + ], + "docs": { + "description": [ + "Address Geolocation" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsLocationsLocation", + "members": [ + { + "name": "_id", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Location ID." + }, + { + "name": "address", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsLocationsAddress", + "displayName": "LocationsAddress" + } + ], + "doc": "Address." + }, + { + "name": "archived", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the location is archived. Archived locations can't be updated.\n__Note:__ [Archiving a location](https://dev.wix.com/api/rest/business-info/locations/archive-location)\ndoesn't affect its `status`." + }, + { + "name": "businessSchedule", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsBusinessSchedule", + "displayName": "BusinessSchedule" + } + ], + "doc": "Business schedule. Array of weekly recurring time periods when the location is open for business. Limited to 100 time periods.\n\n__Note:__ Not supported by Wix Bookings.\n" + }, + { + "name": "default", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether this is the default location. There can only be one default location per site. The default location can't be archived." + }, + { + "name": "description", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Location description." + }, + { + "name": "email", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Email address." + }, + { + "name": "fax", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Fax number." + }, + { + "name": "locationType", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Location type. **Note:** Currently not supported." + }, + { + "name": "name", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Location name." + }, + { + "name": "phone", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Phone number." + }, + { + "name": "revision", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Revision number, which increments by 1 each time the location is updated.\nTo prevent conflicting changes, the existing revision must be used when updating a location." + }, + { + "name": "status", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Location status. Defaults to `ACTIVE`.\n__Note:__ [Archiving a location](https://dev.wix.com/api/rest/business-info/locations/archive-location)\ndoesn't affect the location's status. `INACTIVE` is currently not supported." + }, + { + "name": "timeZone", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Timezone in `America/New_York` format." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsLocationsStreetAddress", + "members": [ + { + "name": "apt", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Apartment number." + }, + { + "name": "name", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Street name." + }, + { + "name": "number", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Street number." + } + ], + "docs": { + "description": [ + "Street address. Includes street name, number, and apartment number in separate fields." + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsMedia", + "members": [ + { + "name": "coverMedia", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsMediaItem", + "displayName": "MediaItem" + } + ], + "doc": "Cover image associated with the service." + }, + { + "name": "items", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsMediaItem", + "displayName": "MediaItem" + } + ] + } + } + ], + "doc": "Images associated with the service." + }, + { + "name": "mainMedia", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsMediaItem", + "displayName": "MediaItem" + } + ], + "doc": "Primary image associated with the service." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsMediaItem", + "members": [ + { + "name": "image", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Image metadata." + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfMediaItemItemOneOf", + "members": [ + "image" + ] + } + ] + }, + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsMediaItemItemOneOf", + "members": [ + { + "name": "image", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Image metadata." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsMigrationData", + "members": [ + { + "name": "businessId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + }, + { + "name": "staffs", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsStaffData", + "displayName": "StaffData" + } + ] + } + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsMigrationEvent", + "members": [ + { + "name": "migrationData", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsMigrationData", + "displayName": "MigrationData" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsMoney", + "members": [ + { + "name": "currency", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Currency code. Must be valid ISO 4217 currency code (e.g., USD)." + }, + { + "name": "formattedValue", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Monetary amount. Decimal string in local format (e.g., 1 000,30). Optionally, a single (-), to indicate that the amount is negative." + }, + { + "name": "value", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "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." + } + ], + "docs": { + "description": [ + "Money.\nDefault format to use. Sufficiently compliant with majority of standards: w3c, ISO 4217, ISO 20022, ISO 8583:2003." + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsMultilingual", + "members": [ + { + "name": "autoRedirect", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether to redirect to user language." + }, + { + "name": "supportedLanguages", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsSupportedLanguage", + "displayName": "SupportedLanguage" + } + ] + } + } + ], + "doc": "Supported languages list." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsMultipleSessionsCreated", + "members": [ + { + "name": "schedulesWithSessions", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsScheduleWithSessions", + "displayName": "ScheduleWithSessions" + } + ] + } + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsPaging", + "members": [ + { + "name": "limit", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Number of items to load." + }, + { + "name": "offset", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Number of items to skip in the current sort order." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsPagingMetadataV2", + "members": [ + { + "name": "count", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Number of items returned in the response." + }, + { + "name": "cursors", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsCursors", + "displayName": "Cursors" + } + ], + "doc": "Cursors to navigate through the result pages using `next` and `prev`. Returned if cursor paging is used." + }, + { + "name": "offset", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Offset that was requested." + }, + { + "name": "tooManyToCount", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Flag that indicates the server failed to calculate the `total` field." + }, + { + "name": "total", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Total number of items that match the query. Returned if offset paging is used and the `tooManyToCount` flag is not set." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsParticipant", + "members": [ + { + "name": "_id", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Participant ID. Currently represents the booking.id." + }, + { + "name": "approvalStatus", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Approval status for the participant.\n<!-- Commented out untill updateParticipant is exposed Generally the same status as the booking, unless updated using the `updateParticipant()` API. Defaults to `\"UNDEFINED\"`.-->\n<!--ONLY:VELO\nOne of:\n- `\"PENDING\"` Pending business approval.\n- `\"APPROVED\"` Approved by the business.\n- `\"DECLINED\"` Declined by the business.\n<!--END:ONLY:VELO-->" + }, + { + "name": "contactId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Contact ID." + }, + { + "name": "email", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Participant's email address." + }, + { + "name": "inherited", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the participant was inherited from the schedule, as opposed to being booked directly to the session." + }, + { + "name": "name", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Participant's name." + }, + { + "name": "partySize", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Group or party size. The number of people attending. Defaults to 0. Maximum is 250." + }, + { + "name": "phone", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Participant's phone number." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsParticipantNotification", + "members": [ + { + "name": "message", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Custom message to send to the participants about the changes to the booking." + }, + { + "name": "notifyParticipants", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether to send the message about the changes to the customer.\n\nDefault: `false`\n" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsPaymentOptions", + "members": [ + { + "name": "custom", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether a booking made for the service can be paid in a customized way, defined by the API." + }, + { + "name": "wixPaidPlan", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether a booking made for the service can be paid using Wix Pricing Plans." + }, + { + "name": "wixPayInPerson", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether a booking made for the service can be paid in person." + }, + { + "name": "wixPayOnline", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether a booking made for the service can be paid online through Wix." + } + ], + "docs": { + "description": [ + "Payment options for the service. Multiple payment options can be enabled. For example:\nFor a service to be paid only online using WiX, then set wix_pay_online=true and the rest should be set to false.\nFor a service to accept payment online via Wix or in person, set the wix_pay_online=true & wix_pay_in_person=true." + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsPrice", + "members": [ + { + "name": "amount", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Required payment amount." + }, + { + "name": "currency", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Currency in which the amount is quoted." + }, + { + "name": "downPayAmount", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Amount of a down payment or deposit as part of the transaction." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsProperties", + "members": [ + { + "name": "address", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsV4Address", + "displayName": "V4Address" + } + ], + "doc": "Address." + }, + { + "name": "businessConfig", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Supported values: `FITNESS SERVICE`, `RESTAURANT`, `BLOG`, `STORE`, `EVENT`, `UNKNOWN`.\n\nSite business type.\n" + }, + { + "name": "businessName", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Business name." + }, + { + "name": "businessSchedule", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsBusinessSchedule", + "displayName": "BusinessSchedule" + } + ], + "doc": "Business schedule. Regular and exceptional time periods when the business is open or the service is available.\n\n__Note:__ Not supported by Wix Bookings.\n" + }, + { + "name": "categories", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsCategories", + "displayName": "Categories" + } + ], + "doc": "Site categories." + }, + { + "name": "consentPolicy", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsConsentPolicy", + "displayName": "ConsentPolicy" + } + ], + "doc": "Cookie policy the site owner defined for their site (before the users interacts with/limits it)." + }, + { + "name": "description", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Site description." + }, + { + "name": "email", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Email address." + }, + { + "name": "fax", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Fax number." + }, + { + "name": "language", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Site language.\n\nTwo-letter language code in [ISO 639-1 alpha-2](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) format.\n" + }, + { + "name": "locale", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsLocale", + "displayName": "Locale" + } + ], + "doc": "Site locale." + }, + { + "name": "logo", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Path to the site's logo in Wix Media (without Wix Media base URL)." + }, + { + "name": "multilingual", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsMultilingual", + "displayName": "Multilingual" + } + ], + "doc": "Supported languages of a site and the primary language." + }, + { + "name": "paymentCurrency", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Site currency format used to bill customers.\n\nThree-letter currency code in [ISO-4217 alphabetic](https://en.wikipedia.org/wiki/ISO_4217#Active_codes) format.\n" + }, + { + "name": "phone", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Phone number." + }, + { + "name": "siteDisplayName", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Site display name." + }, + { + "name": "timeZone", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Timezone in `America/New_York` format." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsPropertiesChange", + "members": [], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsQueryServiceOptionsAndVariantsRequest", + "members": [ + { + "name": "query", + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsQueryV2", + "displayName": "QueryV2" + } + ], + "doc": "Information about filters, paging, and returned fields." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsQueryServiceOptionsAndVariantsResponse", + "members": [ + { + "name": "pagingMetadata", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsPagingMetadataV2", + "displayName": "PagingMetadataV2" + } + ], + "doc": "Paging metadata." + }, + { + "name": "serviceOptionsAndVariantsList", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsServiceOptionsAndVariants", + "displayName": "ServiceOptionsAndVariants" + } + ] + } + } + ], + "doc": "Retrieved `serviceOptionsAndVariants` objects." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsQueryV2", + "members": [ + { + "name": "cursorPaging", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsCursorPaging", + "displayName": "CursorPaging" + } + ], + "doc": "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`." + }, + { + "name": "fields", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Array of projected fields. A list of specific field names to return. If `fieldsets` are also specified, the union of `fieldsets` and `fields` is returned." + }, + { + "name": "fieldsets", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Array of named, predefined sets of projected fields. A array of predefined named sets of fields to be returned. Specifying multiple `fieldsets` will return the union of fields from all sets. If `fields` are also specified, the union of `fieldsets` and `fields` is returned." + }, + { + "name": "filter", + "optional": true, + "type": [ + { + "nativeType": "Object" + } + ], + "doc": "Filter object in the following format:\n`\"filter\" : {\n\"fieldName1\": \"value1\",\n\"fieldName2\":{\"$operator\":\"value2\"}\n}`\nExample of operators: `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`, `$in`, `$hasSome`, `$hasAll`, `$startsWith`, `$contains`" + }, + { + "name": "paging", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsPaging", + "displayName": "Paging" + } + ], + "doc": "Paging options to limit and skip the number of items." + }, + { + "name": "sort", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsSorting", + "displayName": "Sorting" + } + ] + } + } + ], + "doc": "Sort object in the following format:\n`[{\"fieldName\":\"sortField1\",\"order\":\"ASC\"},{\"fieldName\":\"sortField2\",\"order\":\"DESC\"}]`" + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfQueryV2PagingMethodOneOf", + "members": [ + "cursorPaging", + "paging" + ] + } + ] + }, + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsQueryV2PagingMethodOneOf", + "members": [ + { + "name": "cursorPaging", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsCursorPaging", + "displayName": "CursorPaging" + } + ], + "doc": "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`." + }, + { + "name": "paging", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsPaging", + "displayName": "Paging" + } + ], + "doc": "Paging options to limit and skip the number of items." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsRate", + "members": [ + { + "name": "labeledPriceOptions", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Record", + "typeParams": [ + { + "nativeType": "string" + }, + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsPrice", + "displayName": "Price" + } + ] + } + } + ], + "doc": "Mapping between a named price option, for example, adult or child prices, and the price, currency, and down payment amount.\nWhen present in an update request, the `default_varied_price` is ignored to support backward compatibility." + }, + { + "name": "priceText", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Textual price information used when **Price Per Session** is set to **Custom Price** in the app's service details page.\nWhen present in an update request, the `default_varied_price` is ignored to support backward compatibility." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsRecurringInterval", + "members": [ + { + "name": "_id", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The recurring interval identifier." + }, + { + "name": "affectedSchedules", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsLinkedSchedule", + "displayName": "LinkedSchedule" + } + ] + } + } + ], + "doc": "Specifies the list of linked schedules and the way this link affects the corresponding schedules' availability. Can be calculated from the schedule or overridden on the recurring interval." + }, + { + "name": "end", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "The end time of the recurring interval. Optional. Empty value indicates that there is no end time." + }, + { + "name": "frequency", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsFrequency", + "displayName": "Frequency" + } + ], + "doc": "The frequency of the interval. Optional. The default is frequency with the default repetition." + }, + { + "name": "interval", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsInterval", + "displayName": "Interval" + } + ], + "doc": "The interval rules. The day, hour and minutes the interval is recurring." + }, + { + "name": "intervalType", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The type of recurring interval.\n<!--ONLY:VELO\nOne of:\n- `\"UNDEFINED\"` The default value. Sessions for this interval will be of type EVENT.\n- `\"EVENT\"` A recurring interval of events.\n- `\"WORKING_HOURS\"` A recurring interval for availability.\n<!--END:ONLY:VELO-->" + }, + { + "name": "start", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "The start time of the recurring interval. Required." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsRecurringSessionSplit", + "members": [ + { + "name": "newScheduleVersion", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "" + }, + { + "name": "oldScheduleVersion", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "" + }, + { + "name": "recurringSessions", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsSession", + "displayName": "Session" + } + ] + } + } + ], + "doc": "" + }, + { + "name": "scheduleId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsRecurringSessionsUpdated", + "members": [ + { + "name": "newRecurringSessions", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsSession", + "displayName": "Session" + } + ] + } + } + ], + "doc": "New schedule's recurring session list." + }, + { + "name": "oldRecurringSessions", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsSession", + "displayName": "Session" + } + ] + } + } + ], + "doc": "Old schedule's recurring session list." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsResource", + "members": [ + { + "name": "_id", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Resource ID." + }, + { + "name": "description", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Resource description." + }, + { + "name": "email", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Resource email address." + }, + { + "name": "images", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Resource images." + }, + { + "name": "name", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Resource name." + }, + { + "name": "phone", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Resource phone number." + }, + { + "name": "scheduleIds", + "readOnly": true, + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "List of IDs of schedules owned by this resource." + }, + { + "name": "schedules", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsSchedule", + "displayName": "Schedule" + } + ] + } + } + ], + "doc": "Deprecated. Please use scheduleIds. List of the schedules owned by this resource. Min size 1." + }, + { + "name": "status", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Resource status.\n<!--ONLY:VELO\nOne of:\n- `\"CREATED\"` Default status.\n- `\"DELETED\"` The resource was deleted.\n- `\"UPDATED\"` The resource was updated.\n<!--END:ONLY:VELO-->" + }, + { + "name": "tag", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Deprecated. Please use tags." + }, + { + "name": "tags", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Resource tags. Tags are used to identify, group, and filter the different types of resources. For example, 'staff' or 'room'." + }, + { + "name": "wixUserId", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Wix user ID, if the resource is associated with the Wix user.\nA staff member resource can be associated with a Wix user via assignment of a permissions role in the business manager.\n<!--ONLY:VELO\nClick the **Set Permissions** button for the staff member on the Staff page on your site's dashboard.\n<!--END:ONLY:VELO-->" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsResourceNotification", + "members": [ + { + "name": "event", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Event type." + }, + { + "name": "resource", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsResource", + "displayName": "Resource" + } + ], + "doc": "Updated resource entity.\n'resource.schedules' is deprecated and will not be returned. Please use 'resource.scheduleIds' instead." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsSchedule", + "members": [ + { + "name": "_id", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Schedule ID." + }, + { + "name": "availability", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsAvailability", + "displayName": "Availability" + } + ], + "doc": "An object describing how to calculate the schedule's availability.\nAn empty object indicates that the schedule is not available for booking." + }, + { + "name": "calendarConference", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsCalendarConference", + "displayName": "CalendarConference" + } + ], + "doc": "A conference created for the schedule. This is used when a participant is added to a schedule." + }, + { + "name": "capacity", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Maximum number of participants that can be added to the schedule's sessions.\nMust be at most `1` for schedule whose availability is affected by another schedule. E.g, appointment schedules of the Wix Bookings app." + }, + { + "name": "conferenceProvider", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsConferenceProvider", + "displayName": "ConferenceProvider" + } + ], + "doc": "Conferencing Provider. A schedule with a conferencing provider will use to provider information to create a conference on the provider's system when a session is created on the schedule or on one of its linked schedule's." + }, + { + "name": "created", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "Schedule creation date." + }, + { + "name": "externalCalendarOverrides", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsExternalCalendarOverrides", + "displayName": "ExternalCalendarOverrides" + } + ], + "doc": "Title and description values to override session defaults when syncing to an external calendar.\nLearn more about [syncing calendars](https://support.wix.com/en/article/wix-bookings-important-information-about-syncing-google-calendars-with-wix-bookings)." + }, + { + "name": "inheritedFields", + "readOnly": true, + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Fields which were inherited from the Business Info page under Settings in the Dashboard." + }, + { + "name": "intervals", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsRecurringInterval", + "displayName": "RecurringInterval" + } + ] + } + } + ], + "doc": "Specifies the intervals for the sessions calculation. Optional. e.g. when creating class service you can add\npattern for recurring intervals, these intervals can be returned as schedule's sessions or available slots if\nthere are no other availability calculation constraints and the capacity is bigger then the current total number of sessions' participants." + }, + { + "name": "location", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsLocation", + "displayName": "Location" + } + ], + "doc": "Default location for the schedule's sessions." + }, + { + "name": "participants", + "readOnly": true, + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsParticipant", + "displayName": "Participant" + } + ] + } + } + ], + "doc": "Participants currently registered to sessions in this schedule.\nParticipants who are registered in the schedule are automatically registered to any session that is created for the schedule." + }, + { + "name": "rate", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsRate", + "displayName": "Rate" + } + ], + "doc": "Price options offered when booking this schedule's slots. Default is no rate." + }, + { + "name": "scheduleOwnerId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the schedule's owner entity. This may be a resource ID or a service ID." + }, + { + "name": "status", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Schedule status." + }, + { + "name": "tags", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Tags for grouping schedules. These tags are the default tags for the schedule's sessions.\nThe Wix Bookings app uses the following predefined tags to set schedule type: `\"INDIVIDUAL\"`, `\"GROUP\"`, and `\"COURSE\"`. Once the schedule type is set using these tags, you cannot update it. In addition to the app's tags, you can create and update your own tags." + }, + { + "name": "timeZone", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + }, + { + "name": "title", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Default title for the schedule's sessions. Maximum length: 6000 characters." + }, + { + "name": "totalNumberOfParticipants", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Number of participants registered to sessions in this schedule, calculated as the sum of the party sizes." + }, + { + "name": "updated", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "Schedule last update date." + }, + { + "name": "version", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Schedule version number, updated each time the schedule is updated." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsScheduleCancelled", + "members": [ + { + "name": "oldSchedule", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsSchedule", + "displayName": "Schedule" + } + ], + "doc": "" + }, + { + "name": "participantNotification", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsParticipantNotification", + "displayName": "ParticipantNotification" + } + ], + "doc": "Whether to notify participants about the change and an optional custom message" + }, + { + "name": "schedule", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsSchedule", + "displayName": "Schedule" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsScheduleCreated", + "members": [ + { + "name": "schedule", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsSchedule", + "displayName": "Schedule" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsScheduleNotification", + "members": [ + { + "name": "availabilityPolicyUpdated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsAvailabilityPolicyUpdated", + "displayName": "AvailabilityPolicyUpdated" + } + ], + "doc": "" + }, + { + "name": "instanceId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + }, + { + "name": "intervalSplit", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsIntervalSplit", + "displayName": "IntervalSplit" + } + ], + "doc": "" + }, + { + "name": "migrationEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsMigrationEvent", + "displayName": "MigrationEvent" + } + ], + "doc": "supported only for schedule migration apis." + }, + { + "name": "multipleSessionsCreated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsMultipleSessionsCreated", + "displayName": "MultipleSessionsCreated" + } + ], + "doc": "supported only for schedule migration apis." + }, + { + "name": "notifyParticipants", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether to notify participants about changed sessions. deprecated, use participant_notification" + }, + { + "name": "preserveFutureSessionsWithParticipants", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "" + }, + { + "name": "recurringSessionSplit", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsRecurringSessionSplit", + "displayName": "RecurringSessionSplit" + } + ], + "doc": "" + }, + { + "name": "scheduleCancelled", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsScheduleCancelled", + "displayName": "ScheduleCancelled" + } + ], + "doc": "" + }, + { + "name": "scheduleCreated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsScheduleCreated", + "displayName": "ScheduleCreated" + } + ], + "doc": "" + }, + { + "name": "scheduleUnassignedFromUser", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsScheduleUnassignedFromUser", + "displayName": "ScheduleUnassignedFromUser" + } + ], + "doc": "Inspect `schedule.scheduleOwnerUserId` on `scheduleUpdated` instead." + }, + { + "name": "scheduleUpdated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsScheduleUpdated", + "displayName": "ScheduleUpdated" + } + ], + "doc": "" + }, + { + "name": "sessionCancelled", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsSessionCancelled", + "displayName": "SessionCancelled" + } + ], + "doc": "" + }, + { + "name": "sessionCreated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsSessionCreated", + "displayName": "SessionCreated" + } + ], + "doc": "" + }, + { + "name": "sessionUpdated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsSessionUpdated", + "displayName": "SessionUpdated" + } + ], + "doc": "" + }, + { + "name": "siteProperties", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsSitePropertiesOnScheduleCreation", + "displayName": "SitePropertiesOnScheduleCreation" + } + ], + "doc": "site properties. Optional. Given in create schedule notification." + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfScheduleNotificationEventOneOf", + "members": [ + "availabilityPolicyUpdated", + "intervalSplit", + "migrationEvent", + "multipleSessionsCreated", + "recurringSessionSplit", + "scheduleCancelled", + "scheduleCreated", + "scheduleUnassignedFromUser", + "scheduleUpdated", + "sessionCancelled", + "sessionCreated", + "sessionUpdated" + ] + } + ] + }, + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsScheduleNotificationEventOneOf", + "members": [ + { + "name": "availabilityPolicyUpdated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsAvailabilityPolicyUpdated", + "displayName": "AvailabilityPolicyUpdated" + } + ], + "doc": "" + }, + { + "name": "intervalSplit", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsIntervalSplit", + "displayName": "IntervalSplit" + } + ], + "doc": "" + }, + { + "name": "migrationEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsMigrationEvent", + "displayName": "MigrationEvent" + } + ], + "doc": "supported only for schedule migration apis." + }, + { + "name": "multipleSessionsCreated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsMultipleSessionsCreated", + "displayName": "MultipleSessionsCreated" + } + ], + "doc": "supported only for schedule migration apis." + }, + { + "name": "recurringSessionSplit", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsRecurringSessionSplit", + "displayName": "RecurringSessionSplit" + } + ], + "doc": "" + }, + { + "name": "scheduleCancelled", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsScheduleCancelled", + "displayName": "ScheduleCancelled" + } + ], + "doc": "" + }, + { + "name": "scheduleCreated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsScheduleCreated", + "displayName": "ScheduleCreated" + } + ], + "doc": "" + }, + { + "name": "scheduleUnassignedFromUser", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsScheduleUnassignedFromUser", + "displayName": "ScheduleUnassignedFromUser" + } + ], + "doc": "Inspect `schedule.scheduleOwnerUserId` on `scheduleUpdated` instead." + }, + { + "name": "scheduleUpdated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsScheduleUpdated", + "displayName": "ScheduleUpdated" + } + ], + "doc": "" + }, + { + "name": "sessionCancelled", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsSessionCancelled", + "displayName": "SessionCancelled" + } + ], + "doc": "" + }, + { + "name": "sessionCreated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsSessionCreated", + "displayName": "SessionCreated" + } + ], + "doc": "" + }, + { + "name": "sessionUpdated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsSessionUpdated", + "displayName": "SessionUpdated" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsScheduleUnassignedFromUser", + "members": [ + { + "name": "schedule", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsSchedule", + "displayName": "Schedule" + } + ], + "doc": "The schedule that was unassigned from the user." + }, + { + "name": "userId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The Wix user id." + } + ], + "docs": { + "description": [ + "Schedule unassigned from user." + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsScheduleUpdated", + "members": [ + { + "name": "newSchedule", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsSchedule", + "displayName": "Schedule" + } + ], + "doc": "The new schedule after the update." + }, + { + "name": "oldSchedule", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsSchedule", + "displayName": "Schedule" + } + ], + "doc": "The old schedule before the update." + }, + { + "name": "participantNotification", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsParticipantNotification", + "displayName": "ParticipantNotification" + } + ], + "doc": "Whether to notify participants about the change and an optional custom message" + }, + { + "name": "recurringSessions", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsRecurringSessionsUpdated", + "displayName": "RecurringSessionsUpdated" + } + ], + "doc": "Recurring sessions updated event. If this field is given, the reason for the schedule updated event was\nupdating at least one of the given schedule's recurring sessions.\nThis event is triggered by create/update/delete recurring session apis." + }, + { + "name": "triggeredByAnonymizeRequest", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether this notification was created as a result of an anonymization request, such as GDPR.\nAn anonymized participant will have the following details:\nname = \"deleted\"\nphone = \"deleted\"\nemail = \"deleted@deleted.com\"" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsScheduleWithSessions", + "members": [ + { + "name": "schedule", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsSchedule", + "displayName": "Schedule" + } + ], + "doc": "" + }, + { + "name": "sessions", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsSession", + "displayName": "Session" + } + ] + } + } + ], + "doc": "" + }, + { + "name": "siteProperties", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsSitePropertiesOnScheduleCreation", + "displayName": "SitePropertiesOnScheduleCreation" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsSeoSchema", + "members": [ + { + "name": "settings", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsSettings", + "displayName": "Settings" + } + ], + "doc": "SEO general settings." + }, + { + "name": "tags", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsTag", + "displayName": "Tag" + } + ] + } + } + ], + "doc": "SEO tag information." + } + ], + "docs": { + "description": [ + "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.\nThe search engines use this information for ranking purposes, or to display snippets in the search results.\nThis 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." + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsService", + "members": [ + { + "name": "_id", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Service ID." + }, + { + "name": "advancedSeoData", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsSeoSchema", + "displayName": "SeoSchema" + } + ], + "doc": "Advanced SEO data" + }, + { + "name": "bookingFormId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the form that visitors fill out when booking the service." + }, + { + "name": "categoryId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the category to which the service belongs." + }, + { + "name": "customProperties", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Record", + "typeParams": [ + { + "nativeType": "string" + }, + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Set of custom properties for the service." + }, + { + "name": "includeConferenceOption", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether a conference is to be generated for the service." + }, + { + "name": "info", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsServiceInfo", + "displayName": "ServiceInfo" + } + ], + "doc": "Information about the service." + }, + { + "name": "paymentOptions", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsPaymentOptions", + "displayName": "PaymentOptions" + } + ], + "doc": "Payment options available for use when booking the service." + }, + { + "name": "policy", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsBookingPolicy", + "displayName": "BookingPolicy" + } + ], + "doc": "Description of the bookings policy for the service." + }, + { + "name": "scheduleIds", + "readOnly": true, + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "List of schedule IDs for the sessions and slots that can be booked for the service.\nThe list can include schedules with any `status` values, however the Bookings application only uses the schedules with a `status` of `\"CREATED\"`. There is only one schedule with a status of `\"CREATED\"` per service. The ID of that schedule must always be the first in the list." + }, + { + "name": "seoData", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsSeoSchema", + "displayName": "SeoSchema" + } + ], + "doc": "SEO data" + }, + { + "name": "sortOrder", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Sort order of the service within its category." + }, + { + "name": "status", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Service status." + } + ], + "docs": { + "description": [ + "A service describes the business offering that a business provides to its customers." + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsServiceChoice", + "members": [ + { + "name": "custom", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Name of the custom choice." + }, + { + "name": "optionId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the service option." + }, + { + "name": "staffMemberId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the staff member providing the service. Equal to the `resourceId`\nof the staff member or the `scheduleOwnerId` of the relevant\n[schedule's](https://dev.wix.com/api/rest/wix-bookings/schedules-and-sessions/schedule/schedule-object)\n`availability.linkedSchedules`." + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfServiceChoiceChoiceOneOf", + "members": [ + "custom", + "staffMemberId" + ] + } + ] + }, + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsServiceChoiceChoiceOneOf", + "members": [ + { + "name": "custom", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Name of the custom choice." + }, + { + "name": "staffMemberId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the staff member providing the service. Equal to the `resourceId`\nof the staff member or the `scheduleOwnerId` of the relevant\n[schedule's](https://dev.wix.com/api/rest/wix-bookings/schedules-and-sessions/schedule/schedule-object)\n`availability.linkedSchedules`." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsServiceInfo", + "members": [ + { + "name": "description", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Service description." + }, + { + "name": "images", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Images associated with the service. Deprecated." + }, + { + "name": "media", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsMedia", + "displayName": "Media" + } + ], + "doc": "Images associated with the service. Optional. Not supported yet." + }, + { + "name": "name", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Service name." + }, + { + "name": "tagLine", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Short service description." + } + ], + "docs": { + "description": [ + "Information describing the service." + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsServiceNotification", + "members": [ + { + "name": "deleteMetadata", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsDeleteMetadata", + "displayName": "DeleteMetadata" + } + ], + "doc": "" + }, + { + "name": "event", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Supported values:\n- `'Created'`\n- `'Deleted'`\n- `'Unspecified'`\n- `'Updated'`" + }, + { + "name": "policy", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsBusinessServicesPolicy", + "displayName": "BusinessServicesPolicy" + } + ], + "doc": "" + }, + { + "name": "service", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsService", + "displayName": "Service" + } + ], + "doc": "Updated service entity." + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfServiceNotificationMetadataOneOf", + "members": [ + "deleteMetadata" + ] + } + ] + }, + "docs": { + "description": [ + "An event sent in the system once the service is changed." + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsServiceNotificationMetadataOneOf", + "members": [ + { + "name": "deleteMetadata", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsDeleteMetadata", + "displayName": "DeleteMetadata" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsServiceOption", + "members": [ + { + "name": "_id", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the service option." + }, + { + "name": "customData", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsCustomServiceOption", + "displayName": "CustomServiceOption" + } + ], + "doc": "Details about the custom option. Available only for `CUSTOM` options." + }, + { + "name": "type", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Type of the service option." + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfServiceOptionOptionSpecificDataOneOf", + "members": [ + "customData" + ] + } + ] + }, + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsServiceOptionOptionSpecificDataOneOf", + "members": [ + { + "name": "customData", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsCustomServiceOption", + "displayName": "CustomServiceOption" + } + ], + "doc": "Details about the custom option. Available only for `CUSTOM` options." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsServiceOptions", + "members": [ + { + "name": "values", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsServiceOption", + "displayName": "ServiceOption" + } + ] + } + } + ], + "doc": "Values of the service options.\n\nMax: 1 service option\n" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsServiceOptionsAndVariants", + "members": [ + { + "name": "_id", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the `serviceOptionsAndVariants` object." + }, + { + "name": "maxPrice", + "readOnly": true, + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsMoney", + "displayName": "Money" + } + ], + "doc": "Price of the most expensive service variant." + }, + { + "name": "minPrice", + "readOnly": true, + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsMoney", + "displayName": "Money" + } + ], + "doc": "Price of the cheapest service variant." + }, + { + "name": "options", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsServiceOptions", + "displayName": "ServiceOptions" + } + ], + "doc": "Service options. Note that currently only a single option is supported per service." + }, + { + "name": "revision", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Revision number, which increments by 1 each time the `serviceOptionsAndVariants` object is updated.\nTo prevent conflicting changes,\nthe current revision must be passed when updating and deleting the `serviceOptionsAndVariants` object.\n\nIgnored when creating a `serviceOptionsAndVariants` object.\n" + }, + { + "name": "serviceId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the service related to these options and variants." + }, + { + "name": "variants", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsServiceVariants", + "displayName": "ServiceVariants" + } + ], + "doc": "Information about the service's variants." + } + ], + "docs": { + "description": [ + "The `serviceOptionsAndVariants` object links a service to its variants.\nYou can use it to offer customers different prices for a service,\ndepending on which choices they book.\nRead more about [service options and variants](https://wix.wixanswers.com/app/kb/article/2e91a25b-b3c2-4cf7-9005-429a4929fc36/en)." + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsServiceOptionsAndVariantsCreated", + "members": [ + { + "name": "entity", + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsServiceOptionsAndVariants", + "displayName": "ServiceOptionsAndVariants" + } + ], + "doc": "" + }, + { + "name": "metadata", + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsBackendEventMetadata", + "displayName": "BackendEventMetadata" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsServiceOptionsAndVariantsDeleted", + "members": [ + { + "name": "metadata", + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsBackendEventMetadata", + "displayName": "BackendEventMetadata" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsServiceOptionsAndVariantsUpdated", + "members": [ + { + "name": "entity", + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsServiceOptionsAndVariants", + "displayName": "ServiceOptionsAndVariants" + } + ], + "doc": "" + }, + { + "name": "metadata", + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsBackendEventMetadata", + "displayName": "BackendEventMetadata" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsServiceVariant", + "members": [ + { + "name": "choices", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsServiceChoice", + "displayName": "ServiceChoice" + } + ] + } + } + ], + "doc": "Choices for the service option. Currently, only a single choice is supported\nbecause a service can have only a single option.\n\nMax: 1 choice\n" + }, + { + "name": "price", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsMoney", + "displayName": "Money" + } + ], + "doc": "Information about the service variant's price." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsServiceVariants", + "members": [ + { + "name": "values", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsServiceVariant", + "displayName": "ServiceVariant" + } + ] + } + } + ], + "doc": "Values of the service variants." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsSession", + "members": [ + { + "name": "_id", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Session ID." + }, + { + "name": "affectedSchedules", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsLinkedSchedule", + "displayName": "LinkedSchedule" + } + ] + } + } + ], + "doc": "An object specifying a list of schedules and the way each schedule's availability is affected by the session. For example, the schedule of an instructor is affected by sessions of the class that they instruct.\nThe array is inherited from the schedule and can be overridden even if the session is a recurring session." + }, + { + "name": "calendarConference", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsCalendarConference", + "displayName": "CalendarConference" + } + ], + "doc": "A conference created for the session according to the details set in the schedule's conference provider information.\nIf the session is a recurring session, this field is inherited from the schedule." + }, + { + "name": "capacity", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Maximum number of participants that can be added to the session. Defaults to the schedule capacity.\nThe value is inherited from the schedule and can be overridden unless the session is a recurring session." + }, + { + "name": "end", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsCalendarDateTime", + "displayName": "CalendarDateTime" + } + ], + "doc": "An object specifying the end date and time of the session. The `end` time must be after the `start` time and be same type as `start`.\nIf the session is a recurring session, `end` must contain a `localDateTime`." + }, + { + "name": "externalCalendarOverrides", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsExternalCalendarOverrides", + "displayName": "ExternalCalendarOverrides" + } + ], + "doc": "Title and description values to override session defaults when syncing to an external calendar.\nLearn more about [syncing calendars](https://support.wix.com/en/article/wix-bookings-important-information-about-syncing-google-calendars-with-wix-bookings).\nThe value is inherited from the schedule and can be overridden unless the session is a recurring session." + }, + { + "name": "inheritedFields", + "readOnly": true, + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "A list of properties for which values were inherited from the schedule.\nThis does not include participants that were inherited from the schedule." + }, + { + "name": "instanceOfRecurrence", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "A string representing a recurrence rule (RRULE) if the session is an instance of a recurrence pattern.\nEmpty when the session is not an instance of a recurrence rule, or if the session defines a recurrence pattern, and `recurrence` is not empty." + }, + { + "name": "location", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsLocation", + "displayName": "Location" + } + ], + "doc": "An object describing the location where the session takes place.\nDefaults to the schedule location.\nFor single sessions, `session.location.businessLocation` can only be provided for locations that are defined in the schedule using `schedule.location` or `schedule.availability.locations`." + }, + { + "name": "notes", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Additional information about the session.\nNotes are not supported for recurring sessions." + }, + { + "name": "originalStart", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "Original start date and time of the session in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601#Coordinated_Universal_Time_(UTC)) format." + }, + { + "name": "participants", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsParticipant", + "displayName": "Participant" + } + ] + } + } + ], + "doc": "List of participants booked for the session.\nThe list includes participants who have registered for this specific session, and participants who have registered for a schedule that includes this session.\nIf the session is a recurring session, this field must be empty." + }, + { + "name": "rate", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsRate", + "displayName": "Rate" + } + ], + "doc": "The price options offered for the session. Defaults to the schedule rate.\nThe value is inherited from the schedule and can be overridden unless the session is a recurring session." + }, + { + "name": "recurrence", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "A string representing a recurrence rule (RRULE) for a recurring session, as defined in [iCalendar RFC 5545](https://icalendar.org/iCalendar-RFC-5545/3-3-10-recurrence-rule.html).\nIf the session is an instance of a recurrence pattern, the `instanceOfRecurrence` property will be contain the recurrence rule and this property will be empty.\nThe RRULE defines a rule for repeating a session.\nSupported parameters are:\n\n|Keyword|Description|Supported values|\n|--|--|---|\n|`FREQ`|The frequency at which the session is recurs. Required.|`WEEKLY`|\n|`INTERVAL`|How often, in terms of `FREQ`, the session recurs. Default is 1. Optional.|\n|`UNTIL`|The UTC end date and time of the recurrence. Optional.|\n|`BYDAY`|Day of the week when the event should recur. Required.|One of: `MO`, `TU`, `WE`, `TH`, `FR`, `SA`, `SU`|\n\n\nFor example, a session that repeats every second week on a Monday until January 7, 2022 at 8 AM:\n`\"FREQ=WEEKLY;INTERVAL=2;BYDAY=MO;UNTIL=20220107T080000Z\"`\n\n<!--ORIGINAL COMMENTS:\n`FREQ` — The frequency with which the session should be repeated (such as DAILY or WEEKLY).\nSupported `WEEKLY` value is supported.\nINTERVAL — Works together with FREQ to specify how often the session should be repeated. For example, FREQ=WEEKLY;INTERVAL=2 means once every two weeks. Optional. Default value is 1.\nCOUNT — The number of times this event should be repeated. Not yet supported.\nUNTIL — The UTC date & time until which the session should be repeated. This parameter is optional. When it is not specified, the event repeats forever.\nThe format is a short ISO date, followed by 'T' and a short time with seconds and without milliseconds, terminated by the UTC designator 'Z'. For example, until Jan. 19th 2018 at 7:00 AM: 'UNTIL=20180119T070000Z'.\nBYDAY - The days of the week when the event should be repeated. Currently, only a single day is supported. This parameter is mandatory.\nPossible values are: MO, TU, WE, TH, FR, SA, SU\nNote that DTSTART and DTEND lines are not allowed in this field; session start and end times are specified in the start and end fields.\n**Example**: FREQ=WEEKLY;INTERVAL=2;BYDAY=MO;UNTIL=20200427T070000Z\nORIGINAL COMMENTS-->\n" + }, + { + "name": "recurringIntervalId", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Recurring interval ID. Defined when a session will be a recurring session. read-only. Optional.\nFor exmaple, when creating a class service with recurring sessions, you add a recurrence rule to create recurring sessions.\nThis field is omitted for single sessions or instances of recurring sessions.\nSpecified when the session was originally generated from a schedule recurring interval.\nDeprecated. Use `recurringSessionId`." + }, + { + "name": "recurringSessionId", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The ID of the recurring session if this session is an instance of a recurrence. Use this ID to update the recurrence and all of the instances." + }, + { + "name": "scheduleId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the schedule that the session belongs to." + }, + { + "name": "scheduleOwnerId", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the resource or service that the session's schedule belongs to." + }, + { + "name": "start", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsCalendarDateTime", + "displayName": "CalendarDateTime" + } + ], + "doc": "An object specifying the start date and time of the session. If the session is a recurring session, `start` must contain a `localDateTime`." + }, + { + "name": "status", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Session status.\n<!--ONLY:VELO\nOne of:\n- `\"CONFIRMED\"` Default value.\n- `\"CANCELLED\"` The session was deleted.\n<!--END:ONLY:VELO-->" + }, + { + "name": "tags", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Tags for the session.\nThe value is inherited from the schedule and can be overridden unless the session is a recurring session." + }, + { + "name": "timeReservedAfter", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Time reserved after the session end time, derived from the schedule availability constraints and the time between slots. Read-only.\nIf the session is a recurring session, this field must be empty." + }, + { + "name": "title", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Session title.\nThe value is inherited from the schedule and can be overridden unless the session is a recurring session." + }, + { + "name": "totalNumberOfParticipants", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "The number of participants booked for the session. Read-only.\nCalculated as the sum of the party sizes." + }, + { + "name": "type", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Session type.\n<!--ONLY:VELO\nOne of:\n- `\"EVENT\"` Reserved period of time on the schedule. For example, an appointment, class, course, or blocked time. Events are visible in the Dashboard in the Bookings app's [Booking Calendar](https://support.wix.com/en/article/wix-bookings-about-the-wix-bookings-calendar) page.\n- `\"WORKING_HOURS\"` Placeholder for available time on a resource’s schedule.\n<!--END:ONLY:VELO-->" + }, + { + "name": "version", + "readOnly": true, + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsSessionVersion", + "displayName": "SessionVersion" + } + ], + "doc": "The session version.\nComposed by the schedule, session and participants versions." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsSessionCancelled", + "members": [ + { + "name": "participantNotification", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsParticipantNotification", + "displayName": "ParticipantNotification" + } + ], + "doc": "Whether to notify participants about the change and an optional custom message" + }, + { + "name": "session", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsSession", + "displayName": "Session" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsSessionCreated", + "members": [ + { + "name": "session", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsSession", + "displayName": "Session" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsSessionUpdated", + "members": [ + { + "name": "newSession", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsSession", + "displayName": "Session" + } + ], + "doc": "" + }, + { + "name": "oldSession", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsSession", + "displayName": "Session" + } + ], + "doc": "" + }, + { + "name": "participantNotification", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsParticipantNotification", + "displayName": "ParticipantNotification" + } + ], + "doc": "Whether to notify participants about the change and an optional custom message" + }, + { + "name": "triggeredByAnonymizeRequest", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether this notification was created as a result of an anonymization request, such as GDPR.\nAn anonymized participant will have the following details:\nname = \"deleted\"\nphone = \"deleted\"\nemail = \"deleted@deleted.com\"" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsSessionVersion", + "members": [ + { + "name": "number", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Incremental version number, which is updated on each change to the session or on changes affecting the session." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsSettings", + "members": [ + { + "name": "keywords", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsKeyword", + "displayName": "Keyword" + } + ] + } + } + ], + "doc": "User-selected keyword terms for a specific page." + }, + { + "name": "preventAutoRedirect", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the Auto Redirect feature, which creates `301 redirects` on a slug change, is enabled.\n\nDefault: `false` (Auto Redirect is enabled.)\n" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsSiteCloned", + "members": [ + { + "name": "originMetaSiteId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Origin site id." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsSiteCreated", + "members": [ + { + "name": "originTemplateId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Origin template site id." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsSitePropertiesEvent", + "members": [ + { + "name": "fields", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Set of properties that were updated - corresponds to the fields in \"properties\"." + }, + { + "name": "properties", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsProperties", + "displayName": "Properties" + } + ], + "doc": "Updated properties." + }, + { + "name": "version", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Version of the site's properties represented by this update." + } + ], + "docs": { + "description": [ + "The actual update event for a particular notification." + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsSitePropertiesNotification", + "members": [ + { + "name": "changeContext", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsChangeContext", + "displayName": "ChangeContext" + } + ], + "doc": "Context of the notification" + }, + { + "name": "event", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsSitePropertiesEvent", + "displayName": "SitePropertiesEvent" + } + ], + "doc": "The actual update event." + }, + { + "name": "metasiteId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The site ID for which this update notification applies." + }, + { + "name": "translations", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsTranslation", + "displayName": "Translation" + } + ] + } + } + ], + "doc": "A convenience set of mappings from the MetaSite ID to its constituent services." + } + ], + "docs": { + "description": [ + "Encapsulates all details written to the Greyhound topic when a site's properties are updated." + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsSitePropertiesOnScheduleCreation", + "members": [ + { + "name": "timeZone", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The global time zone value." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsSorting", + "members": [ + { + "name": "fieldName", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Name of the field to sort by." + }, + { + "name": "order", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Sort order." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsSpecialHourPeriod", + "members": [ + { + "name": "comment", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Additional info about the exception. For example, \"We close earlier on New Year's Eve.\"" + }, + { + "name": "endDate", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "End date and time of the exception in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format and [Coordinated Universal Time (UTC)](https://en.wikipedia.org/wiki/Coordinated_Universal_Time)." + }, + { + "name": "isClosed", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the business is closed (or the service is not available) during the exception.\n\nDefault: `true`.\n" + }, + { + "name": "startDate", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Start date and time of the exception in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format and [Coordinated Universal Time (UTC)](https://en.wikipedia.org/wiki/Coordinated_Universal_Time)." + } + ], + "docs": { + "description": [ + "Exception to the business's regular hours. The business can be open or closed during the exception." + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsSplitInterval", + "members": [ + { + "name": "sameAsDuration", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the slot duration is used as the split interval value.\nIf `same_as_duration` is `true`, the `value_in_minutes` is the sum of the first duration in\n`schedule.availabilityConstraints.SlotDurations` field, and `schedule.availabilityConstraints.TimeBetweenSlots` field." + }, + { + "name": "valueInMinutes", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Number of minutes between available slots' start times when `same_as_duration` is `false`." + } + ], + "docs": { + "description": [ + "The time between available slots' start times. For example, For 5 minute slots, 3:00, 3:05, 3:15 etc. For 1 hour slots, 3:00, 4:00, 5:00 etc." + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsStaffData", + "members": [ + { + "name": "refreshToken", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + }, + { + "name": "resourceId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + }, + { + "name": "syncRequestEmail", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsStreetAddress", + "members": [ + { + "name": "apt", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Apartment number." + }, + { + "name": "name", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Street name." + }, + { + "name": "number", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Street number." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsSubdivision", + "members": [ + { + "name": "code", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Subdivision code. Usually state, region, prefecture or province code, according to [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2)." + }, + { + "name": "name", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Subdivision full name." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsSupportedLanguage", + "members": [ + { + "name": "countryCode", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Language icon." + }, + { + "name": "isPrimary", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the supported language is the primary language for the site." + }, + { + "name": "languageCode", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Two-letter language code in [ISO 639-1 alpha-2](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) format." + }, + { + "name": "locale", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsLocale", + "displayName": "Locale" + } + ], + "doc": "Locale." + }, + { + "name": "resolutionMethod", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "How the language will be resolved. For internal use." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsTag", + "members": [ + { + "name": "children", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "SEO tag inner content. For example, `<title> inner content `." + }, + { + "name": "custom", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the tag is a custom tag." + }, + { + "name": "disabled", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the tag is disabled." + }, + { + "name": "meta", + "optional": true, + "type": [ + { + "nativeType": "Object" + } + ], + "doc": "SEO tag meta data. For example, `{height: 300, width: 240}`." + }, + { + "name": "props", + "optional": true, + "type": [ + { + "nativeType": "Object" + } + ], + "doc": "A `{'key':'value'}` pair object where each SEO tag property (`'name'`, `'content'`, `'rel'`, `'href'`) contains a value.\nFor example: `{'name': 'description', 'content': 'the description itself'}`." + }, + { + "name": "type", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "SEO tag type.\n\nSupported values: `title`, `meta`, `script`, `link`.\n" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsTimePeriod", + "members": [ + { + "name": "closeDay", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Day of the week the period ends on." + }, + { + "name": "closeTime", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Time the period ends in 24-hour [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) extended format. Valid values are `00:00` to `24:00`, where `24:00` represents\nmidnight at the end of the specified day.\n\n__Note:__ If `openDay` and `closeDay` specify the same day of the week `closeTime` must be later than `openTime`.\n" + }, + { + "name": "openDay", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Day of the week the period starts on." + }, + { + "name": "openTime", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Time the period starts in 24-hour [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) extended format. Valid values are `00:00` to `24:00`, where `24:00` represents\nmidnight at the end of the specified day." + } + ], + "docs": { + "description": [ + "Weekly recurring time periods when the business is regularly open or the service is available." + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsTranslation", + "members": [ + { + "name": "appDefId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The application definition ID; this only applies to services of type ThirdPartyApps." + }, + { + "name": "instanceId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The instance ID of the service." + }, + { + "name": "serviceType", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The service type." + } + ], + "docs": { + "description": [ + "A single mapping from the MetaSite ID to a particular service." + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsUpdateServiceOptionsAndVariantsRequest", + "members": [ + { + "name": "mask", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Field mask containing information about the fields to update." + }, + { + "name": "serviceOptionsAndVariants", + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsServiceOptionsAndVariants", + "displayName": "ServiceOptionsAndVariants" + } + ], + "doc": "`ServiceOptionsAndVariants` object to update." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsUpdateServiceOptionsAndVariantsResponse", + "members": [ + { + "name": "serviceOptionsAndVariants", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsServiceOptionsAndVariants", + "displayName": "ServiceOptionsAndVariants" + } + ], + "doc": "Updated `serviceOptionsAndVariants` object." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsV4Address", + "members": [ + { + "name": "apartmentNumber", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Apartment number." + }, + { + "name": "city", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "City name." + }, + { + "name": "coordinates", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsGeoCoordinates", + "displayName": "GeoCoordinates" + } + ], + "doc": "Geographic coordinates of location." + }, + { + "name": "country", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Two-letter country code in an [ISO-3166 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format." + }, + { + "name": "googleFormattedAddress", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Google-formatted version of this address." + }, + { + "name": "hint", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Events.bookingsCatalogV1ServiceOptionsAndVariantsAddressHint", + "displayName": "AddressHint" + } + ], + "doc": "Extra information to be displayed in the address." + }, + { + "name": "isPhysical", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether this address represents a physical location." + }, + { + "name": "state", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "State." + }, + { + "name": "street", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Street name." + }, + { + "name": "streetNumber", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Street number." + }, + { + "name": "zip", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Zip or postal code." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsVersion", + "members": [ + { + "name": "participantsVersion", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Participants version number, updated each time the schedule participants are updated." + }, + { + "name": "scheduleVersion", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Schedule version number, updated each time the schedule is updated." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "bookingsCatalogV1ServiceOptionsAndVariantsWaitingListPolicy", + "members": [ + { + "name": "capacity", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Number of spots available in the waitlist. Defaults to 10 spots." + }, + { + "name": "isEnabled", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether waitlisting is enabled for the service." + }, + { + "name": "timeWindowMinutes", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Amount of time a participant is given to book, once notified that a spot is available. Defaults to 10 minutes." + } + ], + "docs": { + "description": [ + "" + ] + } + } + ] +} diff --git a/wix-bookings-v2/wix-bookings-v2/ServiceOptionsAndVariants.service.json b/wix-bookings-v2/wix-bookings-v2/ServiceOptionsAndVariants.service.json new file mode 100644 index 0000000000..61a8807ec8 --- /dev/null +++ b/wix-bookings-v2/wix-bookings-v2/ServiceOptionsAndVariants.service.json @@ -0,0 +1,7117 @@ +{ + "name": "ServiceOptionsAndVariants", + "memberOf": "wix-bookings-v2", + "mixes": [], + "callbacks": [], + "extra": {}, + "clientId": "wix-bookings.v2-service_options_and_variants", + "docs": {}, + "relatedGuides": [], + "properties": [], + "operations": [ + { + "name": "cloneServiceOptionsAndVariants", + "params": [ + { + "name": "cloneFromId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the `serviceOptionsAndVariants` object to clone.", + "required": true + }, + { + "name": "targetServiceId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the service that will be set for the cloned `serviceOptionsAndVariants`", + "required": true + } + ], + "requiredFields": [ + "cloneFromId", + "targetServiceId" + ], + "ret": { + "type": [ + { + "complexType": { + "nativeType": "Promise", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.CloneServiceOptionsAndVariantsResponse" + } + ] + } + } + ], + "doc": null + }, + "docs": { + "summary": "Clones a `serviceOptionsAndVariants` object. This endpoint can be called, for example, to duplicate a service.\nThe cloned service contains all the original service options and variants.", + "description": [ + "Each option\nin the cloned service has a newly-generated ID that is copied to all choices of the variants in the\nclone. The cloned service references the service provided in the request by `target_service_id`." + ], + "examples": [ + { + "title": "cloneServiceOptionsAndVariants example", + "body": [ + "import { serviceOptionsAndVariants } from 'wix-bookings.v2';", + " ", + " async function cloneServiceOptionsAndVariants(cloneFromId, targetServiceId) {", + " try {", + " const result = await serviceOptionsAndVariants.cloneServiceOptionsAndVariants(cloneFromId, targetServiceId);", + "", + " return result;", + " } catch (error) {", + " console.error(error);", + " // Handle the error", + " }", + " }", + " " + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "createServiceOptionsAndVariants", + "params": [ + { + "name": "serviceOptionsAndVariants", + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.ServiceOptionsAndVariants" + } + ], + "doc": "Service options and variants to create.", + "required": true + } + ], + "requiredFields": [ + "serviceOptionsAndVariants", + "serviceOptionsAndVariants.options", + "serviceOptionsAndVariants.serviceId", + "serviceOptionsAndVariants.variants" + ], + "ret": { + "type": [ + { + "complexType": { + "nativeType": "Promise", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.CreateServiceOptionsAndVariantsResponse" + } + ] + } + } + ], + "doc": null + }, + "docs": { + "summary": "Creates options and variants for a service.", + "description": [ + "Before creating the `serviceOptionsAndVariants` object you need to anticipate and manually define\nall variants based on the defined options and their choices. You then pass\nthe `options` and `variants` arrays in the\nrequest. Variants aren't automatically calculated from the defined options and choices.\n\n__Current Limitations:__\n\n+ Only a single `serviceOptionsAndVariants` object is supported per service.\n\n+ Only a single option is supported per `serviceOptionsAndVariants` object. This means that services are limited to a single option. Therefore, `variants`provides pricing details for either all choices of the single option (for `CUSTOM` options) or all staff members providing the service (for `STAFF_MEMBER` options).\n\nFor a list of error messages, see [Create Service Options and Variants Errors](https://dev.wix.com/api/rest/wix-bookings/service-options-and-variants/error-messages#service-options-and-variants_error-messages_create-service-options-and-variants-errors)." + ], + "examples": [ + { + "title": "createServiceOptionsAndVariants example", + "body": [ + "import { serviceOptionsAndVariants } from 'wix-bookings.v2';", + " ", + " async function createServiceOptionsAndVariants(serviceOptionsAndVariants) {", + " try {", + " const result = await serviceOptionsAndVariants.createServiceOptionsAndVariants(serviceOptionsAndVariants);", + "", + " return result;", + " } catch (error) {", + " console.error(error);", + " // Handle the error", + " }", + " }", + " " + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "deleteServiceOptionsAndVariants", + "params": [ + { + "name": "serviceOptionsAndVariantsId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the `serviceOptionsAndVariants` object to delete.", + "required": true + }, + { + "name": "options", + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.DeleteServiceOptionsAndVariantsOptions" + } + ], + "doc": "", + "required": false + } + ], + "requiredFields": [ + "serviceOptionsAndVariantsId" + ], + "ret": { + "type": [ + { + "complexType": { + "nativeType": "Promise", + "typeParams": [ + { + "nativeType": "void" + } + ] + } + } + ], + "doc": null + }, + "docs": { + "summary": "Deletes a `serviceOptionsAndVariants` object.", + "description": [ + "Because each service has only a single `serviceOptionsAndVariants` object, the\nservice won't have any supported options and variants any longer. Instead,\nthe standard Wix Bookings service price calculation is used." + ], + "examples": [ + { + "title": "deleteServiceOptionsAndVariants example", + "body": [ + "import { serviceOptionsAndVariants } from 'wix-bookings.v2';", + " ", + " async function deleteServiceOptionsAndVariants(serviceOptionsAndVariantsId, options) {", + " try {", + " const result = await serviceOptionsAndVariants.deleteServiceOptionsAndVariants(serviceOptionsAndVariantsId, options);", + "", + " return result;", + " } catch (error) {", + " console.error(error);", + " // Handle the error", + " }", + " }", + " " + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "getServiceOptionsAndVariants", + "params": [ + { + "name": "serviceOptionsAndVariantsId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the `serviceOptionsAndVariants` object to retrieve.", + "required": true + } + ], + "requiredFields": [ + "serviceOptionsAndVariantsId" + ], + "ret": { + "type": [ + { + "complexType": { + "nativeType": "Promise", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.ServiceOptionsAndVariants" + } + ] + } + } + ], + "doc": "Retrieved `serviceOptionsAndVariants` object.\n" + }, + "docs": { + "summary": "Retrieves a `serviceOptionsAndVariants` object by `service_options_and_variants_id`.", + "description": [], + "examples": [ + { + "title": "getServiceOptionsAndVariants example", + "body": [ + "import { serviceOptionsAndVariants } from 'wix-bookings.v2';", + " ", + " async function getServiceOptionsAndVariants(serviceOptionsAndVariantsId) {", + " try {", + " const result = await serviceOptionsAndVariants.getServiceOptionsAndVariants(serviceOptionsAndVariantsId);", + "", + " return result;", + " } catch (error) {", + " console.error(error);", + " // Handle the error", + " }", + " }", + " " + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "getServiceOptionsAndVariantsByServiceId", + "params": [ + { + "name": "serviceId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the service to retrieve options and variants for.", + "required": true + } + ], + "requiredFields": [ + "serviceId" + ], + "ret": { + "type": [ + { + "complexType": { + "nativeType": "Promise", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.GetServiceOptionsAndVariantsByServiceIdResponse" + } + ] + } + } + ], + "doc": null + }, + "docs": { + "summary": "Retrieves a service's options and variants by `service_id`.", + "description": [], + "examples": [ + { + "title": "getServiceOptionsAndVariantsByServiceId example", + "body": [ + "import { serviceOptionsAndVariants } from 'wix-bookings.v2';", + " ", + " async function getServiceOptionsAndVariantsByServiceId(serviceId) {", + " try {", + " const result = await serviceOptionsAndVariants.getServiceOptionsAndVariantsByServiceId(serviceId);", + "", + " return result;", + " } catch (error) {", + " console.error(error);", + " // Handle the error", + " }", + " }", + " " + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "queryServiceOptionsAndVariants", + "params": [], + "requiredFields": [], + "ret": { + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.ServiceOptionsAndVariantsListQueryBuilder" + } + ], + "doc": null + }, + "docs": { + "summary": "Retrieves a list of `serviceOptionsAndVariants`, given the provided paging, filtering, and sorting.", + "description": [ + "", + "Query Service Options And Variants runs with these defaults, which you can override:", + "", + "- `id` is sorted in `ASC` order", + "- `cursorPaging.limit` is `100`", + "", + "For a detailed list of supported filtering operations see", + "[supported filters](https://dev.wix.com/api/rest/wix-bookings/service-variants/supported-filters).", + "", + "To learn about working with _Query_ endpoints, see", + "[API Query Language](https://dev.wix.com/api/rest/getting-started/api-query-language),", + "[Sorting and Paging](https://dev.wix.com/api/rest/getting-started/pagination),", + "and [Field Projection](https://dev.wix.com/api/rest/getting-started/field-projection).", + "|PROPERTY\t|SUPPORTED FILTERS & SORTING\t", + "|:---:|:---:|", + "|`id`|[`eq()`](wix-bookings.v2.ServiceOptionsAndVariantsList.ServiceOptionsAndVariantssQueryBuilder#eq),[`in()`](wix-bookings.v2.ServiceOptionsAndVariantsList.ServiceOptionsAndVariantssQueryBuilder#in),[`ne()`](wix-bookings.v2.ServiceOptionsAndVariantsList.ServiceOptionsAndVariantssQueryBuilder#ne)|", + "|`serviceId`|[`eq()`](wix-bookings.v2.ServiceOptionsAndVariantsList.ServiceOptionsAndVariantssQueryBuilder#eq),[`in()`](wix-bookings.v2.ServiceOptionsAndVariantsList.ServiceOptionsAndVariantssQueryBuilder#in),[`ne()`](wix-bookings.v2.ServiceOptionsAndVariantsList.ServiceOptionsAndVariantssQueryBuilder#ne)|", + "|`options.values`|[`exists()`](wix-bookings.v2.ServiceOptionsAndVariantsList.ServiceOptionsAndVariantssQueryBuilder#exists)|", + "|`options.values.id`|[`eq()`](wix-bookings.v2.ServiceOptionsAndVariantsList.ServiceOptionsAndVariantssQueryBuilder#eq),[`in()`](wix-bookings.v2.ServiceOptionsAndVariantsList.ServiceOptionsAndVariantssQueryBuilder#in),[`ne()`](wix-bookings.v2.ServiceOptionsAndVariantsList.ServiceOptionsAndVariantssQueryBuilder#ne)|", + "|`variants.values`|[`exists()`](wix-bookings.v2.ServiceOptionsAndVariantsList.ServiceOptionsAndVariantssQueryBuilder#exists)|", + "|`variants.values.choices.optionId`|[`hasSome()`](wix-bookings.v2.ServiceOptionsAndVariantsList.ServiceOptionsAndVariantssQueryBuilder#hasSome)|", + "|`variants.values.price`|[`hasSome()`](wix-bookings.v2.ServiceOptionsAndVariantsList.ServiceOptionsAndVariantssQueryBuilder#hasSome)|" + ], + "examples": [ + { + "title": "queryServiceOptionsAndVariants example", + "body": [ + "import { serviceOptionsAndVariants } from 'wix-bookings.v2';", + " ", + " async function queryServiceOptionsAndVariants() {", + " const { items } = serviceOptionsAndVariants.queryServiceOptionsAndVariants().find();", + " }", + " " + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "updateServiceOptionsAndVariants", + "params": [ + { + "name": "_id", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the `serviceOptionsAndVariants` object.", + "required": true + }, + { + "name": "serviceOptionsAndVariants", + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.UpdateServiceOptionsAndVariants" + } + ], + "doc": "", + "required": true + }, + { + "name": "options", + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.UpdateServiceOptionsAndVariantsOptions" + } + ], + "doc": "", + "required": false + } + ], + "requiredFields": [ + "_id", + "serviceOptionsAndVariants", + "serviceOptionsAndVariants.revision" + ], + "ret": { + "type": [ + { + "complexType": { + "nativeType": "Promise", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.ServiceOptionsAndVariants" + } + ] + } + } + ], + "doc": "Updated `serviceOptionsAndVariants` object.\n" + }, + "docs": { + "summary": "Updates the specified fields of the `serviceOptionsAndVariants` object.", + "description": [ + "Currently, only a single option is supported per `serviceOptionsAndVariants` object.\n\nIf you want to update `variants`, you must pass the full list of supported variants.\n\nIf you want to update `options`, you must pass the full list of supported options.\n\nFor a list of error messages, see [Update Service Options and Variants Errors](https://dev.wix.com/api/rest/wix-bookings/service-options-and-variants/error-messages#service-options-and-variants_error-messages_update-service-options-and-variants-errors)." + ], + "examples": [ + { + "title": "updateServiceOptionsAndVariants example", + "body": [ + "import { serviceOptionsAndVariants } from 'wix-bookings.v2';", + " ", + " async function updateServiceOptionsAndVariants(id, serviceOptionsAndVariants, options) {", + " try {", + " const result = await serviceOptionsAndVariants.updateServiceOptionsAndVariants(id, serviceOptionsAndVariants, options);", + "", + " return result;", + " } catch (error) {", + " console.error(error);", + " // Handle the error", + " }", + " }", + " " + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + } + ], + "messages": [ + { + "name": "ActionEvent", + "members": [ + { + "name": "bodyAsJson", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Address", + "members": [ + { + "name": "addressLine", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Main address line, usually street and number, as free text." + }, + { + "name": "addressLine2", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Free text providing more detailed address info. Usually contains Apt, Suite, and Floor." + }, + { + "name": "city", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "City name." + }, + { + "name": "country", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Country code." + }, + { + "name": "countryFullname", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Country full name." + }, + { + "name": "formattedAddress", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "A string containing the full address of this location." + }, + { + "name": "geocode", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.AddressLocation" + } + ], + "doc": "Coordinates of the physical address." + }, + { + "name": "hint", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Free text to help find the address." + }, + { + "name": "postalCode", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Zip/postal code." + }, + { + "name": "streetAddress", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.StreetAddress" + } + ], + "doc": "Street name, number and apartment number." + }, + { + "name": "subdivision", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Subdivision. Usually state, region, prefecture or province code, according to [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2)." + }, + { + "name": "subdivisions", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.Subdivision" + } + ] + } + } + ], + "doc": "Multi-level subdivisions from top to bottom." + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfAddressStreetOneOf", + "members": [ + "addressLine", + "streetAddress" + ] + } + ] + }, + "docs": { + "description": [ + "Physical address" + ] + } + }, + { + "name": "AddressHint", + "members": [ + { + "name": "placement", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Where the extra text should be displayed." + }, + { + "name": "text", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Extra text displayed next to, or instead of, the actual address." + } + ], + "docs": { + "description": [ + "Extra information on displayed addresses.\nThis is used for display purposes. Used to add additional data about the address, such as \"In the passage\".\nFree text. In addition the user can state where he wants that additional description - before, after, or instead\nthe address string." + ] + } + }, + { + "name": "AddressLocation", + "members": [ + { + "name": "latitude", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Address latitude." + }, + { + "name": "longitude", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Address longitude." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "AddressStreetOneOf", + "members": [ + { + "name": "addressLine", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Main address line, usually street and number, as free text." + }, + { + "name": "streetAddress", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.StreetAddress" + } + ], + "doc": "Street name, number and apartment number." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Availability", + "members": [ + { + "name": "constraints", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.AvailabilityConstraints" + } + ], + "doc": "Constraints for calculating the schedule's availability." + }, + { + "name": "end", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "Date and time the schedule stops being available for booking. No value indicates no end time." + }, + { + "name": "linkedSchedules", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.LinkedSchedule" + } + ] + } + } + ], + "doc": "Other schedules that impact the availability calculation. Relevant only when there are availability constraints." + }, + { + "name": "start", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "Date and time the schedule starts to be available for booking." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "AvailabilityConstraints", + "members": [ + { + "name": "slotDurations", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "number" + } + ] + } + } + ], + "doc": "A list of duration options for slots, in minutes. Minimum value for a duration is 1.\nThe availability calculation generates slots with these durations, where there is no conflict with existing sessions or other availability constraints." + }, + { + "name": "slotsSplitInterval", + "readOnly": true, + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.SplitInterval" + } + ], + "doc": "An object defining the time between available slots' start times. For example, a slot with slots_split_interval=5 can start every 5 minutes. The default is the slot duration." + }, + { + "name": "splitInterval", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Specify how to split the slots in intervals of minutes.\nThis value indicates the time between available slots' start time. e.g., from 5 minute slots (3:00, 3:05, 3:15) and 1 hour slots (3:00, 4:00, 5:00).\nOptional. The default is the first duration in slot_durations field.\nDeprecated. Use the `split_slots_interval.value_in_minutes`." + }, + { + "name": "timeBetweenSlots", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "The number of minutes between the `end` of one slot, and the `start` of the next.\nMinimum value is 0, maximum value is 120." + } + ], + "docs": { + "description": [ + "Describes how to calculate the specific slots that are available for booking." + ] + } + }, + { + "name": "AvailabilityPolicy", + "members": [ + { + "name": "splitInterval", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.SplitInterval" + } + ], + "doc": "Specify how to split the schedule slots in intervals of minutes." + } + ], + "docs": { + "description": [ + "Availability policy applied to all site schedules." + ] + } + }, + { + "name": "AvailabilityPolicyUpdated", + "members": [ + { + "name": "availabilityPolicy", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.AvailabilityPolicy" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "BookingPolicy", + "members": [ + { + "name": "bookUpToXMinutesBefore", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Minimum number of minutes before the start of a session that a booking can be made. For a schedule, this is relative to the start time of the next session, excluding past sessions. Default value is taken form BusinessServicesPolicy." + }, + { + "name": "bookingsApprovalPolicy", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.BookingsApprovalPolicy" + } + ], + "doc": "Bookings approval policy for the service. Empty by default." + }, + { + "name": "cancelRescheduleUpToXMinutesBefore", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Minimum number of minutes before the start of a session that a booking can be canceled or rescheduled. Default value is taken form BusinessServicesPolicy." + }, + { + "name": "cancellationPolicy", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "User defined cancellation policy message." + }, + { + "name": "futureBookingsPolicy", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.FutureBookingPolicy" + } + ], + "doc": "How far in advance a booking can be made. Default value is taken form BusinessServicesPolicy." + }, + { + "name": "isBookOnlineAllowed", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether online booking is available. Defaults to true." + }, + { + "name": "isCancelAllowed", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether bookings for the service can be canceled. Defaults to true." + }, + { + "name": "isRescheduleAllowed", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether bookings for the service can be rescheduled. Defaults to true." + }, + { + "name": "maxParticipantsPerBooking", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Maximum number of participants for a single booking. Defaults to 1." + }, + { + "name": "overrideBusinessPolicyFields", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "A list of booking policy field names of fields that override the respective values of the default business booking policy.\nCurrently only 'service.policy.bookUpToXMinutesBefore' field is supported" + }, + { + "name": "waitingListPolicy", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.WaitingListPolicy" + } + ], + "doc": "Waitlist policy for the service. Default value is taken form BusinessServicesPolicy." + } + ], + "docs": { + "description": [ + "A set of rules defining the policies for booking the service for visitors and members." + ] + } + }, + { + "name": "BookingsApprovalPolicy", + "members": [ + { + "name": "isBusinessApprovalRequired", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether bookings to the service require approval." + }, + { + "name": "requestsAffectsAvailability", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the booking requests affect the session or slot availability. For example, 3 booking requests for a 10-person session will cause the session to have 7 available spots, before the requests are approved." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "BusinessSchedule", + "members": [ + { + "name": "periods", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.TimePeriod" + } + ] + } + } + ], + "doc": "Weekly recurring time periods when the business is regularly open or the service is available. Limited to 100 time periods." + }, + { + "name": "specialHourPeriod", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.SpecialHourPeriod" + } + ] + } + } + ], + "doc": "Exceptions to the business's regular hours. The business can be open or closed during the exception." + } + ], + "docs": { + "description": [ + "Business schedule. Regular and exceptional time periods when the business is open or the service is available." + ] + } + }, + { + "name": "BusinessServicesPolicy", + "members": [ + { + "name": "bookUpToXMinutesBefore", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Minimum amount of time to make a booking before the start of the booked item. For sessions, this is relative to the start time of the session. For schedules, this is relative to the start time of the first session, excluding past sessions. Defaults to 0." + }, + { + "name": "cancelRescheduleUpToXMinutesBefore", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Minimum time that a booking can be canceled or rescheduled before the session starts. Defaults to 0." + }, + { + "name": "cancellationPolicy", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "User defined cancellation policy message." + }, + { + "name": "futureBookingsPolicy", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.FutureBookingPolicy" + } + ], + "doc": "An object specifying how far in advance a booking can be made." + }, + { + "name": "waitingListPolicy", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.WaitingListPolicy" + } + ], + "doc": "Waitlist policy for the service. Empty by default." + } + ], + "docs": { + "description": [ + "Defines the Bookings Policy applied to the business's services. The policy can be overridden for a service when setting the `Service.BookingsPolicy` property.\nUnless overridden, each service inherits the settings in the business policy." + ] + } + }, + { + "name": "CalendarConference", + "members": [ + { + "name": "_id", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Wix Calendar conference ID." + }, + { + "name": "accountOwnerId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the account owner in the video conferencing service." + }, + { + "name": "conferenceType", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Conference type.\n" + }, + { + "name": "description", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Conference description." + }, + { + "name": "externalId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Conference meeting ID in the provider's conferencing system." + }, + { + "name": "guestUrl", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "URL used by a guest to join the conference." + }, + { + "name": "hostUrl", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "URL used by the host to start the conference." + }, + { + "name": "password", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Password to join the conference." + }, + { + "name": "providerId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Conference provider ID." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "CalendarDateTime", + "members": [ + { + "name": "localDateTime", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.LocalDateTime" + } + ], + "doc": "An object containing the local date and time for the business's time zone." + }, + { + "name": "timeZone", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The time zone. Optional. Derived from the schedule's time zone.\nIn case this field is associated with recurring session, this field is empty." + }, + { + "name": "timestamp", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "UTC date-time in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601#Coordinated_Universal_Time_(UTC)) format. If a time zone offset is specified, the time is converted to UTC. For example, if you specify `new Date('2021-01-06T16:00:00.000-07:00')`, the stored value will be `\"2021-01-06T23:00:00.000Z\"`.\nRequired if `localDateTime` is not specified.\nIf `localDateTime` is specified, `timestamp` is calculated as `localDateTime`, using the business's time zone." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Categories", + "members": [ + { + "name": "primary", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Primary site category." + }, + { + "name": "secondary", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Secondary site category." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ChangeContext", + "members": [ + { + "name": "propertiesChange", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.PropertiesChange" + } + ], + "doc": "Properties were updated." + }, + { + "name": "siteCloned", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.SiteCloned" + } + ], + "doc": "Properties were cloned on site cloning." + }, + { + "name": "siteCreated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.SiteCreated" + } + ], + "doc": "Default properties were created on site creation." + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfChangeContextPayloadOneOf", + "members": [ + "propertiesChange", + "siteCloned", + "siteCreated" + ] + } + ] + }, + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ChangeContextPayloadOneOf", + "members": [ + { + "name": "propertiesChange", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.PropertiesChange" + } + ], + "doc": "Properties were updated." + }, + { + "name": "siteCloned", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.SiteCloned" + } + ], + "doc": "Properties were cloned on site cloning." + }, + { + "name": "siteCreated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.SiteCreated" + } + ], + "doc": "Default properties were created on site creation." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "CloneServiceOptionsAndVariantsRequest", + "members": [ + { + "name": "cloneFromId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the `serviceOptionsAndVariants` object to clone." + }, + { + "name": "targetServiceId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the service that will be set for the cloned `serviceOptionsAndVariants`" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "CloneServiceOptionsAndVariantsResponse", + "members": [ + { + "name": "serviceOptionsAndVariants", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.ServiceOptionsAndVariants" + } + ], + "doc": "The cloned `serviceOptionsAndVariants` object." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ConferenceProvider", + "members": [ + { + "name": "providerId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Conferencing provider ID" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ConsentPolicy", + "members": [ + { + "name": "advertising", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the site uses cookies that collect information allowing better customization of the experience for a current visitor." + }, + { + "name": "analytics", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the site uses cookies that collect analytics about how the site is used (in order to improve it)." + }, + { + "name": "dataToThirdParty", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "CCPA compliance flag." + }, + { + "name": "essential", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the site uses cookies that are essential to site operation." + }, + { + "name": "functional", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the site uses cookies that affect site performance and other functional measurements." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "CreateServiceOptionsAndVariantsRequest", + "members": [ + { + "name": "serviceOptionsAndVariants", + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.ServiceOptionsAndVariants" + } + ], + "doc": "Service options and variants to create." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "CreateServiceOptionsAndVariantsResponse", + "members": [ + { + "name": "serviceOptionsAndVariants", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.ServiceOptionsAndVariants" + } + ], + "doc": "Information about the created service options and variants." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "CursorPaging", + "members": [ + { + "name": "cursor", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Pointer to the next or previous page in the list of results.\n\nYou can get the relevant cursor token\nfrom the `pagingMetadata` object in the previous call's response.\nNot relevant for the first request.\n" + }, + { + "name": "limit", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Number of items to load." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Cursors", + "members": [ + { + "name": "next", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Cursor pointing to next page in the list of results." + }, + { + "name": "prev", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Cursor pointing to previous page in the list of results." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "CustomServiceOption", + "members": [ + { + "name": "choices", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Available choices for the service option. For example, `child`, `student`,\n`adult`, and `senior` for a service option named `Age group`. Each value must\nbe unique. The value's case is ignored, meaning `Child` and `child` are\nconsidered to be identical. Currently, only a single choice is supported\nbecause a service can have only a single option.\n\nMax: 1 choice\n" + }, + { + "name": "name", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Name of the service option. For example, `Age group`, `Location`, `Equipment`,\nor `Time`." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "DeleteMetadata", + "members": [ + { + "name": "participantNotification", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.ParticipantNotification" + } + ], + "doc": "" + }, + { + "name": "preserveFutureSessionsWithParticipants", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "DeleteServiceOptionsAndVariantsOptions", + "members": [ + { + "name": "revision", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Revision of the `serviceOptionsAndVariants` object to delete." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "DeleteServiceOptionsAndVariantsRequest", + "members": [ + { + "name": "revision", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Revision of the `serviceOptionsAndVariants` object to delete." + }, + { + "name": "serviceOptionsAndVariantsId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the `serviceOptionsAndVariants` object to delete." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "DeleteServiceOptionsAndVariantsResponse", + "members": [], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "DomainEvent", + "members": [ + { + "name": "_id", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "random GUID so clients can tell if event was already handled" + }, + { + "name": "actionEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.ActionEvent" + } + ], + "doc": "" + }, + { + "name": "createdEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.EntityCreatedEvent" + } + ], + "doc": "" + }, + { + "name": "deletedEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.EntityDeletedEvent" + } + ], + "doc": "" + }, + { + "name": "entityEventSequence", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "A sequence number defining the order of updates to the underlying entity.\nFor example, given that some entity was updated at 16:00 and than again at 16:01,\nit is guaranteed that the sequence number of the second update is strictly higher than the first.\nAs the consumer, you can use this value to ensure that you handle messages in the correct order.\nTo do so, you will need to persist this number on your end, and compare the sequence number from the\nmessage against the one you have stored. Given that the stored number is higher, you should ignore the message." + }, + { + "name": "entityFqdn", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Assumes actions are also always typed to an entity_type\nExample: wix.stores.catalog.product, wix.bookings.session, wix.payments.transaction" + }, + { + "name": "entityId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Assuming that all messages including Actions have id\nExample: The id of the specific order, the id of a specific campaign" + }, + { + "name": "eventTime", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "The time of the event. Useful if there was a delay in dispatching" + }, + { + "name": "extendedFieldsUpdatedEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.ExtendedFieldsUpdatedEvent" + } + ], + "doc": "" + }, + { + "name": "originatedFrom", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "If present, indicates the action that triggered the event." + }, + { + "name": "slug", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "This is top level to ease client code dispatching of messages (switch on entity_fqdn+slug)\nThis is although the created/updated/deleted notion is duplication of the oneof types\nExample: created/updated/deleted/started/completed/email_opened" + }, + { + "name": "triggeredByAnonymizeRequest", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "A field that should be set if this event was triggered by an anonymize request.\nFor example you must set it to true when sending an event as a result of a GDPR right to be forgotten request.\nNOTE: This field is not relevant for `EntityCreatedEvent` but is located here for better ergonomics of consumers." + }, + { + "name": "updatedEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.EntityUpdatedEvent" + } + ], + "doc": "" + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfDomainEventBodyOneOf", + "members": [ + "actionEvent", + "createdEvent", + "deletedEvent", + "extendedFieldsUpdatedEvent", + "updatedEvent" + ] + } + ] + }, + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "DomainEventBodyOneOf", + "members": [ + { + "name": "actionEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.ActionEvent" + } + ], + "doc": "" + }, + { + "name": "createdEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.EntityCreatedEvent" + } + ], + "doc": "" + }, + { + "name": "deletedEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.EntityDeletedEvent" + } + ], + "doc": "" + }, + { + "name": "extendedFieldsUpdatedEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.ExtendedFieldsUpdatedEvent" + } + ], + "doc": "" + }, + { + "name": "updatedEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.EntityUpdatedEvent" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Empty", + "members": [], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "EntityCreatedEvent", + "members": [ + { + "name": "entityAsJson", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "EntityDeletedEvent", + "members": [], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "EntityUpdatedEvent", + "members": [ + { + "name": "currentEntityAsJson", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Since platformized APIs only expose PATCH and not PUT we can't assume that the fields sent from the client are the actual diff.\nThis means that to generate a list of changed fields (as opposed to sent fields) one needs to traverse both objects.\nWe don't want to impose this on all developers and so we leave this traversal to the notification recipients which need it." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ExtendedFieldsUpdatedEvent", + "members": [ + { + "name": "currentEntityAsJson", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ExternalCalendarInfo", + "members": [ + { + "name": "calendarType", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The external calendar type (e.g. Google Calendar, iCal, etc)." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ExternalCalendarOverrides", + "members": [ + { + "name": "description", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Synced description of the external calendar event." + }, + { + "name": "title", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Synced title of the external calendar event." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Frequency", + "members": [ + { + "name": "repetition", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "The frequency of the recurrence in weeks. i.e. when this value is 4, the interval occurs every 4 weeks. Optional. The default is 1. minimum: 1, maximum: 52." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "FutureBookingPolicy", + "members": [ + { + "name": "limitXMinutesToTheFuture", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "How far in advance, in minutes, a session can be booked. Defaults to 10,080 minutes (3 days)." + }, + { + "name": "shouldLimit", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether a limit is imposed on advance bookings." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "GeoCoordinates", + "members": [ + { + "name": "latitude", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Latitude of the location. Must be between -90 and 90." + }, + { + "name": "longitude", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Longitude of the location. Must be between -180 and 180." + } + ], + "docs": { + "description": [ + "Geocoordinates for a particular address." + ] + } + }, + { + "name": "GetServiceOptionsAndVariantsByServiceIdRequest", + "members": [ + { + "name": "serviceId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the service to retrieve options and variants for." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "GetServiceOptionsAndVariantsByServiceIdResponse", + "members": [ + { + "name": "serviceVariants", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.ServiceOptionsAndVariants" + } + ], + "doc": "Retrieved `serviceOptionsAndVariants` object." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "GetServiceOptionsAndVariantsRequest", + "members": [ + { + "name": "serviceOptionsAndVariantsId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the `serviceOptionsAndVariants` object to retrieve." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "GetServiceOptionsAndVariantsResponse", + "members": [ + { + "name": "serviceOptionsAndVariants", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.ServiceOptionsAndVariants" + } + ], + "doc": "Retrieved `serviceOptionsAndVariants` object." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Interval", + "members": [ + { + "name": "daysOfWeek", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The day the interval accrue. Optional. The default is the day of the recurring interval's start time." + }, + { + "name": "duration", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "The duration of the interval in minutes. Required. Part of the session end time calculation. minimum: 1, maximum: 86400." + }, + { + "name": "hourOfDay", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "The hour of the day the interval accrue. must be consistent with the Interval start time. Options. The default is 0. minimum: 0, maximum: 23." + }, + { + "name": "minuteOfHour", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "The minutes of hour the interval accrue. must be consistent with the Interval end time. Options. The default is 0. minimum: 0, maximum: 59." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "IntervalSplit", + "members": [ + { + "name": "intervals", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.RecurringInterval" + } + ] + } + } + ], + "doc": "" + }, + { + "name": "newScheduleVersion", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "" + }, + { + "name": "oldScheduleVersion", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "" + }, + { + "name": "scheduleId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Keyword", + "members": [ + { + "name": "isMain", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the keyword is the main focus keyword." + }, + { + "name": "term", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Keyword value." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "LinkedSchedule", + "members": [ + { + "name": "scheduleId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Schedule ID." + }, + { + "name": "scheduleOwnerId", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Owner ID, of the linked schedule." + }, + { + "name": "transparency", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Sets this schedule's availability for the duration of the linked schedule's sessions. Default is `\"BUSY\"`.\n\nIf set to `\"BUSY\"`, this schedule cannot have any available slots during the linked schedule's sessions.\nIf set to `\"FREE\"`, this schedule can have available slots during the linked schedule's sessions.\n\n\n\n" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "LocalDateTime", + "members": [ + { + "name": "dayOfMonth", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Day of the month, from 1-31." + }, + { + "name": "hourOfDay", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Hour of the day in 24-hour format, from 0-23." + }, + { + "name": "minutesOfHour", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Minute, from 0-59." + }, + { + "name": "monthOfYear", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Month number, from 1-12." + }, + { + "name": "year", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Year. 4-digit format." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Locale", + "members": [ + { + "name": "country", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Two-letter country code in [ISO-3166 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements) format." + }, + { + "name": "languageCode", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Two-letter language code in [ISO 639-1 alpha-2](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) format." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Location", + "members": [ + { + "name": "address", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Free text address used when locationType is `OWNER_CUSTOM`." + }, + { + "name": "businessLocation", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.LocationsLocation" + } + ], + "doc": "Valid when `locationType` is `OWNER_BUSINESS`. Defaults to the business's location.\n\n`businessSchedule` is not supported by Wix Bookings\n" + }, + { + "name": "customAddress", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.Address" + } + ], + "doc": "Custom address, used when locationType is `\"OWNER_CUSTOM\"`. Might be used when locationType is `\"CUSTOM\"` in case the owner sets a custom address for the session which is different from the default." + }, + { + "name": "locationType", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Location type.\nOne of:\n- `\"OWNER_BUSINESS\"` The business address as set in the site’s general settings.\n- `\"OWNER_CUSTOM\"` The address as set when creating the service.\n- `\"CUSTOM\"` The address set for the individual session." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "LocationsAddress", + "members": [ + { + "name": "city", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "City name." + }, + { + "name": "country", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "2-letter country code in an [ISO-3166 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format." + }, + { + "name": "postalCode", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Postal or zip code." + }, + { + "name": "streetAddress", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.LocationsStreetAddress" + } + ], + "doc": "Street address. Includes street name, number, and apartment number in separate fields." + }, + { + "name": "subdivision", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Code for a subdivision (such as state, prefecture, or province) in [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2) format." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "LocationsAddressLocation", + "members": [ + { + "name": "latitude", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Latitude of the location. Must be between -90 and 90." + }, + { + "name": "longitude", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Longitude of the location. Must be between -180 and 180." + } + ], + "docs": { + "description": [ + "Address Geolocation" + ] + } + }, + { + "name": "LocationsLocation", + "members": [ + { + "name": "_id", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Location ID." + }, + { + "name": "address", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.LocationsAddress" + } + ], + "doc": "Address." + }, + { + "name": "archived", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the location is archived. Archived locations can't be updated.\n__Note:__ [Archiving a location](https://dev.wix.com/api/rest/business-info/locations/archive-location)\ndoesn't affect its `status`." + }, + { + "name": "businessSchedule", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.BusinessSchedule" + } + ], + "doc": "Business schedule. Array of weekly recurring time periods when the location is open for business. Limited to 100 time periods.\n\n__Note:__ Not supported by Wix Bookings.\n" + }, + { + "name": "default", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether this is the default location. There can only be one default location per site. The default location can't be archived." + }, + { + "name": "description", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Location description." + }, + { + "name": "email", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Email address." + }, + { + "name": "fax", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Fax number." + }, + { + "name": "locationType", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Location type. **Note:** Currently not supported." + }, + { + "name": "name", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Location name." + }, + { + "name": "phone", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Phone number." + }, + { + "name": "revision", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Revision number, which increments by 1 each time the location is updated.\nTo prevent conflicting changes, the existing revision must be used when updating a location." + }, + { + "name": "status", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Location status. Defaults to `ACTIVE`.\n__Note:__ [Archiving a location](https://dev.wix.com/api/rest/business-info/locations/archive-location)\ndoesn't affect the location's status. `INACTIVE` is currently not supported." + }, + { + "name": "timeZone", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Timezone in `America/New_York` format." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "LocationsStreetAddress", + "members": [ + { + "name": "apt", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Apartment number." + }, + { + "name": "name", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Street name." + }, + { + "name": "number", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Street number." + } + ], + "docs": { + "description": [ + "Street address. Includes street name, number, and apartment number in separate fields." + ] + } + }, + { + "name": "Media", + "members": [ + { + "name": "coverMedia", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.MediaItem" + } + ], + "doc": "Cover image associated with the service." + }, + { + "name": "items", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.MediaItem" + } + ] + } + } + ], + "doc": "Images associated with the service." + }, + { + "name": "mainMedia", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.MediaItem" + } + ], + "doc": "Primary image associated with the service." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "MediaItem", + "members": [ + { + "name": "image", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Image metadata." + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfMediaItemItemOneOf", + "members": [ + "image" + ] + } + ] + }, + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "MediaItemItemOneOf", + "members": [ + { + "name": "image", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Image metadata." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "MigrationData", + "members": [ + { + "name": "businessId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + }, + { + "name": "staffs", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.StaffData" + } + ] + } + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "MigrationEvent", + "members": [ + { + "name": "migrationData", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.MigrationData" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Money", + "members": [ + { + "name": "currency", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Currency code. Must be valid ISO 4217 currency code (e.g., USD)." + }, + { + "name": "formattedValue", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Monetary amount. Decimal string in local format (e.g., 1 000,30). Optionally, a single (-), to indicate that the amount is negative." + }, + { + "name": "value", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "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." + } + ], + "docs": { + "description": [ + "Money.\nDefault format to use. Sufficiently compliant with majority of standards: w3c, ISO 4217, ISO 20022, ISO 8583:2003." + ] + } + }, + { + "name": "Multilingual", + "members": [ + { + "name": "autoRedirect", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether to redirect to user language." + }, + { + "name": "supportedLanguages", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.SupportedLanguage" + } + ] + } + } + ], + "doc": "Supported languages list." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "MultipleSessionsCreated", + "members": [ + { + "name": "schedulesWithSessions", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.ScheduleWithSessions" + } + ] + } + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Paging", + "members": [ + { + "name": "limit", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Number of items to load." + }, + { + "name": "offset", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Number of items to skip in the current sort order." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "PagingMetadataV2", + "members": [ + { + "name": "count", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Number of items returned in the response." + }, + { + "name": "cursors", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.Cursors" + } + ], + "doc": "Cursors to navigate through the result pages using `next` and `prev`. Returned if cursor paging is used." + }, + { + "name": "offset", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Offset that was requested." + }, + { + "name": "tooManyToCount", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Flag that indicates the server failed to calculate the `total` field." + }, + { + "name": "total", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Total number of items that match the query. Returned if offset paging is used and the `tooManyToCount` flag is not set." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Participant", + "members": [ + { + "name": "_id", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Participant ID. Currently represents the booking.id." + }, + { + "name": "approvalStatus", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Approval status for the participant.\n\n" + }, + { + "name": "contactId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Contact ID." + }, + { + "name": "email", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Participant's email address." + }, + { + "name": "inherited", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the participant was inherited from the schedule, as opposed to being booked directly to the session." + }, + { + "name": "name", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Participant's name." + }, + { + "name": "partySize", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Group or party size. The number of people attending. Defaults to 0. Maximum is 250." + }, + { + "name": "phone", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Participant's phone number." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ParticipantNotification", + "members": [ + { + "name": "message", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Custom message to send to the participants about the changes to the booking." + }, + { + "name": "notifyParticipants", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether to send the message about the changes to the customer.\n\nDefault: `false`\n" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "PaymentOptions", + "members": [ + { + "name": "custom", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether a booking made for the service can be paid in a customized way, defined by the API." + }, + { + "name": "wixPaidPlan", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether a booking made for the service can be paid using Wix Pricing Plans." + }, + { + "name": "wixPayInPerson", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether a booking made for the service can be paid in person." + }, + { + "name": "wixPayOnline", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether a booking made for the service can be paid online through Wix." + } + ], + "docs": { + "description": [ + "Payment options for the service. Multiple payment options can be enabled. For example:\nFor a service to be paid only online using WiX, then set wix_pay_online=true and the rest should be set to false.\nFor a service to accept payment online via Wix or in person, set the wix_pay_online=true & wix_pay_in_person=true." + ] + } + }, + { + "name": "Price", + "members": [ + { + "name": "amount", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Required payment amount." + }, + { + "name": "currency", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Currency in which the amount is quoted." + }, + { + "name": "downPayAmount", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Amount of a down payment or deposit as part of the transaction." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Properties", + "members": [ + { + "name": "address", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.V4Address" + } + ], + "doc": "Address." + }, + { + "name": "businessConfig", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Supported values: `FITNESS SERVICE`, `RESTAURANT`, `BLOG`, `STORE`, `EVENT`, `UNKNOWN`.\n\nSite business type.\n" + }, + { + "name": "businessName", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Business name." + }, + { + "name": "businessSchedule", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.BusinessSchedule" + } + ], + "doc": "Business schedule. Regular and exceptional time periods when the business is open or the service is available.\n\n__Note:__ Not supported by Wix Bookings.\n" + }, + { + "name": "categories", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.Categories" + } + ], + "doc": "Site categories." + }, + { + "name": "consentPolicy", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.ConsentPolicy" + } + ], + "doc": "Cookie policy the site owner defined for their site (before the users interacts with/limits it)." + }, + { + "name": "description", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Site description." + }, + { + "name": "email", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Email address." + }, + { + "name": "fax", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Fax number." + }, + { + "name": "language", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Site language.\n\nTwo-letter language code in [ISO 639-1 alpha-2](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) format.\n" + }, + { + "name": "locale", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.Locale" + } + ], + "doc": "Site locale." + }, + { + "name": "logo", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Path to the site's logo in Wix Media (without Wix Media base URL)." + }, + { + "name": "multilingual", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.Multilingual" + } + ], + "doc": "Supported languages of a site and the primary language." + }, + { + "name": "paymentCurrency", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Site currency format used to bill customers.\n\nThree-letter currency code in [ISO-4217 alphabetic](https://en.wikipedia.org/wiki/ISO_4217#Active_codes) format.\n" + }, + { + "name": "phone", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Phone number." + }, + { + "name": "siteDisplayName", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Site display name." + }, + { + "name": "timeZone", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Timezone in `America/New_York` format." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "PropertiesChange", + "members": [], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "QueryServiceOptionsAndVariantsRequest", + "members": [ + { + "name": "query", + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.QueryV2" + } + ], + "doc": "Information about filters, paging, and returned fields." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "QueryServiceOptionsAndVariantsResponse", + "members": [ + { + "name": "pagingMetadata", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.PagingMetadataV2" + } + ], + "doc": "Paging metadata." + }, + { + "name": "serviceOptionsAndVariantsList", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.ServiceOptionsAndVariants" + } + ] + } + } + ], + "doc": "Retrieved `serviceOptionsAndVariants` objects." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "QueryV2", + "members": [ + { + "name": "cursorPaging", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.CursorPaging" + } + ], + "doc": "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`." + }, + { + "name": "fields", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Array of projected fields. A list of specific field names to return. If `fieldsets` are also specified, the union of `fieldsets` and `fields` is returned." + }, + { + "name": "fieldsets", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Array of named, predefined sets of projected fields. A array of predefined named sets of fields to be returned. Specifying multiple `fieldsets` will return the union of fields from all sets. If `fields` are also specified, the union of `fieldsets` and `fields` is returned." + }, + { + "name": "filter", + "optional": true, + "type": [ + { + "nativeType": "Object" + } + ], + "doc": "Filter object in the following format:\n`\"filter\" : {\n\"fieldName1\": \"value1\",\n\"fieldName2\":{\"$operator\":\"value2\"}\n}`\nExample of operators: `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`, `$in`, `$hasSome`, `$hasAll`, `$startsWith`, `$contains`" + }, + { + "name": "paging", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.Paging" + } + ], + "doc": "Paging options to limit and skip the number of items." + }, + { + "name": "sort", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.Sorting" + } + ] + } + } + ], + "doc": "Sort object in the following format:\n`[{\"fieldName\":\"sortField1\",\"order\":\"ASC\"},{\"fieldName\":\"sortField2\",\"order\":\"DESC\"}]`" + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfQueryV2PagingMethodOneOf", + "members": [ + "cursorPaging", + "paging" + ] + } + ] + }, + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "QueryV2PagingMethodOneOf", + "members": [ + { + "name": "cursorPaging", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.CursorPaging" + } + ], + "doc": "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`." + }, + { + "name": "paging", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.Paging" + } + ], + "doc": "Paging options to limit and skip the number of items." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Rate", + "members": [ + { + "name": "labeledPriceOptions", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Record", + "typeParams": [ + { + "nativeType": "string" + }, + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.Price" + } + ] + } + } + ], + "doc": "Mapping between a named price option, for example, adult or child prices, and the price, currency, and down payment amount.\nWhen present in an update request, the `default_varied_price` is ignored to support backward compatibility." + }, + { + "name": "priceText", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Textual price information used when **Price Per Session** is set to **Custom Price** in the app's service details page.\nWhen present in an update request, the `default_varied_price` is ignored to support backward compatibility." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "RecurringInterval", + "members": [ + { + "name": "_id", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The recurring interval identifier." + }, + { + "name": "affectedSchedules", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.LinkedSchedule" + } + ] + } + } + ], + "doc": "Specifies the list of linked schedules and the way this link affects the corresponding schedules' availability. Can be calculated from the schedule or overridden on the recurring interval." + }, + { + "name": "end", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "The end time of the recurring interval. Optional. Empty value indicates that there is no end time." + }, + { + "name": "frequency", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.Frequency" + } + ], + "doc": "The frequency of the interval. Optional. The default is frequency with the default repetition." + }, + { + "name": "interval", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.Interval" + } + ], + "doc": "The interval rules. The day, hour and minutes the interval is recurring." + }, + { + "name": "intervalType", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The type of recurring interval.\n" + }, + { + "name": "start", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "The start time of the recurring interval. Required." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "RecurringSessionSplit", + "members": [ + { + "name": "newScheduleVersion", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "" + }, + { + "name": "oldScheduleVersion", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "" + }, + { + "name": "recurringSessions", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.Session" + } + ] + } + } + ], + "doc": "" + }, + { + "name": "scheduleId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "RecurringSessionsUpdated", + "members": [ + { + "name": "newRecurringSessions", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.Session" + } + ] + } + } + ], + "doc": "New schedule's recurring session list." + }, + { + "name": "oldRecurringSessions", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.Session" + } + ] + } + } + ], + "doc": "Old schedule's recurring session list." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Resource", + "members": [ + { + "name": "_id", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Resource ID." + }, + { + "name": "description", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Resource description." + }, + { + "name": "email", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Resource email address." + }, + { + "name": "images", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Resource images." + }, + { + "name": "name", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Resource name." + }, + { + "name": "phone", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Resource phone number." + }, + { + "name": "scheduleIds", + "readOnly": true, + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "List of IDs of schedules owned by this resource." + }, + { + "name": "schedules", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.Schedule" + } + ] + } + } + ], + "doc": "Deprecated. Please use scheduleIds. List of the schedules owned by this resource. Min size 1." + }, + { + "name": "status", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Resource status.\n" + }, + { + "name": "tag", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Deprecated. Please use tags." + }, + { + "name": "tags", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Resource tags. Tags are used to identify, group, and filter the different types of resources. For example, 'staff' or 'room'." + }, + { + "name": "wixUserId", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Wix user ID, if the resource is associated with the Wix user.\nA staff member resource can be associated with a Wix user via assignment of a permissions role in the business manager.\n" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ResourceNotification", + "members": [ + { + "name": "event", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Event type." + }, + { + "name": "resource", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.Resource" + } + ], + "doc": "Updated resource entity.\n'resource.schedules' is deprecated and will not be returned. Please use 'resource.scheduleIds' instead." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Schedule", + "members": [ + { + "name": "_id", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Schedule ID." + }, + { + "name": "availability", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.Availability" + } + ], + "doc": "An object describing how to calculate the schedule's availability.\nAn empty object indicates that the schedule is not available for booking." + }, + { + "name": "calendarConference", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.CalendarConference" + } + ], + "doc": "A conference created for the schedule. This is used when a participant is added to a schedule." + }, + { + "name": "capacity", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Maximum number of participants that can be added to the schedule's sessions.\nMust be at most `1` for schedule whose availability is affected by another schedule. E.g, appointment schedules of the Wix Bookings app." + }, + { + "name": "conferenceProvider", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.ConferenceProvider" + } + ], + "doc": "Conferencing Provider. A schedule with a conferencing provider will use to provider information to create a conference on the provider's system when a session is created on the schedule or on one of its linked schedule's." + }, + { + "name": "created", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "Schedule creation date." + }, + { + "name": "externalCalendarOverrides", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.ExternalCalendarOverrides" + } + ], + "doc": "Title and description values to override session defaults when syncing to an external calendar.\nLearn more about [syncing calendars](https://support.wix.com/en/article/wix-bookings-important-information-about-syncing-google-calendars-with-wix-bookings)." + }, + { + "name": "inheritedFields", + "readOnly": true, + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Fields which were inherited from the Business Info page under Settings in the Dashboard." + }, + { + "name": "intervals", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.RecurringInterval" + } + ] + } + } + ], + "doc": "Specifies the intervals for the sessions calculation. Optional. e.g. when creating class service you can add\npattern for recurring intervals, these intervals can be returned as schedule's sessions or available slots if\nthere are no other availability calculation constraints and the capacity is bigger then the current total number of sessions' participants." + }, + { + "name": "location", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.Location" + } + ], + "doc": "Default location for the schedule's sessions." + }, + { + "name": "participants", + "readOnly": true, + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.Participant" + } + ] + } + } + ], + "doc": "Participants currently registered to sessions in this schedule.\nParticipants who are registered in the schedule are automatically registered to any session that is created for the schedule." + }, + { + "name": "rate", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.Rate" + } + ], + "doc": "Price options offered when booking this schedule's slots. Default is no rate." + }, + { + "name": "scheduleOwnerId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the schedule's owner entity. This may be a resource ID or a service ID." + }, + { + "name": "status", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Schedule status." + }, + { + "name": "tags", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Tags for grouping schedules. These tags are the default tags for the schedule's sessions.\nThe Wix Bookings app uses the following predefined tags to set schedule type: `\"INDIVIDUAL\"`, `\"GROUP\"`, and `\"COURSE\"`. Once the schedule type is set using these tags, you cannot update it. In addition to the app's tags, you can create and update your own tags." + }, + { + "name": "timeZone", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + }, + { + "name": "title", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Default title for the schedule's sessions. Maximum length: 6000 characters." + }, + { + "name": "totalNumberOfParticipants", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Number of participants registered to sessions in this schedule, calculated as the sum of the party sizes." + }, + { + "name": "updated", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "Schedule last update date." + }, + { + "name": "version", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Schedule version number, updated each time the schedule is updated." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ScheduleCancelled", + "members": [ + { + "name": "oldSchedule", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.Schedule" + } + ], + "doc": "" + }, + { + "name": "participantNotification", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.ParticipantNotification" + } + ], + "doc": "Whether to notify participants about the change and an optional custom message" + }, + { + "name": "schedule", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.Schedule" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ScheduleCreated", + "members": [ + { + "name": "schedule", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.Schedule" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ScheduleNotification", + "members": [ + { + "name": "availabilityPolicyUpdated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.AvailabilityPolicyUpdated" + } + ], + "doc": "" + }, + { + "name": "instanceId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + }, + { + "name": "intervalSplit", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.IntervalSplit" + } + ], + "doc": "" + }, + { + "name": "migrationEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.MigrationEvent" + } + ], + "doc": "supported only for schedule migration apis." + }, + { + "name": "multipleSessionsCreated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.MultipleSessionsCreated" + } + ], + "doc": "supported only for schedule migration apis." + }, + { + "name": "notifyParticipants", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether to notify participants about changed sessions. deprecated, use participant_notification" + }, + { + "name": "preserveFutureSessionsWithParticipants", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "" + }, + { + "name": "recurringSessionSplit", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.RecurringSessionSplit" + } + ], + "doc": "" + }, + { + "name": "scheduleCancelled", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.ScheduleCancelled" + } + ], + "doc": "" + }, + { + "name": "scheduleCreated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.ScheduleCreated" + } + ], + "doc": "" + }, + { + "name": "scheduleUnassignedFromUser", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.ScheduleUnassignedFromUser" + } + ], + "doc": "Inspect `schedule.scheduleOwnerUserId` on `scheduleUpdated` instead." + }, + { + "name": "scheduleUpdated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.ScheduleUpdated" + } + ], + "doc": "" + }, + { + "name": "sessionCancelled", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.SessionCancelled" + } + ], + "doc": "" + }, + { + "name": "sessionCreated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.SessionCreated" + } + ], + "doc": "" + }, + { + "name": "sessionUpdated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.SessionUpdated" + } + ], + "doc": "" + }, + { + "name": "siteProperties", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.SitePropertiesOnScheduleCreation" + } + ], + "doc": "site properties. Optional. Given in create schedule notification." + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfScheduleNotificationEventOneOf", + "members": [ + "availabilityPolicyUpdated", + "intervalSplit", + "migrationEvent", + "multipleSessionsCreated", + "recurringSessionSplit", + "scheduleCancelled", + "scheduleCreated", + "scheduleUnassignedFromUser", + "scheduleUpdated", + "sessionCancelled", + "sessionCreated", + "sessionUpdated" + ] + } + ] + }, + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ScheduleNotificationEventOneOf", + "members": [ + { + "name": "availabilityPolicyUpdated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.AvailabilityPolicyUpdated" + } + ], + "doc": "" + }, + { + "name": "intervalSplit", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.IntervalSplit" + } + ], + "doc": "" + }, + { + "name": "migrationEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.MigrationEvent" + } + ], + "doc": "supported only for schedule migration apis." + }, + { + "name": "multipleSessionsCreated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.MultipleSessionsCreated" + } + ], + "doc": "supported only for schedule migration apis." + }, + { + "name": "recurringSessionSplit", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.RecurringSessionSplit" + } + ], + "doc": "" + }, + { + "name": "scheduleCancelled", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.ScheduleCancelled" + } + ], + "doc": "" + }, + { + "name": "scheduleCreated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.ScheduleCreated" + } + ], + "doc": "" + }, + { + "name": "scheduleUnassignedFromUser", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.ScheduleUnassignedFromUser" + } + ], + "doc": "Inspect `schedule.scheduleOwnerUserId` on `scheduleUpdated` instead." + }, + { + "name": "scheduleUpdated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.ScheduleUpdated" + } + ], + "doc": "" + }, + { + "name": "sessionCancelled", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.SessionCancelled" + } + ], + "doc": "" + }, + { + "name": "sessionCreated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.SessionCreated" + } + ], + "doc": "" + }, + { + "name": "sessionUpdated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.SessionUpdated" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ScheduleUnassignedFromUser", + "members": [ + { + "name": "schedule", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.Schedule" + } + ], + "doc": "The schedule that was unassigned from the user." + }, + { + "name": "userId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The Wix user id." + } + ], + "docs": { + "description": [ + "Schedule unassigned from user." + ] + } + }, + { + "name": "ScheduleUpdated", + "members": [ + { + "name": "newSchedule", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.Schedule" + } + ], + "doc": "The new schedule after the update." + }, + { + "name": "oldSchedule", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.Schedule" + } + ], + "doc": "The old schedule before the update." + }, + { + "name": "participantNotification", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.ParticipantNotification" + } + ], + "doc": "Whether to notify participants about the change and an optional custom message" + }, + { + "name": "recurringSessions", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.RecurringSessionsUpdated" + } + ], + "doc": "Recurring sessions updated event. If this field is given, the reason for the schedule updated event was\nupdating at least one of the given schedule's recurring sessions.\nThis event is triggered by create/update/delete recurring session apis." + }, + { + "name": "triggeredByAnonymizeRequest", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether this notification was created as a result of an anonymization request, such as GDPR.\nAn anonymized participant will have the following details:\nname = \"deleted\"\nphone = \"deleted\"\nemail = \"deleted@deleted.com\"" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ScheduleWithSessions", + "members": [ + { + "name": "schedule", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.Schedule" + } + ], + "doc": "" + }, + { + "name": "sessions", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.Session" + } + ] + } + } + ], + "doc": "" + }, + { + "name": "siteProperties", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.SitePropertiesOnScheduleCreation" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "SeoSchema", + "members": [ + { + "name": "settings", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.Settings" + } + ], + "doc": "SEO general settings." + }, + { + "name": "tags", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.Tag" + } + ] + } + } + ], + "doc": "SEO tag information." + } + ], + "docs": { + "description": [ + "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.\nThe search engines use this information for ranking purposes, or to display snippets in the search results.\nThis data will override other sources of tags (for example patterns) and will be included in the section of the HTML document, while not being displayed on the page itself." + ] + } + }, + { + "name": "Service", + "members": [ + { + "name": "_id", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Service ID." + }, + { + "name": "advancedSeoData", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.SeoSchema" + } + ], + "doc": "Advanced SEO data" + }, + { + "name": "bookingFormId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the form that visitors fill out when booking the service." + }, + { + "name": "categoryId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the category to which the service belongs." + }, + { + "name": "customProperties", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Record", + "typeParams": [ + { + "nativeType": "string" + }, + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Set of custom properties for the service." + }, + { + "name": "includeConferenceOption", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether a conference is to be generated for the service." + }, + { + "name": "info", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.ServiceInfo" + } + ], + "doc": "Information about the service." + }, + { + "name": "paymentOptions", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.PaymentOptions" + } + ], + "doc": "Payment options available for use when booking the service." + }, + { + "name": "policy", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.BookingPolicy" + } + ], + "doc": "Description of the bookings policy for the service." + }, + { + "name": "scheduleIds", + "readOnly": true, + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "List of schedule IDs for the sessions and slots that can be booked for the service.\nThe list can include schedules with any `status` values, however the Bookings application only uses the schedules with a `status` of `\"CREATED\"`. There is only one schedule with a status of `\"CREATED\"` per service. The ID of that schedule must always be the first in the list." + }, + { + "name": "seoData", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.SeoSchema" + } + ], + "doc": "SEO data" + }, + { + "name": "sortOrder", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Sort order of the service within its category." + }, + { + "name": "status", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Service status." + } + ], + "docs": { + "description": [ + "A service describes the business offering that a business provides to its customers." + ] + } + }, + { + "name": "ServiceChoice", + "members": [ + { + "name": "custom", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Name of the custom choice." + }, + { + "name": "optionId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the service option." + }, + { + "name": "staffMemberId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the staff member providing the service. Equal to the `resourceId`\nof the staff member or the `scheduleOwnerId` of the relevant\n[schedule's](https://dev.wix.com/api/rest/wix-bookings/schedules-and-sessions/schedule/schedule-object)\n`availability.linkedSchedules`." + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfServiceChoiceChoiceOneOf", + "members": [ + "custom", + "staffMemberId" + ] + } + ] + }, + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ServiceChoiceChoiceOneOf", + "members": [ + { + "name": "custom", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Name of the custom choice." + }, + { + "name": "staffMemberId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the staff member providing the service. Equal to the `resourceId`\nof the staff member or the `scheduleOwnerId` of the relevant\n[schedule's](https://dev.wix.com/api/rest/wix-bookings/schedules-and-sessions/schedule/schedule-object)\n`availability.linkedSchedules`." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ServiceInfo", + "members": [ + { + "name": "description", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Service description." + }, + { + "name": "images", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Images associated with the service. Deprecated." + }, + { + "name": "media", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.Media" + } + ], + "doc": "Images associated with the service. Optional. Not supported yet." + }, + { + "name": "name", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Service name." + }, + { + "name": "tagLine", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Short service description." + } + ], + "docs": { + "description": [ + "Information describing the service." + ] + } + }, + { + "name": "ServiceNotification", + "members": [ + { + "name": "deleteMetadata", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.DeleteMetadata" + } + ], + "doc": "" + }, + { + "name": "event", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Supported values:\n- `'Created'`\n- `'Deleted'`\n- `'Unspecified'`\n- `'Updated'`" + }, + { + "name": "policy", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.BusinessServicesPolicy" + } + ], + "doc": "" + }, + { + "name": "service", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.Service" + } + ], + "doc": "Updated service entity." + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfServiceNotificationMetadataOneOf", + "members": [ + "deleteMetadata" + ] + } + ] + }, + "docs": { + "description": [ + "An event sent in the system once the service is changed." + ] + } + }, + { + "name": "ServiceNotificationMetadataOneOf", + "members": [ + { + "name": "deleteMetadata", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.DeleteMetadata" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ServiceOption", + "members": [ + { + "name": "_id", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the service option." + }, + { + "name": "customData", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.CustomServiceOption" + } + ], + "doc": "Details about the custom option. Available only for `CUSTOM` options." + }, + { + "name": "type", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Type of the service option." + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfServiceOptionOptionSpecificDataOneOf", + "members": [ + "customData" + ] + } + ] + }, + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ServiceOptionOptionSpecificDataOneOf", + "members": [ + { + "name": "customData", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.CustomServiceOption" + } + ], + "doc": "Details about the custom option. Available only for `CUSTOM` options." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ServiceOptions", + "members": [ + { + "name": "values", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.ServiceOption" + } + ] + } + } + ], + "doc": "Values of the service options.\n\nMax: 1 service option\n" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ServiceOptionsAndVariants", + "members": [ + { + "name": "_id", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the `serviceOptionsAndVariants` object." + }, + { + "name": "maxPrice", + "readOnly": true, + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.Money" + } + ], + "doc": "Price of the most expensive service variant." + }, + { + "name": "minPrice", + "readOnly": true, + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.Money" + } + ], + "doc": "Price of the cheapest service variant." + }, + { + "name": "options", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.ServiceOptions" + } + ], + "doc": "Service options. Note that currently only a single option is supported per service." + }, + { + "name": "revision", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Revision number, which increments by 1 each time the `serviceOptionsAndVariants` object is updated.\nTo prevent conflicting changes,\nthe current revision must be passed when updating and deleting the `serviceOptionsAndVariants` object.\n\nIgnored when creating a `serviceOptionsAndVariants` object.\n" + }, + { + "name": "serviceId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the service related to these options and variants." + }, + { + "name": "variants", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.ServiceVariants" + } + ], + "doc": "Information about the service's variants." + } + ], + "docs": { + "description": [ + "The `serviceOptionsAndVariants` object links a service to its variants.\nYou can use it to offer customers different prices for a service,\ndepending on which choices they book.\nRead more about [service options and variants](https://wix.wixanswers.com/app/kb/article/2e91a25b-b3c2-4cf7-9005-429a4929fc36/en)." + ] + } + }, + { + "name": "ServiceVariant", + "members": [ + { + "name": "choices", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.ServiceChoice" + } + ] + } + } + ], + "doc": "Choices for the service option. Currently, only a single choice is supported\nbecause a service can have only a single option.\n\nMax: 1 choice\n" + }, + { + "name": "price", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.Money" + } + ], + "doc": "Information about the service variant's price." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ServiceVariants", + "members": [ + { + "name": "values", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.ServiceVariant" + } + ] + } + } + ], + "doc": "Values of the service variants." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Session", + "members": [ + { + "name": "_id", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Session ID." + }, + { + "name": "affectedSchedules", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.LinkedSchedule" + } + ] + } + } + ], + "doc": "An object specifying a list of schedules and the way each schedule's availability is affected by the session. For example, the schedule of an instructor is affected by sessions of the class that they instruct.\nThe array is inherited from the schedule and can be overridden even if the session is a recurring session." + }, + { + "name": "calendarConference", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.CalendarConference" + } + ], + "doc": "A conference created for the session according to the details set in the schedule's conference provider information.\nIf the session is a recurring session, this field is inherited from the schedule." + }, + { + "name": "capacity", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Maximum number of participants that can be added to the session. Defaults to the schedule capacity.\nThe value is inherited from the schedule and can be overridden unless the session is a recurring session." + }, + { + "name": "end", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.CalendarDateTime" + } + ], + "doc": "An object specifying the end date and time of the session. The `end` time must be after the `start` time and be same type as `start`.\nIf the session is a recurring session, `end` must contain a `localDateTime`." + }, + { + "name": "externalCalendarOverrides", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.ExternalCalendarOverrides" + } + ], + "doc": "Title and description values to override session defaults when syncing to an external calendar.\nLearn more about [syncing calendars](https://support.wix.com/en/article/wix-bookings-important-information-about-syncing-google-calendars-with-wix-bookings).\nThe value is inherited from the schedule and can be overridden unless the session is a recurring session." + }, + { + "name": "inheritedFields", + "readOnly": true, + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "A list of properties for which values were inherited from the schedule.\nThis does not include participants that were inherited from the schedule." + }, + { + "name": "instanceOfRecurrence", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "A string representing a recurrence rule (RRULE) if the session is an instance of a recurrence pattern.\nEmpty when the session is not an instance of a recurrence rule, or if the session defines a recurrence pattern, and `recurrence` is not empty." + }, + { + "name": "location", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.Location" + } + ], + "doc": "An object describing the location where the session takes place.\nDefaults to the schedule location.\nFor single sessions, `session.location.businessLocation` can only be provided for locations that are defined in the schedule using `schedule.location` or `schedule.availability.locations`." + }, + { + "name": "notes", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Additional information about the session.\nNotes are not supported for recurring sessions." + }, + { + "name": "originalStart", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "Original start date and time of the session in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601#Coordinated_Universal_Time_(UTC)) format." + }, + { + "name": "participants", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.Participant" + } + ] + } + } + ], + "doc": "List of participants booked for the session.\nThe list includes participants who have registered for this specific session, and participants who have registered for a schedule that includes this session.\nIf the session is a recurring session, this field must be empty." + }, + { + "name": "rate", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.Rate" + } + ], + "doc": "The price options offered for the session. Defaults to the schedule rate.\nThe value is inherited from the schedule and can be overridden unless the session is a recurring session." + }, + { + "name": "recurrence", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "A string representing a recurrence rule (RRULE) for a recurring session, as defined in [iCalendar RFC 5545](https://icalendar.org/iCalendar-RFC-5545/3-3-10-recurrence-rule.html).\nIf the session is an instance of a recurrence pattern, the `instanceOfRecurrence` property will be contain the recurrence rule and this property will be empty.\nThe RRULE defines a rule for repeating a session.\nSupported parameters are:\n\n|Keyword|Description|Supported values|\n|--|--|---|\n|`FREQ`|The frequency at which the session is recurs. Required.|`WEEKLY`|\n|`INTERVAL`|How often, in terms of `FREQ`, the session recurs. Default is 1. Optional.|\n|`UNTIL`|The UTC end date and time of the recurrence. Optional.|\n|`BYDAY`|Day of the week when the event should recur. Required.|One of: `MO`, `TU`, `WE`, `TH`, `FR`, `SA`, `SU`|\n\n\nFor example, a session that repeats every second week on a Monday until January 7, 2022 at 8 AM:\n`\"FREQ=WEEKLY;INTERVAL=2;BYDAY=MO;UNTIL=20220107T080000Z\"`\n\n\n" + }, + { + "name": "recurringIntervalId", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Recurring interval ID. Defined when a session will be a recurring session. read-only. Optional.\nFor exmaple, when creating a class service with recurring sessions, you add a recurrence rule to create recurring sessions.\nThis field is omitted for single sessions or instances of recurring sessions.\nSpecified when the session was originally generated from a schedule recurring interval.\nDeprecated. Use `recurringSessionId`." + }, + { + "name": "recurringSessionId", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The ID of the recurring session if this session is an instance of a recurrence. Use this ID to update the recurrence and all of the instances." + }, + { + "name": "scheduleId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the schedule that the session belongs to." + }, + { + "name": "scheduleOwnerId", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the resource or service that the session's schedule belongs to." + }, + { + "name": "start", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.CalendarDateTime" + } + ], + "doc": "An object specifying the start date and time of the session. If the session is a recurring session, `start` must contain a `localDateTime`." + }, + { + "name": "status", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Session status.\n" + }, + { + "name": "tags", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Tags for the session.\nThe value is inherited from the schedule and can be overridden unless the session is a recurring session." + }, + { + "name": "timeReservedAfter", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Time reserved after the session end time, derived from the schedule availability constraints and the time between slots. Read-only.\nIf the session is a recurring session, this field must be empty." + }, + { + "name": "title", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Session title.\nThe value is inherited from the schedule and can be overridden unless the session is a recurring session." + }, + { + "name": "totalNumberOfParticipants", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "The number of participants booked for the session. Read-only.\nCalculated as the sum of the party sizes." + }, + { + "name": "type", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Session type.\n" + }, + { + "name": "version", + "readOnly": true, + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.SessionVersion" + } + ], + "doc": "The session version.\nComposed by the schedule, session and participants versions." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "SessionCancelled", + "members": [ + { + "name": "participantNotification", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.ParticipantNotification" + } + ], + "doc": "Whether to notify participants about the change and an optional custom message" + }, + { + "name": "session", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.Session" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "SessionCreated", + "members": [ + { + "name": "session", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.Session" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "SessionUpdated", + "members": [ + { + "name": "newSession", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.Session" + } + ], + "doc": "" + }, + { + "name": "oldSession", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.Session" + } + ], + "doc": "" + }, + { + "name": "participantNotification", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.ParticipantNotification" + } + ], + "doc": "Whether to notify participants about the change and an optional custom message" + }, + { + "name": "triggeredByAnonymizeRequest", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether this notification was created as a result of an anonymization request, such as GDPR.\nAn anonymized participant will have the following details:\nname = \"deleted\"\nphone = \"deleted\"\nemail = \"deleted@deleted.com\"" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "SessionVersion", + "members": [ + { + "name": "number", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Incremental version number, which is updated on each change to the session or on changes affecting the session." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Settings", + "members": [ + { + "name": "keywords", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.Keyword" + } + ] + } + } + ], + "doc": "User-selected keyword terms for a specific page." + }, + { + "name": "preventAutoRedirect", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the Auto Redirect feature, which creates `301 redirects` on a slug change, is enabled.\n\nDefault: `false` (Auto Redirect is enabled.)\n" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "SiteCloned", + "members": [ + { + "name": "originMetaSiteId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Origin site id." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "SiteCreated", + "members": [ + { + "name": "originTemplateId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Origin template site id." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "SitePropertiesEvent", + "members": [ + { + "name": "fields", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Set of properties that were updated - corresponds to the fields in \"properties\"." + }, + { + "name": "properties", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.Properties" + } + ], + "doc": "Updated properties." + }, + { + "name": "version", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Version of the site's properties represented by this update." + } + ], + "docs": { + "description": [ + "The actual update event for a particular notification." + ] + } + }, + { + "name": "SitePropertiesNotification", + "members": [ + { + "name": "changeContext", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.ChangeContext" + } + ], + "doc": "Context of the notification" + }, + { + "name": "event", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.SitePropertiesEvent" + } + ], + "doc": "The actual update event." + }, + { + "name": "metasiteId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The site ID for which this update notification applies." + }, + { + "name": "translations", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.Translation" + } + ] + } + } + ], + "doc": "A convenience set of mappings from the MetaSite ID to its constituent services." + } + ], + "docs": { + "description": [ + "Encapsulates all details written to the Greyhound topic when a site's properties are updated." + ] + } + }, + { + "name": "SitePropertiesOnScheduleCreation", + "members": [ + { + "name": "timeZone", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The global time zone value." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Sorting", + "members": [ + { + "name": "fieldName", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Name of the field to sort by." + }, + { + "name": "order", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Sort order." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "SpecialHourPeriod", + "members": [ + { + "name": "comment", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Additional info about the exception. For example, \"We close earlier on New Year's Eve.\"" + }, + { + "name": "endDate", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "End date and time of the exception in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format and [Coordinated Universal Time (UTC)](https://en.wikipedia.org/wiki/Coordinated_Universal_Time)." + }, + { + "name": "isClosed", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the business is closed (or the service is not available) during the exception.\n\nDefault: `true`.\n" + }, + { + "name": "startDate", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Start date and time of the exception in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format and [Coordinated Universal Time (UTC)](https://en.wikipedia.org/wiki/Coordinated_Universal_Time)." + } + ], + "docs": { + "description": [ + "Exception to the business's regular hours. The business can be open or closed during the exception." + ] + } + }, + { + "name": "SplitInterval", + "members": [ + { + "name": "sameAsDuration", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the slot duration is used as the split interval value.\nIf `same_as_duration` is `true`, the `value_in_minutes` is the sum of the first duration in\n`schedule.availabilityConstraints.SlotDurations` field, and `schedule.availabilityConstraints.TimeBetweenSlots` field." + }, + { + "name": "valueInMinutes", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Number of minutes between available slots' start times when `same_as_duration` is `false`." + } + ], + "docs": { + "description": [ + "The time between available slots' start times. For example, For 5 minute slots, 3:00, 3:05, 3:15 etc. For 1 hour slots, 3:00, 4:00, 5:00 etc." + ] + } + }, + { + "name": "StaffData", + "members": [ + { + "name": "refreshToken", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + }, + { + "name": "resourceId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + }, + { + "name": "syncRequestEmail", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "StreetAddress", + "members": [ + { + "name": "apt", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Apartment number." + }, + { + "name": "name", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Street name." + }, + { + "name": "number", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Street number." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Subdivision", + "members": [ + { + "name": "code", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Subdivision code. Usually state, region, prefecture or province code, according to [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2)." + }, + { + "name": "name", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Subdivision full name." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "SupportedLanguage", + "members": [ + { + "name": "countryCode", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Language icon." + }, + { + "name": "isPrimary", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the supported language is the primary language for the site." + }, + { + "name": "languageCode", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Two-letter language code in [ISO 639-1 alpha-2](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) format." + }, + { + "name": "locale", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.Locale" + } + ], + "doc": "Locale." + }, + { + "name": "resolutionMethod", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "How the language will be resolved. For internal use." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Tag", + "members": [ + { + "name": "children", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "SEO tag inner content. For example, ` inner content `." + }, + { + "name": "custom", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the tag is a custom tag." + }, + { + "name": "disabled", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the tag is disabled." + }, + { + "name": "meta", + "optional": true, + "type": [ + { + "nativeType": "Object" + } + ], + "doc": "SEO tag meta data. For example, `{height: 300, width: 240}`." + }, + { + "name": "props", + "optional": true, + "type": [ + { + "nativeType": "Object" + } + ], + "doc": "A `{'key':'value'}` pair object where each SEO tag property (`'name'`, `'content'`, `'rel'`, `'href'`) contains a value.\nFor example: `{'name': 'description', 'content': 'the description itself'}`." + }, + { + "name": "type", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "SEO tag type.\n\nSupported values: `title`, `meta`, `script`, `link`.\n" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "TimePeriod", + "members": [ + { + "name": "closeDay", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Day of the week the period ends on." + }, + { + "name": "closeTime", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Time the period ends in 24-hour [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) extended format. Valid values are `00:00` to `24:00`, where `24:00` represents\nmidnight at the end of the specified day.\n\n__Note:__ If `openDay` and `closeDay` specify the same day of the week `closeTime` must be later than `openTime`.\n" + }, + { + "name": "openDay", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Day of the week the period starts on." + }, + { + "name": "openTime", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Time the period starts in 24-hour [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) extended format. Valid values are `00:00` to `24:00`, where `24:00` represents\nmidnight at the end of the specified day." + } + ], + "docs": { + "description": [ + "Weekly recurring time periods when the business is regularly open or the service is available." + ] + } + }, + { + "name": "Translation", + "members": [ + { + "name": "appDefId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The application definition ID; this only applies to services of type ThirdPartyApps." + }, + { + "name": "instanceId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The instance ID of the service." + }, + { + "name": "serviceType", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The service type." + } + ], + "docs": { + "description": [ + "A single mapping from the MetaSite ID to a particular service." + ] + } + }, + { + "name": "UpdateServiceOptionsAndVariants", + "members": [ + { + "name": "_id", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the `serviceOptionsAndVariants` object." + }, + { + "name": "maxPrice", + "readOnly": true, + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.Money" + } + ], + "doc": "Price of the most expensive service variant." + }, + { + "name": "minPrice", + "readOnly": true, + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.Money" + } + ], + "doc": "Price of the cheapest service variant." + }, + { + "name": "options", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.ServiceOptions" + } + ], + "doc": "Service options. Note that currently only a single option is supported per service." + }, + { + "name": "revision", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Revision number, which increments by 1 each time the `serviceOptionsAndVariants` object is updated.\nTo prevent conflicting changes,\nthe current revision must be passed when updating and deleting the `serviceOptionsAndVariants` object.\n\nIgnored when creating a `serviceOptionsAndVariants` object.\n" + }, + { + "name": "serviceId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the service related to these options and variants." + }, + { + "name": "variants", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.ServiceVariants" + } + ], + "doc": "Information about the service's variants." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "UpdateServiceOptionsAndVariantsOptions", + "members": [ + { + "name": "mask", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Field mask containing information about the fields to update." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "UpdateServiceOptionsAndVariantsRequest", + "members": [ + { + "name": "mask", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Field mask containing information about the fields to update." + }, + { + "name": "serviceOptionsAndVariants", + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.ServiceOptionsAndVariants" + } + ], + "doc": "`ServiceOptionsAndVariants` object to update." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "UpdateServiceOptionsAndVariantsResponse", + "members": [ + { + "name": "serviceOptionsAndVariants", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.ServiceOptionsAndVariants" + } + ], + "doc": "Updated `serviceOptionsAndVariants` object." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "V4Address", + "members": [ + { + "name": "apartmentNumber", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Apartment number." + }, + { + "name": "city", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "City name." + }, + { + "name": "coordinates", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.GeoCoordinates" + } + ], + "doc": "Geographic coordinates of location." + }, + { + "name": "country", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Two-letter country code in an [ISO-3166 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format." + }, + { + "name": "googleFormattedAddress", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Google-formatted version of this address." + }, + { + "name": "hint", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.AddressHint" + } + ], + "doc": "Extra information to be displayed in the address." + }, + { + "name": "isPhysical", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether this address represents a physical location." + }, + { + "name": "state", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "State." + }, + { + "name": "street", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Street name." + }, + { + "name": "streetNumber", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Street number." + }, + { + "name": "zip", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Zip or postal code." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Version", + "members": [ + { + "name": "participantsVersion", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Participants version number, updated each time the schedule participants are updated." + }, + { + "name": "scheduleVersion", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Schedule version number, updated each time the schedule is updated." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "WaitingListPolicy", + "members": [ + { + "name": "capacity", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Number of spots available in the waitlist. Defaults to 10 spots." + }, + { + "name": "isEnabled", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether waitlisting is enabled for the service." + }, + { + "name": "timeWindowMinutes", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Amount of time a participant is given to book, once notified that a spot is available. Defaults to 10 minutes." + } + ], + "docs": { + "description": [ + "" + ] + } + } + ] +} diff --git a/wix-bookings-v2/wix-bookings-v2/ServiceOptionsAndVariants/ServiceOptionsAndVariantsListQueryBuilder.service.json b/wix-bookings-v2/wix-bookings-v2/ServiceOptionsAndVariants/ServiceOptionsAndVariantsListQueryBuilder.service.json new file mode 100644 index 0000000000..a30b1fdd9f --- /dev/null +++ b/wix-bookings-v2/wix-bookings-v2/ServiceOptionsAndVariants/ServiceOptionsAndVariantsListQueryBuilder.service.json @@ -0,0 +1,599 @@ +{ + "name": "ServiceOptionsAndVariantsListQueryBuilder", + "memberOf": "wix-bookings-v2.ServiceOptionsAndVariants", + "mixes": [], + "callbacks": [], + "extra": {}, + "clientId": "wix-bookings.v2-service_options_and_variants.service-options-and-variants.service-options-and-variants-list-query-builder", + "docs": {}, + "relatedGuides": [], + "properties": [], + "operations": [ + { + "name": "ascending", + "params": [ + { + "name": "propertyNames", + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Properties used in the sort. To sort by multiple properties, pass properties as additional arguments.", + "required": false + } + ], + "requiredFields": [], + "ret": { + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.ServiceOptionsAndVariantsListQueryBuilder" + } + ], + "doc": null + }, + "docs": { + "description": [] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "descending", + "params": [ + { + "name": "propertyNames", + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Properties used in the sort. To sort by multiple properties, pass properties as additional arguments.", + "required": false + } + ], + "requiredFields": [], + "ret": { + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.ServiceOptionsAndVariantsListQueryBuilder" + } + ], + "doc": null + }, + "docs": { + "description": [] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "eq", + "params": [ + { + "name": "propertyName", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Property whose value is compared with `value`.", + "required": false + }, + { + "name": "value", + "type": [ + { + "nativeType": "any" + } + ], + "doc": "Value to compare against.", + "required": false + } + ], + "requiredFields": [], + "ret": { + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.ServiceOptionsAndVariantsListQueryBuilder" + } + ], + "doc": null + }, + "docs": { + "summary": "Refines a query to match items where the specified property equals the specified value.", + "description": [ + "The `eq()` function refines a `ServiceOptionsAndVariantssQueryBuilder` to match only items where the value of the specified `propertyName` equals the specified `value`.", + "`eq()` matches only values of the same type. For example, `0` stored as a number doesn't match `'0'` stored as a string.", + "Matching strings with `eq()` is case-sensitive, so `'text'` isn't equal to `'Text'`." + ], + "examples": [ + { + "title": "Add an `eq` filter to a query", + "body": [ + "const query = serviceOptionsAndVariants.queryServiceOptionsAndVariants.eq(", + " '_id',", + " '\"some-id\"'", + ");", + "" + ] + }, + { + "title": "Create a query, add an `eq` filter, and run it", + "body": [ + "import { serviceOptionsAndVariants } from 'wix-bookings.v2';", + "", + "export async function myQueryFunction() {", + " const results = await serviceOptionsAndVariants", + " .queryServiceOptionsAndVariants()", + " .eq('_id', '\"some-id\"')", + " .find();", + "", + " if (results.items.length > 0) {", + " const items = results.items;", + " const firstItem = items[0];", + " const pageSize = results.pageSize;", + " const hasNext = results.hasNext();", + " const hasPrev = results.hasPrev();", + " const length = results.length;", + " const query = results.query;", + "", + " return items;", + " } else {", + " // Handle if no matching items found", + " }", + "}", + "" + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "exists", + "params": [ + { + "name": "propertyName", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "", + "required": false + }, + { + "name": "value", + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "", + "required": false + } + ], + "requiredFields": [], + "ret": { + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.ServiceOptionsAndVariantsListQueryBuilder" + } + ], + "doc": null + }, + "docs": { + "summary": "", + "description": [], + "examples": [] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "find", + "params": [], + "requiredFields": [], + "ret": { + "type": [ + { + "complexType": { + "nativeType": "Promise", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.ServiceOptionsAndVariantsListQueryResult" + } + ] + } + } + ], + "doc": null + }, + "docs": { + "summary": "Returns the filtered query results.", + "description": [ + "The `find()` function returns a Promise that resolves to the query results and metadata.", + "The Promise is rejected if `find()` is called with insufficient permissions or if any of the previous functions used to refine the query are invalid." + ], + "examples": [ + { + "title": "Run a query with no filters", + "body": [ + "const query = serviceOptionsAndVariants.queryServiceOptionsAndVariants.find();", + "" + ] + }, + { + "title": "Perform a `find` on a query", + "body": [ + "import { serviceOptionsAndVariants } from 'wix-bookings.v2';", + "", + "export async function myQueryFunction() {", + " const results = await serviceOptionsAndVariants", + " .queryServiceOptionsAndVariants()", + " .find();", + "", + " if (results.items.length > 0) {", + " const items = results.items;", + " const firstItem = items[0];", + " const pageSize = results.pageSize;", + " const hasNext = results.hasNext();", + " const hasPrev = results.hasPrev();", + " const length = results.length;", + " const query = results.query;", + "", + " return items;", + " } else {", + " // Handle if no matching items found", + " }", + "}", + "" + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "hasSome", + "params": [ + { + "name": "propertyName", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Property whose value is compared with `values`.", + "required": false + }, + { + "name": "value", + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "any" + } + ] + } + } + ], + "doc": "", + "required": false + } + ], + "requiredFields": [], + "ret": { + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.ServiceOptionsAndVariantsListQueryBuilder" + } + ], + "doc": null + }, + "docs": { + "summary": "Refines a query to match items whose specified property contains any of the specified values.", + "description": [ + "The `hasSome()` function refines a `ServiceOptionsAndVariantssQueryBuilder` to match only items where the value of the specified `propertyName` equals any of the specified `values`.", + "Matching strings with `hasSome()` is case-sensitive, so `'text'` isn't equal to `'Text'`.", + "If the specified property is an array, `hasSome()` matches if any of that array's elements equal any of the specified values." + ], + "examples": [ + { + "title": "Add a `hasSome` filter to a query", + "body": [ + "const query = serviceOptionsAndVariants.queryServiceOptionsAndVariants.hasSome(", + " 'labelIds',", + " ['red', 'blue', 'purple']", + ");", + "" + ] + }, + { + "title": "Create a query, add a `hasSome` filter, and run it", + "body": [ + "import { serviceOptionsAndVariants } from 'wix-bookings.v2';", + "", + "export async function myQueryFunction() {", + " const results = await serviceOptionsAndVariants", + " .queryServiceOptionsAndVariants()", + " .hasSome('labelIds', ['red', 'blue', 'purple'])", + " .find();", + "", + " if (results.items.length > 0) {", + " const items = results.items;", + " const firstItem = items[0];", + " const pageSize = results.pageSize;", + " const hasNext = results.hasNext();", + " const hasPrev = results.hasPrev();", + " const length = results.length;", + " const query = results.query;", + "", + " return items;", + " } else {", + " // Handle if no matching items found", + " }", + "}", + "" + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "in", + "params": [ + { + "name": "propertyName", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "", + "required": false + }, + { + "name": "value", + "type": [ + { + "nativeType": "any" + } + ], + "doc": "", + "required": false + } + ], + "requiredFields": [], + "ret": { + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.ServiceOptionsAndVariantsListQueryBuilder" + } + ], + "doc": null + }, + "docs": { + "summary": "", + "description": [], + "examples": [] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "limit", + "params": [ + { + "name": "limit", + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Number of items to return, which is also the `pageSize` of the results object.", + "required": false + } + ], + "requiredFields": [], + "ret": { + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.ServiceOptionsAndVariantsListQueryBuilder" + } + ], + "doc": null + }, + "docs": { + "summary": "Limits the number of items the query returns.", + "description": [ + "The `limit()` function defines the number of results a query returns in each page. Only one page of results is retrieved at a time.", + "You can use the `next()` and `prev()` functions to navigate the pages of a query result." + ], + "examples": [ + { + "title": "Add a `limit` to a query", + "body": [ + "const query =", + " serviceOptionsAndVariants.queryServiceOptionsAndVariants.limit(10);", + "" + ] + }, + { + "title": "Create a query, add a `limit`, and run it", + "body": [ + "import { serviceOptionsAndVariants } from 'wix-bookings.v2';", + "", + "export async function myQueryFunction() {", + " const results = await serviceOptionsAndVariants", + " .queryServiceOptionsAndVariants()", + " .limit(10)", + " .find();", + "", + " if (results.items.length > 0) {", + " const items = results.items;", + " const firstItem = items[0];", + " const pageSize = results.pageSize;", + " const hasNext = results.hasNext();", + " const hasPrev = results.hasPrev();", + " const length = results.length;", + " const query = results.query;", + "", + " return items;", + " } else {", + " // Handle if no matching items found", + " }", + "}", + "" + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "ne", + "params": [ + { + "name": "propertyName", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Property whose value is compared with `value`.", + "required": false + }, + { + "name": "value", + "type": [ + { + "nativeType": "any" + } + ], + "doc": "Value to compare against.", + "required": false + } + ], + "requiredFields": [], + "ret": { + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.ServiceOptionsAndVariantsListQueryBuilder" + } + ], + "doc": null + }, + "docs": { + "summary": "Refines a query to match items where the specified property doesn't equal the specified value.", + "description": [ + "The `ne()` function refines a `ServiceOptionsAndVariantssQueryBuilder` to match only items where the value of the specified `propertyName` doesn't equal the specified `value`.", + "`ne()` matches only values of the same type. For example, `0` stored as a number doesn't match `'0'` stored as a string.", + "Matching strings with `ne()` is case-sensitive, so `'text'` isn't equal to `'Text'`." + ], + "examples": [ + { + "title": "Add an `ne` filter to a query", + "body": [ + "const query = serviceOptionsAndVariants.queryServiceOptionsAndVariants.ne(", + " '_id',", + " '\"some-id\"'", + ");", + "" + ] + }, + { + "title": "Create a query, add an `ne` filter, and run it", + "body": [ + "import { serviceOptionsAndVariants } from 'wix-bookings.v2';", + "", + "export async function myQueryFunction() {", + " const results = await serviceOptionsAndVariants", + " .queryServiceOptionsAndVariants()", + " .ne('_id', '\"some-id\"')", + " .find();", + "", + " if (results.items.length > 0) {", + " const items = results.items;", + " const firstItem = items[0];", + " const pageSize = results.pageSize;", + " const hasNext = results.hasNext();", + " const hasPrev = results.hasPrev();", + " const length = results.length;", + " const query = results.query;", + "", + " return items;", + " } else {", + " // Handle if no matching items found", + " }", + "}", + "" + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + } + ], + "messages": [] +} diff --git a/wix-bookings-v2/wix-bookings-v2/ServiceOptionsAndVariants/ServiceOptionsAndVariantsListQueryResult.service.json b/wix-bookings-v2/wix-bookings-v2/ServiceOptionsAndVariants/ServiceOptionsAndVariantsListQueryResult.service.json new file mode 100644 index 0000000000..658212fec1 --- /dev/null +++ b/wix-bookings-v2/wix-bookings-v2/ServiceOptionsAndVariants/ServiceOptionsAndVariantsListQueryResult.service.json @@ -0,0 +1,401 @@ +{ + "name": "ServiceOptionsAndVariantsListQueryResult", + "memberOf": "wix-bookings-v2.ServiceOptionsAndVariants", + "mixes": [], + "callbacks": [], + "extra": {}, + "clientId": "wix-bookings.v2-service_options_and_variants.service-options-and-variants.service-options-and-variants-list-query-result", + "docs": {}, + "relatedGuides": [], + "properties": [ + { + "name": "items", + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.ServiceOptionsAndVariants" + } + ] + } + } + ], + "docs": { + "summary": "Returns an array of `serviceOptionsAndVariants` items that match the query.", + "description": [ + "`items` contains the current page of results retrieved by the query.", + "If no results match the query, `items` is an empty array.", + "The page size is defined by the [`limit()`](#limit) function and can be retrieved using the [`pageSize`](#pagesize) property. You can use the [`next()`](#next) and [`prev()`](#prev) functions returned by `serviceOptionsAndVariants` to navigate the pages of a query result." + ], + "examples": [ + { + "title": "Get `items` from a query result", + "body": [ + "const returnedItems = results.items;", + "" + ] + }, + { + "title": "Perform a query and get `items` from the result", + "body": [ + "import { serviceOptionsAndVariants } from 'wix-bookings.v2';", + "", + "export async function myQueryFunction() {", + " const results = await serviceOptionsAndVariants", + " .queryServiceOptionsAndVariants()", + " .find();", + "", + " const returnedItems = results.items;", + "", + " if (returnedItems.length > 0) {", + " return items;", + " } else {", + " // Handle if no matching items found", + " }", + "}", + "" + ] + } + ] + } + }, + { + "name": "length", + "type": [ + { + "nativeType": "number" + } + ], + "docs": { + "summary": "Returns the number of items in the current page of results.", + "description": [ + "`length` returns just the number of items in the current page, not the total number of items that match the query. For the total number of items that match the query, see [`totalCount`](#totalcount).", + "The page size is defined by the [`limit()`](#limit) function and can be retrieved using the [`pageSize`](#pagesize) property. You can use the [`next()`](#next) and [`prev()`](#prev) functions returned by `serviceOptionsAndVariants` to navigate the pages of a query result." + ], + "examples": [ + { + "title": "Get `length` from a query result", + "body": [ + "const resultLength = results.length;", + "" + ] + }, + { + "title": "Perform a query and get `length` from the result", + "body": [ + "import { serviceOptionsAndVariants } from 'wix-bookings.v2';", + "", + "export async function myQueryFunction() {", + " const results = await serviceOptionsAndVariants", + " .queryServiceOptionsAndVariants()", + " .find();", + "", + " return results.length;", + "}", + "" + ] + } + ] + } + }, + { + "name": "pageSize", + "type": [ + { + "nativeType": "number" + } + ], + "docs": { + "summary": "Returns the requested page size.", + "description": [ + "`pageSize` returns the page size set in [`limit()`](#limit) in `ServiceOptionsAndVariantssQueryBuilder`." + ], + "examples": [ + { + "title": "Get the query's page size", + "body": [ + "const requestedPageSize = results.pageSize;", + "" + ] + }, + { + "title": "Perform a query and get `pageSize` from the result", + "body": [ + "import { serviceOptionsAndVariants } from 'wix-bookings.v2';", + "", + "export async function myQueryFunction() {", + " const results = await serviceOptionsAndVariants", + " .queryServiceOptionsAndVariants()", + " .find();", + "", + " return results.pageSize;", + "}", + "" + ] + } + ] + } + }, + { + "name": "query", + "type": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.ServiceOptionsAndVariantsListQueryBuilder" + } + ], + "docs": { + "summary": "Returns the `ServiceOptionsAndVariantssQueryBuilder` object used to get the current results.", + "description": [ + "Use `query` to create and run a new query by chaining additional `ServiceOptionsAndVariantssQueryBuilder` functions to it. You can filter only on properties that haven't already been used in the previous `ServiceOptionsAndVariantssQueryBuilder`." + ], + "examples": [ + { + "title": "Get `query` that produced the current result", + "body": [ + "const originalQuery = results.query;", + "" + ] + }, + { + "title": "Perform a query and get `query` from the result", + "body": [ + "import { serviceOptionsAndVariants } from 'wix-bookings.v2';", + "", + "export async function myQueryFunction() {", + " const results = await serviceOptionsAndVariants", + " .queryServiceOptionsAndVariants()", + " .find();", + "", + " return results.query;", + "}", + "" + ] + } + ] + } + } + ], + "operations": [ + { + "name": "hasNext", + "params": [], + "requiredFields": [], + "ret": { + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": null + }, + "docs": { + "summary": "Indicates whether the query has more results.", + "description": [ + "You can use the [`next()`](#next) and [`prev()`](#prev) functions returned by `serviceOptionsAndVariants` to navigate the pages of a query result." + ], + "examples": [ + { + "title": "Get whether the query has more results", + "body": [ + "const hasNext = results.hasNext();", + "" + ] + }, + { + "title": "Perform a query and get `hasNext` from the result", + "body": [ + "import { serviceOptionsAndVariants } from 'wix-bookings.v2';", + "", + "export async function myQueryFunction() {", + " const results = await serviceOptionsAndVariants", + " .queryServiceOptionsAndVariants()", + " .find();", + "", + " return results.hasNext();", + "}", + "" + ] + } + ] + }, + "isVeloEvent": false + }, + { + "name": "hasPrev", + "params": [], + "requiredFields": [], + "ret": { + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": null + }, + "docs": { + "summary": "Indicates whether the query has previous results.", + "description": [ + "You can use the [`next()`](#next) and [`prev()`](#prev) functions returned by `serviceOptionsAndVariants` to navigate the pages of a query result." + ], + "examples": [ + { + "title": "Get whether the query has previous results", + "body": [ + "const hasPrev = results.hasPrev();", + "" + ] + }, + { + "title": "Perform a query and get `hasPrev` from the result", + "body": [ + "import { serviceOptionsAndVariants } from 'wix-bookings.v2';", + "", + "export async function myQueryFunction() {", + " const results = await serviceOptionsAndVariants", + " .queryServiceOptionsAndVariants()", + " .find();", + "", + " return results.hasPrev();", + "}", + "" + ] + } + ] + }, + "isVeloEvent": false + }, + { + "name": "next", + "params": [], + "requiredFields": [], + "ret": { + "type": [ + { + "complexType": { + "nativeType": "Promise", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.ServiceOptionsAndVariantsListQueryResult" + } + ] + } + } + ], + "doc": null + }, + "docs": { + "summary": "Retrieves the next page of query results.", + "description": [ + "The `next()` function retrieves the next page of query results.", + "The page size is defined by the [`limit()`](#limit) function and can be retrieved using the [`pageSize`](#pagesize) property. You can use the [`next()`](#next) and [`prev()`](#prev) functions returned by `serviceOptionsAndVariants` to navigate the pages of a query result.", + "If items are added or removed between calls to `next()`, the values returned by `ServiceOptionsAndVariantssQueryBuilder` may change." + ], + "examples": [ + { + "title": "Get `next` from a query result", + "body": [ + "const nextPage = results.next();", + "" + ] + }, + { + "title": "Perform a query and get `next` from the result", + "body": [ + "import { serviceOptionsAndVariants } from 'wix-bookings.v2';", + "", + "export async function myQueryFunction() {", + " const results = await serviceOptionsAndVariants", + " .queryServiceOptionsAndVariants()", + " .find();", + "", + " return results.next();", + "}", + "" + ] + }, + { + "title": "Iterate through all pages of query results", + "body": [ + "import { serviceOptionsAndVariants } from 'wix-bookings.v2';", + "", + "export async function myQueryFunction() {", + " let allItems = [];", + "", + " const results = await serviceOptionsAndVariants", + " .queryServiceOptionsAndVariants()", + " .limit(1000)", + " .find();", + " allItems.push(results.items);", + "", + " while (results.hasNext()) {", + " results = await results.next();", + " allItems.push(results.items);", + " }", + "", + " return allItems;", + "}", + "" + ] + } + ] + }, + "isVeloEvent": false + }, + { + "name": "prev", + "params": [], + "requiredFields": [], + "ret": { + "type": [ + { + "complexType": { + "nativeType": "Promise", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ServiceOptionsAndVariants.ServiceOptionsAndVariantsListQueryResult" + } + ] + } + } + ], + "doc": null + }, + "docs": { + "summary": "Retrieves the previous page of query results.", + "description": [ + "The `prev()` function retrieves the previous page of query results.", + "The page size is defined by the [`limit()`](#limit) function and can be retrieved using the [`pageSize`](#pagesize) property. You can use the [`next()`](#next) and [`prev()`](#prev) functions returned by `serviceOptionsAndVariants` to navigate the pages of a query result.", + "If items are added or removed between calls to `prev()`, the values returned may change." + ], + "examples": [ + { + "title": "Get `prev` from a query result", + "body": [ + "const previousPage = results.prev();", + "" + ] + }, + { + "title": "Perform a query and get `prev` from the result", + "body": [ + "import { serviceOptionsAndVariants } from 'wix-bookings.v2';", + "", + "export async function myQueryFunction() {", + " const results = await serviceOptionsAndVariants", + " .queryServiceOptionsAndVariants()", + " .find();", + "", + " return results.prev();", + "}", + "" + ] + } + ] + }, + "isVeloEvent": false + } + ], + "messages": [] +} diff --git a/wix-bookings-v2/wix-bookings-v2/Sessions.service.json b/wix-bookings-v2/wix-bookings-v2/Sessions.service.json new file mode 100644 index 0000000000..27744ecf8b --- /dev/null +++ b/wix-bookings-v2/wix-bookings-v2/Sessions.service.json @@ -0,0 +1,3986 @@ +{ + "name": "Sessions", + "memberOf": "wix-bookings-v2", + "mixes": [], + "callbacks": [], + "extra": {}, + "clientId": "wix-bookings.v2-session", + "docs": {}, + "relatedGuides": [], + "properties": [], + "operations": [ + { + "name": "createSession", + "params": [ + { + "name": "session", + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.Session" + } + ], + "doc": "The session to create.", + "required": true + } + ], + "requiredFields": [ + "session", + "session.end", + "session.scheduleId", + "session.start" + ], + "ret": { + "type": [ + { + "complexType": { + "nativeType": "Promise", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Sessions.Session" + } + ] + } + } + ], + "doc": "The created session.\n" + }, + "docs": { + "summary": "Creates a session.", + "description": [ + "The `createSession()` function returns a Promise that resolves when a session is created.\n\n\nA session's `type` is one of the following:\n+ `EVENT`: Reserved period of time on any schedule. For example, an appointment, class, or course. Events are visible in the Dashboard in the Bookings app's [Booking Calendar](https://support.wix.com/en/article/wix-bookings-about-the-wix-bookings-calendar) page. Set `type` to `EVENT` when creating sessions that reserve time on a service's schedule, or when creating a blocked time for a resource.\n+ `WORKING_HOURS`: Placeholder for available time on a resource’s schedule. Set `type` to `WORKING_HOURS` when creating sessions for resource availability.\n\nSessions belong to a schedule. Schedules are owned by a resource or a service.\n\nA session may be an individual session or a recurring session.\nAn individual session has a discrete start and end date, while a recurring session defines a series of repeating sessions. An instance of a recurring session is a specific session in a series of repeating sessions, generated according to the recurrence rule.\n\nThe `start` and `end` properties set the time and duration of the session. For non-recurring sessions, you can use either the `timestamp` or `localDateTime` properties.\nFor recurring sessions, use the `localDateTime` property only.\n\nFor recurring sessions, the `start` property sets the date and time of the first recurring session, subject to the recurrence rule. For example, if you set the `start` to Saturday, May 1 and your recurrence rule says every second Monday, then the first session will only be on Monday, May 10.\n\nThe `year`, `monthOfYear` and `dayOfMonth` properties in the `end` property are used with the `hourOfDay` and `minutesOfHour` properties to set the duration of each session relative to the `start`.\n\nThe `UNTIL` keyword in the `recurrence` property sets the date for the last recurring session.\n\nYou can create a session that blocks hours on the resource's calendar, making the resource unavailable, by creating a non-recurring session of type `\"EVENT\"`, and add `\"Blocked\"` to the `tags` array.\n\n>**Notes:**\n> + For properties where there is no explicit timezone information, the timezone used is the business’s timezone.\n> + This function is restricted and only runs if you elevate permissions using the [`wix-auth.elevate()`](https://www.wix.com/velo/reference/wix-auth/elevate) function." + ], + "examples": [ + { + "title": "Create a session ", + "body": [ + "import {sessions} from 'wix-bookings.v2';", + "", + "async function createSession(scheduleId) {", + " const createdSession =", + " await sessions.createSession({", + " scheduleId,", + " start: {", + " timestamp: new Date('2023-01-01T12:00:00Z')", + " },", + " end: {", + " timestamp: new Date('2023-01-01T13:00:00Z')", + " }", + " })", + " return createdSession", + "}" + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "deleteSession", + "params": [ + { + "name": "sessionId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The ID of the session to delete.", + "required": true + }, + { + "name": "options", + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.DeleteSessionOptions" + } + ], + "doc": "Options to use when deleting a session.\n", + "required": false + } + ], + "requiredFields": [ + "sessionId" + ], + "ret": { + "type": [ + { + "complexType": { + "nativeType": "Promise", + "typeParams": [ + { + "nativeType": "void" + } + ] + } + } + ], + "doc": null + }, + "docs": { + "summary": "Deletes a session.", + "description": [ + "The `deleteSession()` function returns a Promise that resolves when the session has been deleted.\n\nUse the `options.participantNotification` property to send an email notification to the participants when the session is deleted.\n\nWhen deleting a session of type `EVENT` where a booking exists, the booking's status is updated to `CANCELED`.\n\nTo delete a set of recurring sessions, specify the session's `recurringSessionId` in the `sessionId` parameter.\nWhen deleting a recurrence, only future instances of the recurrence are deleted.\n\n>**Note:** This function is restricted and only runs if you elevate permissions using the [`wix-auth.elevate()`](https://www.wix.com/velo/reference/wix-auth/elevate) function." + ], + "examples": [ + { + "title": "Delete a session by ID", + "body": [ + "import {sessions} from 'wix-bookings.v2';", + "", + "async function deleteSession(sessionId) {", + " await sessions.deleteSession(sessionId)", + "}" + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "getSession", + "params": [ + { + "name": "_id", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the session to retrieve.", + "required": true + }, + { + "name": "options", + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.GetSessionOptions" + } + ], + "doc": "Options to use when retrieving a session.", + "required": false + } + ], + "requiredFields": [ + "_id" + ], + "ret": { + "type": [ + { + "complexType": { + "nativeType": "Promise", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Sessions.Session" + } + ] + } + } + ], + "doc": "Retrieved session.\n" + }, + "docs": { + "summary": "Retrieves a session by ID.", + "description": [ + "The `getSession()` function returns a Promise that resolves to a session with the specified session ID.\n\nBy default, a session object is returned with the fields specified in the `NO_PI` fieldset. This means it doesn't contain personal information.\n\nTo retrieve a full session object including all personal information, use the `ALL_PI` fieldset. This requires elevating permissions using the [`wix-auth.elevate()`](https://www.wix.com/velo/reference/wix-auth/elevate) function." + ], + "examples": [ + { + "title": "Retrieve a session by ID ", + "body": [ + "import {sessions} from 'wix-bookings.v2';", + "", + "async function getSession(sessionId) {", + " const session = await sessions.getSession(sessionId)", + " return session", + "}" + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "listSessions", + "params": [ + { + "name": "ids", + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "IDs of the sessions to retrieve.", + "required": true + }, + { + "name": "options", + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.ListSessionsOptions" + } + ], + "doc": "Options to use when retrieving a list of sessions.\n", + "required": false + } + ], + "requiredFields": [ + "ids" + ], + "ret": { + "type": [ + { + "complexType": { + "nativeType": "Promise", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Sessions.ListSessionsResponse" + } + ] + } + } + ], + "doc": null + }, + "docs": { + "summary": "Retrieves a list of sessions by their IDs.", + "description": [ + "The `listSessions()` function returns a Promise that resolves to the sessions with the specified IDs.\n\nBy default, session objects are returned with the fields specified in the `NO_PI` fieldset. This means they don't contain personal information.\n\nTo retrieve full session objects including all personal information, use the `ALL_PI` fieldset. This requires elevating permissions using the [`wix-auth.elevate()`](https://www.wix.com/velo/reference/wix-auth/elevate) function." + ], + "examples": [ + { + "title": "Retrieve a list of sessions by IDs ", + "body": [ + "import {sessions} from 'wix-bookings.v2';", + "", + "async function listSessions(sessionIds) {", + " const response = await sessions.listSessions(sessionIds)", + " return response.sessions", + "}" + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "querySessions", + "params": [ + { + "name": "fromDate", + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "Start of the time range for which sessions are returned, in [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601#Coordinated_Universal_Time_(UTC)).\n\nSessions that begin before the `fromDate` but end after it are included in the results. For recurring session definitions, this means the `start` value is before the `fromDate` and the `UNTIL` value in the `recurrence` property is after the `fromDate`.\n\nRequired, unless `query.cursorPaging` is provided.", + "required": true + }, + { + "name": "toDate", + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "End of the time range for which sessions are returned, in [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601#Coordinated_Universal_Time_(UTC)).\n\nSessions that begin before the `toDate` but end after it are included in the results. For recurring session definitions, this means the `start` value is before the `toDate` and the `UNTIL` value in the `recurrence` property is after the `toDate`.\n\nRequired, unless `query.cursorPaging` is provided.\n\nMax: 1 year after `fromDate` for session instance queries. This limit doesn't apply to recurring session definition queries.\n", + "required": true + }, + { + "name": "options", + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.QuerySessionsOptions" + } + ], + "doc": "Options for customizing a query.\n\nTo query all event instances within a specific time range of up to 1 year, set `options.type` to `EVENT` and specify the time range in `options.startDate` and `options.endDate`.", + "required": false + } + ], + "requiredFields": [ + "fromDate", + "toDate" + ], + "ret": { + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.SessionsQueryBuilder" + } + ], + "doc": null + }, + "docs": { + "summary": "Retrieves a list of sessions, given the provided time range, filtering, and paging.", + "description": [ + "", + "", + "The `querySessions()` function builds a query to retrieve a list of sessions, and returns a `SessionQueryBuilder` object. ", + "", + "The returned object contains the query definition, which is typically used to run the query using the `find()` function.", + "", + "To query all event instances within a specified time range of up to 1 year, set `options.type` to `EVENT` and specify the time range in `options.startDate` and `options.endDate`.", + "", + "You can refine the query by chaining `SessionQueryBuilder` functions to the query, before chaining `find()`. These enable you to filter and control the results a query returns. ", + "", + "The `querySessions()` function runs with these defaults, which you can override:", + "- All session types are returned.", + "- `options.instances` is true. This means only single sessions and instances of recurring sessions are returned.", + "- Session objects are returned with the fields specified in the `NO_PI` fieldset. This means they don't contain personal information.", + "", + "Note the following limitations, which you can't override:", + "- Sessions are always sorted by `start.timestamp` in `ASC` order.", + "- The maximum time range you can query is 1 year.", + "", + "To query only for events, set `options.type` to `EVENT`. An event is a single or recurring session that appears in a calendar, for example an appointment or a class.", + "", + "To query for recurring session pattern definitions, set `options.instances` to `false`. In this case, you don't need to specify a time range.", + "", + "To return session objects including personal information, use the `ALL_PI` fieldset. This requires elevating permissions using the [`wix-auth.elevate()`](https://www.wix.com/velo/reference/wix-auth/elevate) function.", + "", + "For details on fieldsets, see [Sessions: Supported Fieldsets](https://www.wix.com/velo/reference/wix-bookings-v2/sessions/fieldsets).", + "|PROPERTY\t|SUPPORTED FILTERS & SORTING\t", + "|:---:|:---:|", + "|`scheduleId`|[`eq()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#eq),[`ne()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#ne),[`hasSome()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#hasSome)|", + "|`scheduleOwnerId`|[`eq()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#eq),[`ne()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#ne),[`hasSome()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#hasSome)|", + "|`affectedSchedules.scheduleId`|[`hasSome()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#hasSome),[`eq()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#eq)|", + "|`affectedSchedules.transparency`|[`hasSome()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#hasSome)|", + "|`affectedSchedules.scheduleOwnerId`|[`hasSome()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#hasSome)|", + "|`title`|[`eq()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#eq),[`ne()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#ne),[`hasSome()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#hasSome),[`startsWith()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#startsWith)|", + "|`tags`|[`hasSome()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#hasSome),[`hasAll()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#hasAll),[`eq()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#eq)|", + "|`location`|[`exists()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#exists)|", + "|`location.locationType`|[`eq()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#eq),[`ne()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#ne),[`hasSome()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#hasSome)|", + "|`location.customAddress`|[`exists()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#exists)|", + "|`location.customAddress.formattedAddress`|[`eq()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#eq),[`ne()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#ne),[`hasSome()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#hasSome),[`startsWith()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#startsWith)|", + "|`location.businessLocation`|[`exists()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#exists)|", + "|`location.businessLocation.id`|[`eq()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#eq),[`ne()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#ne),[`hasSome()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#hasSome)|", + "|`location.businessLocation.name`|[`eq()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#eq),[`ne()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#ne),[`hasSome()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#hasSome),[`startsWith()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#startsWith)|", + "|`location.businessLocation.address.formattedAddress`|[`eq()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#eq),[`ne()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#ne),[`hasSome()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#hasSome),[`startsWith()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#startsWith)|", + "|`capacity`|[`eq()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#eq),[`ne()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#ne),[`gt()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#gt),[`lt()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#lt),[`ge()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#ge),[`le()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#le)|", + "|`participants.id`|[`hasSome()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#hasSome)|", + "|`participants.contactId`|[`hasSome()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#hasSome),[`eq()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#eq)|", + "|`participants.approvalStatus`|[`hasSome()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#hasSome)|", + "|`inheritedFields`|[`hasSome()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#hasSome),[`hasAll()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#hasAll)|", + "|`externalCalendarOverrides.title`|[`eq()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#eq),[`ne()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#ne),[`hasSome()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#hasSome),[`startsWith()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#startsWith)|", + "|`recurringSessionId`|[`eq()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#eq),[`ne()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#ne),[`hasSome()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#hasSome),[`exists()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#exists)|", + "|`calendarConference`|[`exists()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#exists)|", + "|`calendarConference.id`|[`eq()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#eq),[`ne()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#ne),[`hasSome()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#hasSome)|", + "|`calendarConference.externalId`|[`eq()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#eq),[`ne()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#ne),[`hasSome()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#hasSome)|", + "|`calendarConference.providerId`|[`eq()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#eq),[`ne()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#ne),[`hasSome()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#hasSome)|", + "|`instanceOfRecurrence`|[`eq()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#eq),[`ne()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#ne),[`hasSome()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#hasSome),[`exists()`](wix-bookings.v2.Sessions.SessionsQueryBuilder#exists)|" + ], + "examples": [ + { + "title": "Query sessions within a time range ", + "body": [ + "import {sessions} from 'wix-bookings.v2';", + "", + "async function querySessions() {", + " const fromDate = new Date('2023-01-01T00:00:00Z')", + " const toDate = new Date('2023-01-07T00:00:00Z')", + " const results = await sessions.querySessions(fromDate, toDate).find()", + " return results.items", + "}" + ] + }, + { + "title": "Query sessions by tags ", + "body": [ + "import {sessions} from 'wix-bookings.v2';", + "", + "async function querySessionsByTags(fromDate, toDate) {", + " const {items: taggedSessions} = await sessions", + " .querySessions(fromDate, toDate)", + " .hasSome('tags', [", + " 'Custom Tag 1',", + " 'Custom Tag 2'", + " ])", + " .find()", + " return taggedSessions", + "}" + ] + }, + { + "title": "Query for working hours sessions ", + "body": [ + "import {sessions} from 'wix-bookings.v2';", + "", + "async function queryWorkingHourSessions(fromDate, toDate) {", + " const options = {", + " type: 'WORKING_HOURS'", + " }", + " const {items: workingHourSessions} = await sessions", + " .querySessions(fromDate, toDate, options)", + " .find()", + " return workingHourSessions", + "}" + ] + }, + { + "title": "Query for a schedule's recurring sessions ", + "body": [ + "import {sessions} from 'wix-bookings.v2';", + "", + "async function queryRecurringSessionsOfSchedule(fromDate, toDate) {", + " const options = {", + " instances: false", + " }", + " const {items: recurringSessions} = await sessions", + " .querySessions(fromDate, toDate, options)", + " .eq('scheduleId', '36c043ff-82ca-42aa-b980-f75f7364e4f3')", + " .find()", + " return recurringSessions", + "}" + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "updateSession", + "params": [ + { + "name": "_id", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Session ID.", + "required": true + }, + { + "name": "session", + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.UpdateSession" + } + ], + "doc": "", + "required": true + }, + { + "name": "options", + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.UpdateSessionOptions" + } + ], + "doc": "Options to use when updating a session.", + "required": false + } + ], + "requiredFields": [ + "_id", + "session" + ], + "ret": { + "type": [ + { + "complexType": { + "nativeType": "Promise", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Sessions.Session" + } + ] + } + } + ], + "doc": "The updated session.\n" + }, + "docs": { + "summary": "Updates a session.", + "description": [ + "The `updateSession()` function updates a session and returns a Promise that resolves to the updated session.\n\nWhen you update a recurring session, only the future instances of the recurrence will be updated. Changing an individual instance's `start` or `end` time will change the way updates to `start` and `end` on the recurring session pattern definition affect the session instance:\n|Change made to the instance | Effect of changes made to the recurrence\n|--|--|\n|Instance `start` time changed.|Changes to the recurring session's `start` or `end` time will not update the instance.|\n|Instance `end` time changed, changing the session's duration| Changes made to the recurring session's start time will be updated on the instance while keeping the new duration, but changes to the recurring session's `end` time not be updated on the instance.\n|Updating a changed `start` time for an instance back to the recurring session's value.|Future changes to the recurring session `start` and `end` times will update the instance's `starts` and `end` time.\n\nChanges to properties on the recurring session, other than `start` and `end`, are always updated on the recurrence instance.\n\nUse the `options.participantNotification` object to notify participants if the session has been booked.\n\n>**Notes:**\n> + Where there is no explicit timezone information, the timezone used is the business’s timezone.\n> + This function is restricted and only runs if you elevate permissions using the [`wix-auth.elevate()`](https://www.wix.com/velo/reference/wix-auth/elevate) function." + ], + "examples": [ + { + "title": "Update a session by ID", + "body": [ + "import {sessions} from 'wix-bookings.v2';", + "", + "async function updateSession(sessionId) {", + " const updatedSession =", + " await sessions.updateSession(sessionId, {", + " title: \"An updated title\"", + " })", + " return updatedSession", + "}" + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + } + ], + "messages": [ + { + "name": "Address", + "members": [ + { + "name": "addressLine", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Main address line, usually street and number, as free text." + }, + { + "name": "addressLine2", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Free text providing more detailed address info. Usually contains Apt, Suite, and Floor." + }, + { + "name": "city", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "City name." + }, + { + "name": "country", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Country code." + }, + { + "name": "countryFullname", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Country full name." + }, + { + "name": "formattedAddress", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "A string containing the full address of this location." + }, + { + "name": "geocode", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.AddressLocation" + } + ], + "doc": "Coordinates of the physical address." + }, + { + "name": "hint", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Free text to help find the address." + }, + { + "name": "postalCode", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Zip/postal code." + }, + { + "name": "streetAddress", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.StreetAddress" + } + ], + "doc": "Street name, number and apartment number." + }, + { + "name": "subdivision", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Subdivision. Usually state, region, prefecture or province code, according to [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2)." + }, + { + "name": "subdivisions", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Sessions.Subdivision" + } + ] + } + } + ], + "doc": "Multi-level subdivisions from top to bottom." + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfAddressStreetOneOf", + "members": [ + "addressLine", + "streetAddress" + ] + } + ] + }, + "docs": { + "description": [ + "Physical address" + ] + } + }, + { + "name": "AddressLocation", + "members": [ + { + "name": "latitude", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Address latitude." + }, + { + "name": "longitude", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Address longitude." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "AddressStreetOneOf", + "members": [ + { + "name": "addressLine", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Main address line, usually street and number, as free text." + }, + { + "name": "streetAddress", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.StreetAddress" + } + ], + "doc": "Street name, number and apartment number." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "BusinessSchedule", + "members": [ + { + "name": "periods", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Sessions.TimePeriod" + } + ] + } + } + ], + "doc": "Weekly recurring time periods when the business is regularly open or the service is available. Limited to 100 time periods." + }, + { + "name": "specialHourPeriod", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Sessions.SpecialHourPeriod" + } + ] + } + } + ], + "doc": "Exceptions to the business's regular hours. The business can be open or closed during the exception." + } + ], + "docs": { + "description": [ + "Business schedule. Regular and exceptional time periods when the business is open or the service is available." + ] + } + }, + { + "name": "CacheInfo", + "members": [ + { + "name": "cachedDate", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "" + }, + { + "name": "feedReplayId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + }, + { + "name": "fromDate", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "" + }, + { + "name": "sessionCount", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "" + }, + { + "name": "status", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Supported values:\n- `'ACTIVE'`\n- `'INACTIVE'`\n- `'IN_PROGRESS'`\n- `'UNDEFINED'`" + }, + { + "name": "toDate", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "CacheRequest", + "members": [ + { + "name": "fromDate", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "CacheResponse", + "members": [ + { + "name": "cacheInfo", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.CacheInfo" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "CalendarConference", + "members": [ + { + "name": "_id", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Wix Calendar conference ID." + }, + { + "name": "accountOwnerId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the account owner in the video conferencing service." + }, + { + "name": "conferenceType", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Conference type.\n\nSupported values:\n- `ONLINE_MEETING_PROVIDER`: API-generated online meeting.\n- `CUSTOM`: User-defined meeting.\n" + }, + { + "name": "description", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Conference description." + }, + { + "name": "externalId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Conference meeting ID in the provider's conferencing system." + }, + { + "name": "guestUrl", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "URL used by a guest to join the conference." + }, + { + "name": "hostUrl", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "URL used by the host to start the conference." + }, + { + "name": "password", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Password to join the conference." + }, + { + "name": "providerId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Conference provider ID." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "CalendarDateTime", + "members": [ + { + "name": "localDateTime", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.LocalDateTime" + } + ], + "doc": "An object containing the local date and time for the business's time zone." + }, + { + "name": "timeZone", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The time zone. Optional. Derived from the schedule's time zone.\nIn case this field is associated with recurring session, this field is empty." + }, + { + "name": "timestamp", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "UTC date-time in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601#Coordinated_Universal_Time_(UTC)) format. If a time zone offset is specified, the time is converted to UTC. For example, if you specify `new Date('2021-01-06T16:00:00.000-07:00')`, the stored value will be `\"2021-01-06T23:00:00.000Z\"`.\nRequired if `localDateTime` is not specified.\nIf `localDateTime` is specified, `timestamp` is calculated as `localDateTime`, using the business's time zone." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "CommonCursorPaging", + "members": [ + { + "name": "cursor", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Pointer to the next or previous page in the list of results.\n\nYou can get the relevant cursor token\nfrom the `pagingMetadata` object in the previous call's response.\nNot relevant for the first request.\n" + }, + { + "name": "limit", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Number of sessions to return.\nDefaults to `50`. Maximum `1000`." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "CommonCursors", + "members": [ + { + "name": "next", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Cursor pointing to next page in the list of results." + }, + { + "name": "prev", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Cursor pointing to previous page in the list of results." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "CommonQueryV2", + "members": [ + { + "name": "cursorPaging", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.CommonCursorPaging" + } + ], + "doc": "Cursor token pointing to a page of results. Not used in the first request. Following requests use the cursor token and not `query.filter`." + }, + { + "name": "fieldsets", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Supported values: `ALL_PI`.\n\nPredefined sets of fields to return.\n\n- `ALL_PI`: Returns complete session objects.\n\nIf you don't pass a value in the `fieldsets` array, session objects without\npersonal information are returned by default. This means without `participants`,\n`location`, `calendarConference`, and `externalCalendarOverrides`.\n" + }, + { + "name": "filter", + "optional": true, + "type": [ + { + "nativeType": "Object" + } + ], + "doc": "Filter object.\nSee [API Query Language](https://dev.wix.com/api/rest/getting-started/api-query-language)\nfor more information.\n\nExample of operators: `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`, `$in`, `$hasSome`, `$hasAll`, `$startsWith`, `$contains`.\n\nFor a detailed list of supported filters, see\n[Supported Filters](https://dev.wix.com/api/rest/wix-bookings/calendar-v2/filters).\n" + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfCommonQueryV2PagingMethodOneOf", + "members": [ + "cursorPaging" + ] + } + ] + }, + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "CommonQueryV2PagingMethodOneOf", + "members": [ + { + "name": "cursorPaging", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.CommonCursorPaging" + } + ], + "doc": "Cursor token pointing to a page of results. Not used in the first request. Following requests use the cursor token and not `query.filter`." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "CreateSessionRequest", + "members": [ + { + "name": "session", + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.Session" + } + ], + "doc": "The session to create." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "CreateSessionResponse", + "members": [ + { + "name": "session", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.Session" + } + ], + "doc": "The created session." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "CursorPaging", + "members": [ + { + "name": "cursor", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Pointer to the next or previous page in the list of results.\n\nYou can get the relevant cursor token\nfrom the `pagingMetadata` object in the previous call's response.\nNot relevant for the first request.\n" + }, + { + "name": "limit", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Number of sessions to return.\n\nDefault: `100`\nMax: `1000`\n" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "CursorPagingMetadata", + "members": [ + { + "name": "count", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Number of sessions returned in the response." + }, + { + "name": "cursors", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.Cursors" + } + ], + "doc": "Cursors to navigate through the result pages." + }, + { + "name": "hasNext", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Indicates if there are more results after the current page.\nIf `true`, another page of results can be retrieved.\nIf `false`, this is the last page." + } + ], + "docs": { + "description": [ + "This is the preferred message for cursor-paging enabled services" + ] + } + }, + { + "name": "Cursors", + "members": [ + { + "name": "next", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Cursor pointing to next page in the list of results." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "DeleteSessionOptions", + "members": [ + { + "name": "participantNotification", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.ParticipantNotification" + } + ], + "doc": "Whether to notify participants about the change, and an optional custom message." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "DeleteSessionRequest", + "members": [ + { + "name": "participantNotification", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.ParticipantNotification" + } + ], + "doc": "Whether to notify participants about the change, and an optional custom message." + }, + { + "name": "sessionId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The ID of the session to delete." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "DeleteSessionResponse", + "members": [], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Empty", + "members": [], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ExternalCalendarInfo", + "members": [ + { + "name": "calendarType", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The external calendar type (e.g. Google Calendar, iCal, etc)." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ExternalCalendarOverrides", + "members": [ + { + "name": "description", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Synced description of the external calendar event." + }, + { + "name": "title", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Synced title of the external calendar event." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "FeedEvent", + "members": [ + { + "name": "sessionAddedOrUpdated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.SessionAddedOrUpdated" + } + ], + "doc": "Session has been added or updated within the feed window." + }, + { + "name": "sessionRemoved", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.SessionRemoved" + } + ], + "doc": "Session has been removed from the feed." + }, + { + "name": "windowExtended", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.WindowExtended" + } + ], + "doc": "The feed window has been extended." + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfFeedEventTypeOneOf", + "members": [ + "sessionAddedOrUpdated", + "sessionRemoved", + "windowExtended", + "windowMoved" + ] + } + ] + }, + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "FeedEventTypeOneOf", + "members": [ + { + "name": "sessionAddedOrUpdated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.SessionAddedOrUpdated" + } + ], + "doc": "Session has been added or updated within the feed window." + }, + { + "name": "sessionRemoved", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.SessionRemoved" + } + ], + "doc": "Session has been removed from the feed." + }, + { + "name": "windowExtended", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.WindowExtended" + } + ], + "doc": "The feed window has been extended." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "FeedReplayEvent", + "members": [ + { + "name": "replayCompleted", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.ReplayCompleted" + } + ], + "doc": "Sessions replay completed." + }, + { + "name": "replayId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + }, + { + "name": "sessionAdded", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.SessionAdded" + } + ], + "doc": "Session has been added within the feed window." + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfFeedReplayEventTypeOneOf", + "members": [ + "replayCompleted", + "sessionAdded" + ] + } + ] + }, + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "FeedReplayEventTypeOneOf", + "members": [ + { + "name": "replayCompleted", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.ReplayCompleted" + } + ], + "doc": "Sessions replay completed." + }, + { + "name": "sessionAdded", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.SessionAdded" + } + ], + "doc": "Session has been added within the feed window." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "GetCacheInfoRequest", + "members": [ + { + "name": "includeSessionCount", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "GetCacheInfoResponse", + "members": [ + { + "name": "cacheInfo", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.CacheInfo" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "GetSessionOptions", + "members": [ + { + "name": "fieldsets", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Predefined sets of fields to return.\n- `NO_PI`: Returns a session object without personal information.\n- `ALL_PI`: Returns a complete session object, including personal information.\n\nDefault: `NO_PI`\n" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "GetSessionRequest", + "members": [ + { + "name": "_id", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the session to retrieve." + }, + { + "name": "fieldsets", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Predefined sets of fields to return.\n- `NO_PI`: Returns a session object without personal information.\n- `ALL_PI`: Returns a complete session object, including personal information.\n\nDefault: `NO_PI`\n" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "GetSessionResponse", + "members": [ + { + "name": "session", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.Session" + } + ], + "doc": "Retrieved session." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "LinkedSchedule", + "members": [ + { + "name": "scheduleId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Schedule ID." + }, + { + "name": "scheduleOwnerId", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Owner ID, of the linked schedule." + }, + { + "name": "transparency", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Sets this schedule's availability for the duration of the linked schedule's sessions.\n\nSupported values:\n- `FREE`: This schedule can have available slots during the linked schedule's sessions.\n- `BUSY`: This schedule cannot have any available slots during the linked schedule's sessions.\n\nDefault: `BUSY`\n" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ListSessionsOptions", + "members": [ + { + "name": "fieldsets", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Predefined sets of fields to return.\n- `NO_PI`: Returns session objects without personal information.\n- `ALL_PI`: Returns complete session objects, including personal information.\n\nDefault: `NO_PI`\n" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ListSessionsRequest", + "members": [ + { + "name": "fieldsets", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Predefined sets of fields to return.\n- `NO_PI`: Returns session objects without personal information.\n- `ALL_PI`: Returns complete session objects, including personal information.\n\nDefault: `NO_PI`\n" + }, + { + "name": "ids", + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "IDs of the sessions to retrieve." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ListSessionsResponse", + "members": [ + { + "name": "sessions", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Sessions.Session" + } + ] + } + } + ], + "doc": "Retrieved sessions." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "LocalDateTime", + "members": [ + { + "name": "dayOfMonth", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Day of the month, from 1-31." + }, + { + "name": "hourOfDay", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Hour of the day in 24-hour format, from 0-23." + }, + { + "name": "minutesOfHour", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Minute, from 0-59." + }, + { + "name": "monthOfYear", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Month number, from 1-12." + }, + { + "name": "year", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Year. 4-digit format." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Location", + "members": [ + { + "name": "address", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Free text address used when locationType is `OWNER_CUSTOM`." + }, + { + "name": "businessLocation", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.LocationsLocation" + } + ], + "doc": "Valid when `locationType` is `OWNER_BUSINESS`. Defaults to the business's location.\n\n`businessSchedule` is not supported by Wix Bookings\n" + }, + { + "name": "customAddress", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.Address" + } + ], + "doc": "Custom address, used when locationType is `\"OWNER_CUSTOM\"`. Might be used when locationType is `\"CUSTOM\"` in case the owner sets a custom address for the session which is different from the default." + }, + { + "name": "locationType", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Location type.\nOne of:\n- `\"OWNER_BUSINESS\"` The business address as set in the site’s general settings.\n- `\"OWNER_CUSTOM\"` The address as set when creating the service.\n- `\"CUSTOM\"` The address set for the individual session." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "LocationsAddress", + "members": [ + { + "name": "city", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "City name." + }, + { + "name": "country", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "2-letter country code in an [ISO-3166 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format." + }, + { + "name": "postalCode", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Postal or zip code." + }, + { + "name": "streetAddress", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.LocationsStreetAddress" + } + ], + "doc": "Street address. Includes street name, number, and apartment number in separate fields." + }, + { + "name": "subdivision", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Code for a subdivision (such as state, prefecture, or province) in [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2) format." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "LocationsAddressLocation", + "members": [ + { + "name": "latitude", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Latitude of the location. Must be between -90 and 90." + }, + { + "name": "longitude", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Longitude of the location. Must be between -180 and 180." + } + ], + "docs": { + "description": [ + "Address Geolocation" + ] + } + }, + { + "name": "LocationsLocation", + "members": [ + { + "name": "_id", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Location ID." + }, + { + "name": "address", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.LocationsAddress" + } + ], + "doc": "Address." + }, + { + "name": "archived", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the location is archived. Archived locations can't be updated.\n__Note:__ [Archiving a location](https://dev.wix.com/api/rest/business-info/locations/archive-location)\ndoesn't affect its `status`." + }, + { + "name": "businessSchedule", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.BusinessSchedule" + } + ], + "doc": "Business schedule. Array of weekly recurring time periods when the location is open for business. Limited to 100 time periods.\n\n__Note:__ Not supported by Wix Bookings.\n" + }, + { + "name": "default", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether this is the default location. There can only be one default location per site. The default location can't be archived." + }, + { + "name": "description", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Location description." + }, + { + "name": "email", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Email address." + }, + { + "name": "fax", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Fax number." + }, + { + "name": "locationType", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Location type. **Note:** Currently not supported." + }, + { + "name": "name", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Location name." + }, + { + "name": "phone", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Phone number." + }, + { + "name": "revision", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Revision number, which increments by 1 each time the location is updated.\nTo prevent conflicting changes, the existing revision must be used when updating a location." + }, + { + "name": "status", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Location status. Defaults to `ACTIVE`.\n__Note:__ [Archiving a location](https://dev.wix.com/api/rest/business-info/locations/archive-location)\ndoesn't affect the location's status. `INACTIVE` is currently not supported." + }, + { + "name": "timeZone", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Timezone in `America/New_York` format." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "LocationsStreetAddress", + "members": [ + { + "name": "apt", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Apartment number." + }, + { + "name": "name", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Street name." + }, + { + "name": "number", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Street number." + } + ], + "docs": { + "description": [ + "Street address. Includes street name, number, and apartment number in separate fields." + ] + } + }, + { + "name": "PagingMetadataV2", + "members": [ + { + "name": "count", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Number of items returned in the response." + }, + { + "name": "cursors", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.CommonCursors" + } + ], + "doc": "Cursors to navigate through the result pages using `next` and `prev`. Returned if cursor paging is used." + }, + { + "name": "offset", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Offset that was requested." + }, + { + "name": "tooManyToCount", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Flag that indicates the server failed to calculate the `total` field." + }, + { + "name": "total", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Total number of items that match the query. Returned if offset paging is used and the `tooManyToCount` flag is not set." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Participant", + "members": [ + { + "name": "_id", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Participant ID. Currently represents the booking.id." + }, + { + "name": "approvalStatus", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Approval status for the participant.\n\nSupported values:\n- `PENDING`: Pending business approval.\n- `APPROVED`: Approved by the business.\n- `DECLINED`: Declined by the business.\n" + }, + { + "name": "contactId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Contact ID." + }, + { + "name": "email", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Participant's email address." + }, + { + "name": "inherited", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the participant was inherited from the schedule, as opposed to being booked directly to the session." + }, + { + "name": "name", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Participant's name." + }, + { + "name": "partySize", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Group or party size. The number of people attending. Defaults to 0. Maximum is 250." + }, + { + "name": "phone", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Participant's phone number." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ParticipantNotification", + "members": [ + { + "name": "message", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Custom message to send to the participants about the changes to the booking." + }, + { + "name": "notifyParticipants", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether to notify participants about the change.\n\nDefault: `false`\n" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Price", + "members": [ + { + "name": "amount", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Required payment amount." + }, + { + "name": "currency", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Currency in which the amount is quoted." + }, + { + "name": "downPayAmount", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Amount of a down payment or deposit as part of the transaction." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "QueryEventSessionInstancesOptions", + "members": [ + { + "name": "fromDate", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "Start of the time range for which sessions are returned\nin [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601#Coordinated_Universal_Time_(UTC)).\nRequired, if `query.cursorPaging` is omitted.\n`end.timestamp` of all returned sessions is greater than or equal to `fromDate`." + }, + { + "name": "query", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.CommonQueryV2" + } + ], + "doc": "Information about filters, paging, and returned fields." + }, + { + "name": "toDate", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "End of the time range for which sessions are returned\nin [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601#Coordinated_Universal_Time_(UTC)).\nRequired, if `query.cursorPaging` is omitted.\n`start.timestamp` of all returned sessions is less than or equal to `toDate`." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "QueryEventSessionInstancesRequest", + "members": [ + { + "name": "fromDate", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "Start of the time range for which sessions are returned\nin [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601#Coordinated_Universal_Time_(UTC)).\nRequired, if `query.cursorPaging` is omitted.\n`end.timestamp` of all returned sessions is greater than or equal to `fromDate`." + }, + { + "name": "query", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.CommonQueryV2" + } + ], + "doc": "Information about filters, paging, and returned fields." + }, + { + "name": "toDate", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "End of the time range for which sessions are returned\nin [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601#Coordinated_Universal_Time_(UTC)).\nRequired, if `query.cursorPaging` is omitted.\n`start.timestamp` of all returned sessions is less than or equal to `toDate`." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "QueryEventSessionInstancesResponse", + "members": [ + { + "name": "pagingMetadata", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.PagingMetadataV2" + } + ], + "doc": "Paging metadata." + }, + { + "name": "sessions", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Sessions.Session" + } + ] + } + } + ], + "doc": "Retrieved sessions." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "QuerySessionsOptions", + "members": [ + { + "name": "includeExternal", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether to include sessions imported from connected external calendars in the results.\n\nDefault: `false`.\n" + }, + { + "name": "instances", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether to return only single session instances and instances of recurring sessions.\n\nIf `true`, only single session instances and instances of recurring sessions are returned.\n\nIf `false`, only recurring session definitions are returned. **Note:** Cursor pagination is not supported for recurring session definition queries.\n\nDefault: `true`.\n" + }, + { + "name": "type", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Type of sessions to return.\n\n- `EVENT`: Reserved period of time on the schedule. For example, an appointment, class, course, or blocked time. Events are visible in the Dashboard in the Bookings app's [Booking Calendar](https://support.wix.com/en/article/wix-bookings-about-the-wix-bookings-calendar) page.\n- `WORKING_HOURS`: Placeholder for available time on a resource’s schedule.\n\nDefault: `UNDEFINED`. This returns sessions of all types.\n" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "QuerySessionsRequest", + "members": [ + { + "name": "fromDate", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "Start of the time range for which sessions are returned, in [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601#Coordinated_Universal_Time_(UTC)).\n\nSessions that begin before the `fromDate` but end after it are included in the results. For recurring session definitions, this means the `start` value is before the `fromDate` and the `UNTIL` value in the `recurrence` property is after the `fromDate`.\n\nRequired, unless `query.cursorPaging` is provided.\n" + }, + { + "name": "includeExternal", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether to include sessions imported from connected external calendars in the results.\n\nDefault: `false`.\n" + }, + { + "name": "instances", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether to return only single session instances and instances of recurring sessions.\n\nIf `true`, only single session instances and instances of recurring sessions are returned.\n\nIf `false`, only recurring session definitions are returned. **Note:** Cursor pagination is not supported for recurring session definition queries.\n\nDefault: `true`.\n" + }, + { + "name": "query", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.QueryV2" + } + ], + "doc": "Query options." + }, + { + "name": "toDate", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "End of the time range for which sessions are returned, in [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601#Coordinated_Universal_Time_(UTC)).\n\nSessions that begin before the `toDate` but end after it are included in the results. For recurring session definitions, this means the `start` value is before the `toDate` and the `UNTIL` value in the `recurrence` property is after the `toDate`.\n\nRequired, unless `query.cursorPaging` is provided.\n\nMax: 1 year after `fromDate` for session instance queries. This limit doesn't apply to recurring session definition queries.\n" + }, + { + "name": "type", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Type of sessions to return.\n\n- `EVENT`: Reserved period of time on the schedule. For example, an appointment, class, course, or blocked time. Events are visible in the Dashboard in the Bookings app's [Booking Calendar](https://support.wix.com/en/article/wix-bookings-about-the-wix-bookings-calendar) page.\n- `WORKING_HOURS`: Placeholder for available time on a resource’s schedule.\n\nDefault: `UNDEFINED`. This returns sessions of all types.\n" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "QuerySessionsResponse", + "members": [ + { + "name": "pagingMetadata", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.CursorPagingMetadata" + } + ], + "doc": "Paging metadata." + }, + { + "name": "sessions", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Sessions.Session" + } + ] + } + } + ], + "doc": "List of sessions matching the query." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "QueryV2", + "members": [ + { + "name": "cursorPaging", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.CursorPaging" + } + ], + "doc": "Cursor token pointing to a page of results.\nNot used in the first request.\nFollowing requests use the cursor token and not `filter`." + }, + { + "name": "fieldsets", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Predefined sets of fields to return.\n- `NO_PI`: Returns session objects without personal information.\n- `ALL_PI`: Returns complete session objects, including personal information.\n\nDefault: `NO_PI`\n" + }, + { + "name": "filter", + "optional": true, + "type": [ + { + "nativeType": "Object" + } + ], + "doc": "Filter object. For field support for filters, see\n[Sessions: Supported Filters](./filtering).\nSee [API Query Language](https://dev.wix.com/api/rest/getting-started/api-query-language) for more information about querying with filters." + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfQueryV2PagingMethodOneOf", + "members": [ + "cursorPaging" + ] + } + ] + }, + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "QueryV2PagingMethodOneOf", + "members": [ + { + "name": "cursorPaging", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.CursorPaging" + } + ], + "doc": "Cursor token pointing to a page of results.\nNot used in the first request.\nFollowing requests use the cursor token and not `filter`." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Rate", + "members": [ + { + "name": "labeledPriceOptions", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Record", + "typeParams": [ + { + "nativeType": "string" + }, + { + "referenceType": "wix-bookings-v2.Sessions.Price" + } + ] + } + } + ], + "doc": "Mapping between a named price option, for example, adult or child prices, and the price, currency, and down payment amount.\nWhen present in an update request, the `default_varied_price` is ignored to support backward compatibility." + }, + { + "name": "priceText", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Textual price information used when **Price Per Session** is set to **Custom Price** in the app's service details page.\nWhen present in an update request, the `default_varied_price` is ignored to support backward compatibility." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ReplayCompleted", + "members": [ + { + "name": "totalSessions", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "The (minimum) number of sessions that were replayed." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Session", + "members": [ + { + "name": "_id", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Session ID." + }, + { + "name": "affectedSchedules", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Sessions.LinkedSchedule" + } + ] + } + } + ], + "doc": "An object specifying a list of schedules and the way each schedule's availability is affected by the session. For example, the schedule of an instructor is affected by sessions of the class that they instruct.\nThe array is inherited from the schedule and can be overridden even if the session is a recurring session." + }, + { + "name": "calendarConference", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.CalendarConference" + } + ], + "doc": "A conference created for the session according to the details set in the schedule's conference provider information.\nIf the session is a recurring session, this field is inherited from the schedule." + }, + { + "name": "capacity", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Maximum number of participants that can be added to the session. Defaults to the schedule capacity.\nThe value is inherited from the schedule and can be overridden unless the session is a recurring session." + }, + { + "name": "end", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.CalendarDateTime" + } + ], + "doc": "An object specifying the end date and time of the session. The `end` time must be after the `start` time and be same type as `start`.\nIf the session is a recurring session, `end` must contain a `localDateTime`." + }, + { + "name": "externalCalendarOverrides", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.ExternalCalendarOverrides" + } + ], + "doc": "Title and description values to override session defaults when syncing to an external calendar.\nLearn more about [syncing calendars](https://support.wix.com/en/article/wix-bookings-important-information-about-syncing-google-calendars-with-wix-bookings).\nThe value is inherited from the schedule and can be overridden unless the session is a recurring session." + }, + { + "name": "inheritedFields", + "readOnly": true, + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "A list of properties for which values were inherited from the schedule.\nThis does not include participants that were inherited from the schedule." + }, + { + "name": "instanceOfRecurrence", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "A string representing a recurrence rule (RRULE) if the session is an instance of a recurrence pattern.\nEmpty when the session is not an instance of a recurrence rule, or if the session defines a recurrence pattern, and `recurrence` is not empty." + }, + { + "name": "location", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.Location" + } + ], + "doc": "An object describing the location where the session takes place.\nDefaults to the schedule location.\nFor single sessions, `session.location.businessLocation` can only be provided for locations that are defined in the schedule using `schedule.location` or `schedule.availability.locations`." + }, + { + "name": "notes", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Additional information about the session.\nNotes are not supported for recurring sessions." + }, + { + "name": "originalStart", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "Original start date and time of the session in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601#Coordinated_Universal_Time_(UTC)) format." + }, + { + "name": "participants", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Sessions.Participant" + } + ] + } + } + ], + "doc": "List of participants booked for the session.\nThe list includes participants who have registered for this specific session, and participants who have registered for a schedule that includes this session.\nIf the session is a recurring session, this field must be empty." + }, + { + "name": "rate", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.Rate" + } + ], + "doc": "The price options offered for the session. Defaults to the schedule rate.\nThe value is inherited from the schedule and can be overridden unless the session is a recurring session." + }, + { + "name": "recurrence", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "A string representing a recurrence rule (RRULE) for a recurring session, as defined in [iCalendar RFC 5545](https://icalendar.org/iCalendar-RFC-5545/3-3-10-recurrence-rule.html).\nIf the session is an instance of a recurrence pattern, the `instanceOfRecurrence` property will be contain the recurrence rule and this property will be empty.\nThe RRULE defines a rule for repeating a session.\nSupported parameters are:\n\n|Keyword|Description|Supported values|\n|--|--|---|\n|`FREQ`|The frequency at which the session is recurs. Required.|`WEEKLY`|\n|`INTERVAL`|How often, in terms of `FREQ`, the session recurs. Default is 1. Optional.|\n|`UNTIL`|The UTC end date and time of the recurrence. Optional.|\n|`BYDAY`|Day of the week when the event should recur. Required.|One of: `MO`, `TU`, `WE`, `TH`, `FR`, `SA`, `SU`|\n\n\nFor example, a session that repeats every second week on a Monday until January 7, 2022 at 8 AM:\n`\"FREQ=WEEKLY;INTERVAL=2;BYDAY=MO;UNTIL=20220107T080000Z\"`\n\n\n" + }, + { + "name": "recurringIntervalId", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Recurring interval ID. Defined when a session will be a recurring session. read-only. Optional.\nFor exmaple, when creating a class service with recurring sessions, you add a recurrence rule to create recurring sessions.\nThis field is omitted for single sessions or instances of recurring sessions.\nSpecified when the session was originally generated from a schedule recurring interval.\nDeprecated. Use `recurringSessionId`." + }, + { + "name": "recurringSessionId", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The ID of the recurring session if this session is an instance of a recurrence. Use this ID to update the recurrence and all of the instances." + }, + { + "name": "scheduleId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the schedule that the session belongs to." + }, + { + "name": "scheduleOwnerId", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the resource or service that the session's schedule belongs to." + }, + { + "name": "start", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.CalendarDateTime" + } + ], + "doc": "An object specifying the start date and time of the session. If the session is a recurring session, `start` must contain a `localDateTime`." + }, + { + "name": "status", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Session status.\n\nSupported values:\n- `CONFIRMED`: Default value.\n- `CANCELLED`: The session was deleted." + }, + { + "name": "tags", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Tags for the session.\nThe value is inherited from the schedule and can be overridden unless the session is a recurring session." + }, + { + "name": "timeReservedAfter", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Time reserved after the session end time, derived from the schedule availability constraints and the time between slots. Read-only.\nIf the session is a recurring session, this field must be empty." + }, + { + "name": "title", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Session title.\nThe value is inherited from the schedule and can be overridden unless the session is a recurring session." + }, + { + "name": "totalNumberOfParticipants", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "The number of participants booked for the session. Read-only.\nCalculated as the sum of the party sizes." + }, + { + "name": "type", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Session type.\n\nSupported values:\n- `EVENT`: Reserved period of time on the schedule. For example, an appointment, class, course, or blocked time. Events are visible in the Dashboard in the Bookings app's [Booking Calendar](https://support.wix.com/en/article/wix-bookings-about-the-wix-bookings-calendar) page.\n- `WORKING_HOURS`: Placeholder for available time on a resource’s schedule.\n" + }, + { + "name": "version", + "readOnly": true, + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.Version" + } + ], + "doc": "The session version.\nComposed by the schedule, session and participants versions." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "SessionAdded", + "members": [ + { + "name": "session", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.Session" + } + ], + "doc": "The session which was added within the feed window." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "SessionAddedOrUpdated", + "members": [ + { + "name": "previousSession", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.Session" + } + ], + "doc": "Optionally, the previous session." + }, + { + "name": "session", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.Session" + } + ], + "doc": "The session which was added or updated within the view." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "SessionRemoved", + "members": [ + { + "name": "previousSession", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.Session" + } + ], + "doc": "Optionally, the previous session." + }, + { + "name": "session", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.Session" + } + ], + "doc": "The updated session which was removed from the view." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ShortenCacheRequest", + "members": [ + { + "name": "fromDate", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "The new cache from date to set.\nMust be after than the current from date." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ShortenCacheResponse", + "members": [ + { + "name": "cacheInfo", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.CacheInfo" + } + ], + "doc": "The updated cache." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "SpecialHourPeriod", + "members": [ + { + "name": "comment", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Additional info about the exception. For example, \"We close earlier on New Year's Eve.\"" + }, + { + "name": "endDate", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "End date and time of the exception in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format and [Coordinated Universal Time (UTC)](https://en.wikipedia.org/wiki/Coordinated_Universal_Time)." + }, + { + "name": "isClosed", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the business is closed (or the service is not available) during the exception.\n\nDefault: `true`.\n" + }, + { + "name": "startDate", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Start date and time of the exception in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format and [Coordinated Universal Time (UTC)](https://en.wikipedia.org/wiki/Coordinated_Universal_Time)." + } + ], + "docs": { + "description": [ + "Exception to the business's regular hours. The business can be open or closed during the exception." + ] + } + }, + { + "name": "StreetAddress", + "members": [ + { + "name": "apt", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Apartment number." + }, + { + "name": "name", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Street name." + }, + { + "name": "number", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Street number." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Subdivision", + "members": [ + { + "name": "code", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Subdivision code. Usually state, region, prefecture or province code, according to [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2)." + }, + { + "name": "name", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Subdivision full name." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "TimePeriod", + "members": [ + { + "name": "closeDay", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Day of the week the period ends on." + }, + { + "name": "closeTime", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Time the period ends in 24-hour [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) extended format. Valid values are `00:00` to `24:00`, where `24:00` represents\nmidnight at the end of the specified day.\n\n__Note:__ If `openDay` and `closeDay` specify the same day of the week `closeTime` must be later than `openTime`.\n" + }, + { + "name": "openDay", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Day of the week the period starts on." + }, + { + "name": "openTime", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Time the period starts in 24-hour [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) extended format. Valid values are `00:00` to `24:00`, where `24:00` represents\nmidnight at the end of the specified day." + } + ], + "docs": { + "description": [ + "Weekly recurring time periods when the business is regularly open or the service is available." + ] + } + }, + { + "name": "UncacheRequest", + "members": [], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "UncacheResponse", + "members": [], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "UpdateSession", + "members": [ + { + "name": "_id", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Session ID." + }, + { + "name": "affectedSchedules", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Sessions.LinkedSchedule" + } + ] + } + } + ], + "doc": "An object specifying a list of schedules and the way each schedule's availability is affected by the session. For example, the schedule of an instructor is affected by sessions of the class that they instruct.\nThe array is inherited from the schedule and can be overridden even if the session is a recurring session." + }, + { + "name": "calendarConference", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.CalendarConference" + } + ], + "doc": "A conference created for the session according to the details set in the schedule's conference provider information.\nIf the session is a recurring session, this field is inherited from the schedule." + }, + { + "name": "capacity", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Maximum number of participants that can be added to the session. Defaults to the schedule capacity.\nThe value is inherited from the schedule and can be overridden unless the session is a recurring session." + }, + { + "name": "end", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.CalendarDateTime" + } + ], + "doc": "An object specifying the end date and time of the session. The `end` time must be after the `start` time and be same type as `start`.\nIf the session is a recurring session, `end` must contain a `localDateTime`." + }, + { + "name": "externalCalendarOverrides", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.ExternalCalendarOverrides" + } + ], + "doc": "Title and description values to override session defaults when syncing to an external calendar.\nLearn more about [syncing calendars](https://support.wix.com/en/article/wix-bookings-important-information-about-syncing-google-calendars-with-wix-bookings).\nThe value is inherited from the schedule and can be overridden unless the session is a recurring session." + }, + { + "name": "inheritedFields", + "readOnly": true, + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "A list of properties for which values were inherited from the schedule.\nThis does not include participants that were inherited from the schedule." + }, + { + "name": "instanceOfRecurrence", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "A string representing a recurrence rule (RRULE) if the session is an instance of a recurrence pattern.\nEmpty when the session is not an instance of a recurrence rule, or if the session defines a recurrence pattern, and `recurrence` is not empty." + }, + { + "name": "location", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.Location" + } + ], + "doc": "An object describing the location where the session takes place.\nDefaults to the schedule location.\nFor single sessions, `session.location.businessLocation` can only be provided for locations that are defined in the schedule using `schedule.location` or `schedule.availability.locations`." + }, + { + "name": "notes", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Additional information about the session.\nNotes are not supported for recurring sessions." + }, + { + "name": "originalStart", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "Original start date and time of the session in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601#Coordinated_Universal_Time_(UTC)) format." + }, + { + "name": "participants", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Sessions.Participant" + } + ] + } + } + ], + "doc": "List of participants booked for the session.\nThe list includes participants who have registered for this specific session, and participants who have registered for a schedule that includes this session.\nIf the session is a recurring session, this field must be empty." + }, + { + "name": "rate", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.Rate" + } + ], + "doc": "The price options offered for the session. Defaults to the schedule rate.\nThe value is inherited from the schedule and can be overridden unless the session is a recurring session." + }, + { + "name": "recurrence", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "A string representing a recurrence rule (RRULE) for a recurring session, as defined in [iCalendar RFC 5545](https://icalendar.org/iCalendar-RFC-5545/3-3-10-recurrence-rule.html).\nIf the session is an instance of a recurrence pattern, the `instanceOfRecurrence` property will be contain the recurrence rule and this property will be empty.\nThe RRULE defines a rule for repeating a session.\nSupported parameters are:\n\n|Keyword|Description|Supported values|\n|--|--|---|\n|`FREQ`|The frequency at which the session is recurs. Required.|`WEEKLY`|\n|`INTERVAL`|How often, in terms of `FREQ`, the session recurs. Default is 1. Optional.|\n|`UNTIL`|The UTC end date and time of the recurrence. Optional.|\n|`BYDAY`|Day of the week when the event should recur. Required.|One of: `MO`, `TU`, `WE`, `TH`, `FR`, `SA`, `SU`|\n\n\nFor example, a session that repeats every second week on a Monday until January 7, 2022 at 8 AM:\n`\"FREQ=WEEKLY;INTERVAL=2;BYDAY=MO;UNTIL=20220107T080000Z\"`\n\n\n" + }, + { + "name": "recurringIntervalId", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Recurring interval ID. Defined when a session will be a recurring session. read-only. Optional.\nFor exmaple, when creating a class service with recurring sessions, you add a recurrence rule to create recurring sessions.\nThis field is omitted for single sessions or instances of recurring sessions.\nSpecified when the session was originally generated from a schedule recurring interval.\nDeprecated. Use `recurringSessionId`." + }, + { + "name": "recurringSessionId", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The ID of the recurring session if this session is an instance of a recurrence. Use this ID to update the recurrence and all of the instances." + }, + { + "name": "scheduleId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the schedule that the session belongs to." + }, + { + "name": "scheduleOwnerId", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the resource or service that the session's schedule belongs to." + }, + { + "name": "start", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.CalendarDateTime" + } + ], + "doc": "An object specifying the start date and time of the session. If the session is a recurring session, `start` must contain a `localDateTime`." + }, + { + "name": "status", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Session status.\n\nSupported values:\n- `CONFIRMED`: Default value.\n- `CANCELLED`: The session was deleted." + }, + { + "name": "tags", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Tags for the session.\nThe value is inherited from the schedule and can be overridden unless the session is a recurring session." + }, + { + "name": "timeReservedAfter", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Time reserved after the session end time, derived from the schedule availability constraints and the time between slots. Read-only.\nIf the session is a recurring session, this field must be empty." + }, + { + "name": "title", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Session title.\nThe value is inherited from the schedule and can be overridden unless the session is a recurring session." + }, + { + "name": "totalNumberOfParticipants", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "The number of participants booked for the session. Read-only.\nCalculated as the sum of the party sizes." + }, + { + "name": "type", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Session type.\n\nSupported values:\n- `EVENT`: Reserved period of time on the schedule. For example, an appointment, class, course, or blocked time. Events are visible in the Dashboard in the Bookings app's [Booking Calendar](https://support.wix.com/en/article/wix-bookings-about-the-wix-bookings-calendar) page.\n- `WORKING_HOURS`: Placeholder for available time on a resource’s schedule.\n" + }, + { + "name": "version", + "readOnly": true, + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.Version" + } + ], + "doc": "The session version.\nComposed by the schedule, session and participants versions." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "UpdateSessionOptions", + "members": [ + { + "name": "fieldmask", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Field mask of fields to update." + }, + { + "name": "participantNotification", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.ParticipantNotification" + } + ], + "doc": "Whether to notify participants about the change, and an optional custom message." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "UpdateSessionRequest", + "members": [ + { + "name": "fieldmask", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Field mask of fields to update." + }, + { + "name": "participantNotification", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.ParticipantNotification" + } + ], + "doc": "Whether to notify participants about the change, and an optional custom message." + }, + { + "name": "session", + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.Session" + } + ], + "doc": "The session to update." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "UpdateSessionResponse", + "members": [ + { + "name": "session", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.Session" + } + ], + "doc": "The updated session." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Version", + "members": [ + { + "name": "number", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Incremental version number, which is updated on each change to the session or on changes affecting the session." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "WindowExtended", + "members": [ + { + "name": "windowEndDate", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "The updated window end date." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "WindowMoved", + "members": [ + { + "name": "edge", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "The updated window edge." + }, + { + "name": "windowVersion", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "The window version." + } + ], + "docs": { + "description": [ + "Deprecated. Please use `window_extended` instead." + ] + } + } + ] +} diff --git a/wix-bookings-v2/wix-bookings-v2/Sessions/SessionsQueryBuilder.service.json b/wix-bookings-v2/wix-bookings-v2/Sessions/SessionsQueryBuilder.service.json new file mode 100644 index 0000000000..26a45c80fa --- /dev/null +++ b/wix-bookings-v2/wix-bookings-v2/Sessions/SessionsQueryBuilder.service.json @@ -0,0 +1,1066 @@ +{ + "name": "SessionsQueryBuilder", + "memberOf": "wix-bookings-v2.Sessions", + "mixes": [], + "callbacks": [], + "extra": {}, + "clientId": "wix-bookings.v2-session.sessions.sessions-query-builder", + "docs": {}, + "relatedGuides": [], + "properties": [], + "operations": [ + { + "name": "ascending", + "params": [ + { + "name": "propertyNames", + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Properties used in the sort. To sort by multiple properties, pass properties as additional arguments.", + "required": false + } + ], + "requiredFields": [], + "ret": { + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.SessionsQueryBuilder" + } + ], + "doc": null + }, + "docs": { + "description": [] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "descending", + "params": [ + { + "name": "propertyNames", + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Properties used in the sort. To sort by multiple properties, pass properties as additional arguments.", + "required": false + } + ], + "requiredFields": [], + "ret": { + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.SessionsQueryBuilder" + } + ], + "doc": null + }, + "docs": { + "description": [] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "eq", + "params": [ + { + "name": "propertyName", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Property whose value is compared with `value`.", + "required": false + }, + { + "name": "value", + "type": [ + { + "nativeType": "any" + } + ], + "doc": "Value to compare against.", + "required": false + } + ], + "requiredFields": [], + "ret": { + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.SessionsQueryBuilder" + } + ], + "doc": null + }, + "docs": { + "summary": "Refines a query to match items where the specified property equals the specified value.", + "description": [ + "The `eq()` function refines a `SessionsQueryBuilder` to match only items where the value of the specified `propertyName` equals the specified `value`.", + "`eq()` matches only values of the same type. For example, `0` stored as a number doesn't match `'0'` stored as a string.", + "Matching strings with `eq()` is case-sensitive, so `'text'` isn't equal to `'Text'`." + ], + "examples": [ + { + "title": "Add an `eq` filter to a query", + "body": [ + "const query = sessions.querySessions.eq('_id', '\"some-id\"');", + "" + ] + }, + { + "title": "Create a query, add an `eq` filter, and run it", + "body": [ + "import { sessions } from 'wix-bookings.v2';", + "", + "export async function myQueryFunction() {", + " const results = await sessions.querySessions().eq('_id', '\"some-id\"').find();", + "", + " if (results.items.length > 0) {", + " const items = results.items;", + " const firstItem = items[0];", + " const pageSize = results.pageSize;", + " const hasNext = results.hasNext();", + " const hasPrev = results.hasPrev();", + " const length = results.length;", + " const query = results.query;", + "", + " return items;", + " } else {", + " // Handle if no matching items found", + " }", + "}", + "" + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "exists", + "params": [ + { + "name": "propertyName", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "", + "required": false + }, + { + "name": "value", + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "", + "required": false + } + ], + "requiredFields": [], + "ret": { + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.SessionsQueryBuilder" + } + ], + "doc": null + }, + "docs": { + "summary": "", + "description": [], + "examples": [] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "find", + "params": [], + "requiredFields": [], + "ret": { + "type": [ + { + "complexType": { + "nativeType": "Promise", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Sessions.SessionsQueryResult" + } + ] + } + } + ], + "doc": null + }, + "docs": { + "summary": "Returns the filtered query results.", + "description": [ + "The `find()` function returns a Promise that resolves to the query results and metadata.", + "The Promise is rejected if `find()` is called with insufficient permissions or if any of the previous functions used to refine the query are invalid." + ], + "examples": [ + { + "title": "Run a query with no filters", + "body": [ + "const query = sessions.querySessions.find();", + "" + ] + }, + { + "title": "Perform a `find` on a query", + "body": [ + "import { sessions } from 'wix-bookings.v2';", + "", + "export async function myQueryFunction() {", + " const results = await sessions.querySessions().find();", + "", + " if (results.items.length > 0) {", + " const items = results.items;", + " const firstItem = items[0];", + " const pageSize = results.pageSize;", + " const hasNext = results.hasNext();", + " const hasPrev = results.hasPrev();", + " const length = results.length;", + " const query = results.query;", + "", + " return items;", + " } else {", + " // Handle if no matching items found", + " }", + "}", + "" + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "ge", + "params": [ + { + "name": "propertyName", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Property whose value is compared with `value`.", + "required": false + }, + { + "name": "value", + "type": [ + { + "nativeType": "any" + } + ], + "doc": "Value to compare against.", + "required": false + } + ], + "requiredFields": [], + "ret": { + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.SessionsQueryBuilder" + } + ], + "doc": null + }, + "docs": { + "summary": "Refines a query to match items where the specified property is greater than or equal to the specified value.", + "description": [ + "The `ge()` function refines a `SessionsQueryBuilder` to match only items where the value of the specified `propertyName` is greater than or equal to the specified `value`.", + "`ge()` matches only values of the same type. For example, `0` stored as a number doesn't match `'0'` stored as a string.", + "If a property contains a number stored as a string (for example, `'0'`), that value is compared alphabetically and not numerically. If a property doesn't have a value, that value is ranked lowest.", + "The following types of properties can be compared:", + "- Number: Compares numerically.", + "- Date: Compares JavaScript Date objects. ", + "- String: Compares lexicographically, so `'abc'` is greater than `'ABC'`." + ], + "examples": [ + { + "title": "Add a `ge` filter to a query", + "body": [ + "const query = sessions.querySessions.ge('remainingCapacity', '');", + "" + ] + }, + { + "title": "Create a query, add a `ge` filter, and run it", + "body": [ + "import { sessions } from 'wix-bookings.v2';", + "", + "export async function myQueryFunction() {", + " const results = await sessions", + " .querySessions()", + " .ge('remainingCapacity', '')", + " .find();", + "", + " if (results.items.length > 0) {", + " const items = results.items;", + " const firstItem = items[0];", + " const pageSize = results.pageSize;", + " const hasNext = results.hasNext();", + " const hasPrev = results.hasPrev();", + " const length = results.length;", + " const query = results.query;", + "", + " return items;", + " } else {", + " // Handle if no matching items found", + " }", + "}", + "" + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "gt", + "params": [ + { + "name": "propertyName", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Property whose value is compared with `value`.", + "required": false + }, + { + "name": "value", + "type": [ + { + "nativeType": "any" + } + ], + "doc": "Value to compare against.", + "required": false + } + ], + "requiredFields": [], + "ret": { + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.SessionsQueryBuilder" + } + ], + "doc": null + }, + "docs": { + "summary": "Refines a query to match items where the specified property is greater than the specified value.", + "description": [ + "The `gt()` function refines a `SessionsQueryBuilder` to match only items where the value of the specified `propertyName` is greater than the specified `value`.", + "`gt()` matches only values of the same type. For example, `0` stored as a number doesn't match `'0'` stored as a string.", + "If a property contains a number stored as a string (for example, `'0'`), that value is compared alphabetically and not numerically. If a property doesn't have a value, that value is ranked lowest.", + "The following types of properties can be compared:", + "- Number: Compares numerically.", + "- Date: Compares JavaScript Date objects. ", + "- String: Compares lexicographically, so `'abc'` is greater than `'ABC'`." + ], + "examples": [ + { + "title": "Add a `gt` filter to a query", + "body": [ + "const query = sessions.querySessions.gt('remainingCapacity', '');", + "" + ] + }, + { + "title": "Create a query, add a `gt` filter, and run it", + "body": [ + "import { sessions } from 'wix-bookings.v2';", + "", + "export async function myQueryFunction() {", + " const results = await sessions", + " .querySessions()", + " .gt('remainingCapacity', '')", + " .find();", + "", + " if (results.items.length > 0) {", + " const items = results.items;", + " const firstItem = items[0];", + " const pageSize = results.pageSize;", + " const hasNext = results.hasNext();", + " const hasPrev = results.hasPrev();", + " const length = results.length;", + " const query = results.query;", + "", + " return items;", + " } else {", + " // Handle if no matching items found", + " }", + "}", + "" + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "hasAll", + "params": [ + { + "name": "propertyName", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Property whose value is compared with `values`.", + "required": false + }, + { + "name": "value", + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "any" + } + ] + } + } + ], + "doc": "", + "required": false + } + ], + "requiredFields": [], + "ret": { + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.SessionsQueryBuilder" + } + ], + "doc": null + }, + "docs": { + "summary": "Refines a query to match items whose specified property contains all of the specified values.", + "description": [ + "The `hasAll()` function refines a `SessionsQueryBuilder` to match only items where the value of the specified `propertyName` equals all of the specified `values`.", + "Matching strings with `hasAll()` is case-sensitive, so `'text'` isn't equal to `'Text'`.", + "If the specified property is an array, `hasAll()` matches if that array's elements match all of the specified values." + ], + "examples": [ + { + "title": "Add a `hasAll` filter to a query", + "body": [ + "const query = sessions.querySessions.hasAll('labelIds', [", + " 'red',", + " 'blue',", + " 'purple',", + "]);", + "" + ] + }, + { + "title": "Create a query, add a `hasAll` filter, and run it", + "body": [ + "import { sessions } from 'wix-bookings.v2';", + "", + "export async function myQueryFunction() {", + " const results = await sessions", + " .querySessions()", + " .hasAll('labelIds', ['red', 'blue', 'purple'])", + " .find();", + "", + " if (results.items.length > 0) {", + " const items = results.items;", + " const firstItem = items[0];", + " const pageSize = results.pageSize;", + " const hasNext = results.hasNext();", + " const hasPrev = results.hasPrev();", + " const length = results.length;", + " const query = results.query;", + "", + " return items;", + " } else {", + " // Handle if no matching items found", + " }", + "}", + "" + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "hasSome", + "params": [ + { + "name": "propertyName", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Property whose value is compared with `values`.", + "required": false + }, + { + "name": "value", + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "any" + } + ] + } + } + ], + "doc": "", + "required": false + } + ], + "requiredFields": [], + "ret": { + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.SessionsQueryBuilder" + } + ], + "doc": null + }, + "docs": { + "summary": "Refines a query to match items whose specified property contains any of the specified values.", + "description": [ + "The `hasSome()` function refines a `SessionsQueryBuilder` to match only items where the value of the specified `propertyName` equals any of the specified `values`.", + "Matching strings with `hasSome()` is case-sensitive, so `'text'` isn't equal to `'Text'`.", + "If the specified property is an array, `hasSome()` matches if any of that array's elements equal any of the specified values." + ], + "examples": [ + { + "title": "Add a `hasSome` filter to a query", + "body": [ + "const query = sessions.querySessions.hasSome('labelIds', [", + " 'red',", + " 'blue',", + " 'purple',", + "]);", + "" + ] + }, + { + "title": "Create a query, add a `hasSome` filter, and run it", + "body": [ + "import { sessions } from 'wix-bookings.v2';", + "", + "export async function myQueryFunction() {", + " const results = await sessions", + " .querySessions()", + " .hasSome('labelIds', ['red', 'blue', 'purple'])", + " .find();", + "", + " if (results.items.length > 0) {", + " const items = results.items;", + " const firstItem = items[0];", + " const pageSize = results.pageSize;", + " const hasNext = results.hasNext();", + " const hasPrev = results.hasPrev();", + " const length = results.length;", + " const query = results.query;", + "", + " return items;", + " } else {", + " // Handle if no matching items found", + " }", + "}", + "" + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "le", + "params": [ + { + "name": "propertyName", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Property whose value is compared with `value`.", + "required": false + }, + { + "name": "value", + "type": [ + { + "nativeType": "any" + } + ], + "doc": "Value to compare against.", + "required": false + } + ], + "requiredFields": [], + "ret": { + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.SessionsQueryBuilder" + } + ], + "doc": null + }, + "docs": { + "summary": "Refines a query to match items where the specified property is less than or equal to the specified value.", + "description": [ + "The `le()` function refines a `SessionsQueryBuilder` to match only items where the value of the specified `propertyName` is less than or equal to the specified `value`.", + "`le()` matches only values of the same type. For example, `0` stored as a number doesn't match `'0'` stored as a string.", + "If a property contains a number stored as a string (for example, `'0'`), that value is compared alphabetically and not numerically. If a property doesn't have a value, that value is ranked lowest.", + "The following types of properties can be compared:", + "- Number: Compares numerically.", + "- Date: Compares JavaScript Date objects. ", + "- String: Compares lexicographically, so `'ABC'` is less than `'abc'`." + ], + "examples": [ + { + "title": "Add an `le` filter to a query", + "body": [ + "const query = sessions.querySessions.le('capacity', '');", + "" + ] + }, + { + "title": "Create a query, add an `le` filter, and run it", + "body": [ + "import { sessions } from 'wix-bookings.v2';", + "", + "export async function myQueryFunction() {", + " const results = await sessions.querySessions().le('capacity', '').find();", + "", + " if (results.items.length > 0) {", + " const items = results.items;", + " const firstItem = items[0];", + " const pageSize = results.pageSize;", + " const hasNext = results.hasNext();", + " const hasPrev = results.hasPrev();", + " const length = results.length;", + " const query = results.query;", + "", + " return items;", + " } else {", + " // Handle if no matching items found", + " }", + "}", + "" + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "limit", + "params": [ + { + "name": "limit", + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Number of items to return, which is also the `pageSize` of the results object.", + "required": false + } + ], + "requiredFields": [], + "ret": { + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.SessionsQueryBuilder" + } + ], + "doc": null + }, + "docs": { + "summary": "Limits the number of items the query returns.", + "description": [ + "The `limit()` function defines the number of results a query returns in each page. Only one page of results is retrieved at a time.", + "You can use the `next()` and `prev()` functions to navigate the pages of a query result." + ], + "examples": [ + { + "title": "Add a `limit` to a query", + "body": [ + "const query = sessions.querySessions.limit(10);", + "" + ] + }, + { + "title": "Create a query, add a `limit`, and run it", + "body": [ + "import { sessions } from 'wix-bookings.v2';", + "", + "export async function myQueryFunction() {", + " const results = await sessions.querySessions().limit(10).find();", + "", + " if (results.items.length > 0) {", + " const items = results.items;", + " const firstItem = items[0];", + " const pageSize = results.pageSize;", + " const hasNext = results.hasNext();", + " const hasPrev = results.hasPrev();", + " const length = results.length;", + " const query = results.query;", + "", + " return items;", + " } else {", + " // Handle if no matching items found", + " }", + "}", + "" + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "lt", + "params": [ + { + "name": "propertyName", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Property whose value is compared with `value`.", + "required": false + }, + { + "name": "value", + "type": [ + { + "nativeType": "any" + } + ], + "doc": "Value to compare against.", + "required": false + } + ], + "requiredFields": [], + "ret": { + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.SessionsQueryBuilder" + } + ], + "doc": null + }, + "docs": { + "summary": "Refines a query to match items where the specified property is less than the specified value.", + "description": [ + "The `le()` function refines a `SessionsQueryBuilder` to match only items where the value of the specified `propertyName` is less than the specified `value`.", + "`le()` matches only values of the same type. For example, `0` stored as a number doesn't match `'0'` stored as a string.", + "If a property contains a number stored as a string (for example, `'0'`), that value is compared alphabetically and not numerically. If a property doesn't have a value, that value is ranked lowest.", + "The following types of properties can be compared:", + "- Number: Compares numerically.", + "- Date: Compares JavaScript Date objects. ", + "- String: Compares lexicographically, so `'ABC'` is less than `'abc'`." + ], + "examples": [ + { + "title": "Add an `lt` filter to a query", + "body": [ + "const query = sessions.querySessions.lt('capacity', '');", + "" + ] + }, + { + "title": "Create a query, add an `lt` filter, and run it", + "body": [ + "import { sessions } from 'wix-bookings.v2';", + "", + "export async function myQueryFunction() {", + " const results = await sessions.querySessions().lt('capacity', '').find();", + "", + " if (results.items.length > 0) {", + " const items = results.items;", + " const firstItem = items[0];", + " const pageSize = results.pageSize;", + " const hasNext = results.hasNext();", + " const hasPrev = results.hasPrev();", + " const length = results.length;", + " const query = results.query;", + "", + " return items;", + " } else {", + " // Handle if no matching items found", + " }", + "}", + "" + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "ne", + "params": [ + { + "name": "propertyName", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Property whose value is compared with `value`.", + "required": false + }, + { + "name": "value", + "type": [ + { + "nativeType": "any" + } + ], + "doc": "Value to compare against.", + "required": false + } + ], + "requiredFields": [], + "ret": { + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.SessionsQueryBuilder" + } + ], + "doc": null + }, + "docs": { + "summary": "Refines a query to match items where the specified property doesn't equal the specified value.", + "description": [ + "The `ne()` function refines a `SessionsQueryBuilder` to match only items where the value of the specified `propertyName` doesn't equal the specified `value`.", + "`ne()` matches only values of the same type. For example, `0` stored as a number doesn't match `'0'` stored as a string.", + "Matching strings with `ne()` is case-sensitive, so `'text'` isn't equal to `'Text'`." + ], + "examples": [ + { + "title": "Add an `ne` filter to a query", + "body": [ + "const query = sessions.querySessions.ne('_id', '\"some-id\"');", + "" + ] + }, + { + "title": "Create a query, add an `ne` filter, and run it", + "body": [ + "import { sessions } from 'wix-bookings.v2';", + "", + "export async function myQueryFunction() {", + " const results = await sessions.querySessions().ne('_id', '\"some-id\"').find();", + "", + " if (results.items.length > 0) {", + " const items = results.items;", + " const firstItem = items[0];", + " const pageSize = results.pageSize;", + " const hasNext = results.hasNext();", + " const hasPrev = results.hasPrev();", + " const length = results.length;", + " const query = results.query;", + "", + " return items;", + " } else {", + " // Handle if no matching items found", + " }", + "}", + "" + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "startsWith", + "params": [ + { + "name": "propertyName", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Property whose value is compared with `string`.", + "required": false + }, + { + "name": "value", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "", + "required": false + } + ], + "requiredFields": [], + "ret": { + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.SessionsQueryBuilder" + } + ], + "doc": null + }, + "docs": { + "summary": "Refines a query to match items where the specified property starts with the specified value.", + "description": [ + "The `startsWith()` function refines a `SessionsQueryBuilder` to match only items where the value of the specified `propertyName` starts with the specified `string`.", + "Matching with `startsWith()` is case-insensitive, so `'TEXT'` starts with `'tex'`.", + "You can use `startsWith()` only with a property whose value is a string." + ], + "examples": [ + { + "title": "Add a `startsWith` filter to a query", + "body": [ + "const query = sessions.querySessions.startsWith('title', 'L');", + "" + ] + }, + { + "title": "Create a query, add a `startsWith` filter, and run it", + "body": [ + "import { sessions } from 'wix-bookings.v2';", + "", + "export async function myQueryFunction() {", + " const results = await sessions.querySessions();", + " startsWith('title', 'L').find();", + "", + " if (results.items.length > 0) {", + " const items = results.items;", + " const firstItem = items[0];", + " const pageSize = results.pageSize;", + " const hasNext = results.hasNext();", + " const hasPrev = results.hasPrev();", + " const length = results.length;", + " const query = results.query;", + "", + " return items;", + " } else {", + " // Handle if no matching items found", + " }", + "}", + "" + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + } + ], + "messages": [] +} diff --git a/wix-bookings-v2/wix-bookings-v2/Sessions/SessionsQueryResult.service.json b/wix-bookings-v2/wix-bookings-v2/Sessions/SessionsQueryResult.service.json new file mode 100644 index 0000000000..003bf67d9e --- /dev/null +++ b/wix-bookings-v2/wix-bookings-v2/Sessions/SessionsQueryResult.service.json @@ -0,0 +1,382 @@ +{ + "name": "SessionsQueryResult", + "memberOf": "wix-bookings-v2.Sessions", + "mixes": [], + "callbacks": [], + "extra": {}, + "clientId": "wix-bookings.v2-session.sessions.sessions-query-result", + "docs": {}, + "relatedGuides": [], + "properties": [ + { + "name": "items", + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Sessions.Session" + } + ] + } + } + ], + "docs": { + "summary": "Returns an array of `sessions` items that match the query.", + "description": [ + "`items` contains the current page of results retrieved by the query.", + "If no results match the query, `items` is an empty array.", + "The page size is defined by the [`limit()`](#limit) function and can be retrieved using the [`pageSize`](#pagesize) property. You can use the [`next()`](#next) and [`prev()`](#prev) functions returned by `sessions` to navigate the pages of a query result." + ], + "examples": [ + { + "title": "Get `items` from a query result", + "body": [ + "const returnedItems = results.items;", + "" + ] + }, + { + "title": "Perform a query and get `items` from the result", + "body": [ + "import { sessions } from 'wix-bookings.v2';", + "", + "export async function myQueryFunction() {", + " const results = await sessions.querySessions().find();", + "", + " const returnedItems = results.items;", + "", + " if (returnedItems.length > 0) {", + " return items;", + " } else {", + " // Handle if no matching items found", + " }", + "}", + "" + ] + } + ] + } + }, + { + "name": "length", + "type": [ + { + "nativeType": "number" + } + ], + "docs": { + "summary": "Returns the number of items in the current page of results.", + "description": [ + "`length` returns just the number of items in the current page, not the total number of items that match the query. For the total number of items that match the query, see [`totalCount`](#totalcount).", + "The page size is defined by the [`limit()`](#limit) function and can be retrieved using the [`pageSize`](#pagesize) property. You can use the [`next()`](#next) and [`prev()`](#prev) functions returned by `sessions` to navigate the pages of a query result." + ], + "examples": [ + { + "title": "Get `length` from a query result", + "body": [ + "const resultLength = results.length;", + "" + ] + }, + { + "title": "Perform a query and get `length` from the result", + "body": [ + "import { sessions } from 'wix-bookings.v2';", + "", + "export async function myQueryFunction() {", + " const results = await sessions.querySessions().find();", + "", + " return results.length;", + "}", + "" + ] + } + ] + } + }, + { + "name": "pageSize", + "type": [ + { + "nativeType": "number" + } + ], + "docs": { + "summary": "Returns the requested page size.", + "description": [ + "`pageSize` returns the page size set in [`limit()`](#limit) in `SessionsQueryBuilder`." + ], + "examples": [ + { + "title": "Get the query's page size", + "body": [ + "const requestedPageSize = results.pageSize;", + "" + ] + }, + { + "title": "Perform a query and get `pageSize` from the result", + "body": [ + "import { sessions } from 'wix-bookings.v2';", + "", + "export async function myQueryFunction() {", + " const results = await sessions.querySessions().find();", + "", + " return results.pageSize;", + "}", + "" + ] + } + ] + } + }, + { + "name": "query", + "type": [ + { + "referenceType": "wix-bookings-v2.Sessions.SessionsQueryBuilder" + } + ], + "docs": { + "summary": "Returns the `SessionsQueryBuilder` object used to get the current results.", + "description": [ + "Use `query` to create and run a new query by chaining additional `SessionsQueryBuilder` functions to it. You can filter only on properties that haven't already been used in the previous `SessionsQueryBuilder`." + ], + "examples": [ + { + "title": "Get `query` that produced the current result", + "body": [ + "const originalQuery = results.query;", + "" + ] + }, + { + "title": "Perform a query and get `query` from the result", + "body": [ + "import { sessions } from 'wix-bookings.v2';", + "", + "export async function myQueryFunction() {", + " const results = await sessions.querySessions().find();", + "", + " return results.query;", + "}", + "" + ] + } + ] + } + } + ], + "operations": [ + { + "name": "hasNext", + "params": [], + "requiredFields": [], + "ret": { + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": null + }, + "docs": { + "summary": "Indicates whether the query has more results.", + "description": [ + "You can use the [`next()`](#next) and [`prev()`](#prev) functions returned by `sessions` to navigate the pages of a query result." + ], + "examples": [ + { + "title": "Get whether the query has more results", + "body": [ + "const hasNext = results.hasNext();", + "" + ] + }, + { + "title": "Perform a query and get `hasNext` from the result", + "body": [ + "import { sessions } from 'wix-bookings.v2';", + "", + "export async function myQueryFunction() {", + " const results = await sessions.querySessions().find();", + "", + " return results.hasNext();", + "}", + "" + ] + } + ] + }, + "isVeloEvent": false + }, + { + "name": "hasPrev", + "params": [], + "requiredFields": [], + "ret": { + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": null + }, + "docs": { + "summary": "Indicates whether the query has previous results.", + "description": [ + "You can use the [`next()`](#next) and [`prev()`](#prev) functions returned by `sessions` to navigate the pages of a query result." + ], + "examples": [ + { + "title": "Get whether the query has previous results", + "body": [ + "const hasPrev = results.hasPrev();", + "" + ] + }, + { + "title": "Perform a query and get `hasPrev` from the result", + "body": [ + "import { sessions } from 'wix-bookings.v2';", + "", + "export async function myQueryFunction() {", + " const results = await sessions.querySessions().find();", + "", + " return results.hasPrev();", + "}", + "" + ] + } + ] + }, + "isVeloEvent": false + }, + { + "name": "next", + "params": [], + "requiredFields": [], + "ret": { + "type": [ + { + "complexType": { + "nativeType": "Promise", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Sessions.SessionsQueryResult" + } + ] + } + } + ], + "doc": null + }, + "docs": { + "summary": "Retrieves the next page of query results.", + "description": [ + "The `next()` function retrieves the next page of query results.", + "The page size is defined by the [`limit()`](#limit) function and can be retrieved using the [`pageSize`](#pagesize) property. You can use the [`next()`](#next) and [`prev()`](#prev) functions returned by `sessions` to navigate the pages of a query result.", + "If items are added or removed between calls to `next()`, the values returned by `SessionsQueryBuilder` may change." + ], + "examples": [ + { + "title": "Get `next` from a query result", + "body": [ + "const nextPage = results.next();", + "" + ] + }, + { + "title": "Perform a query and get `next` from the result", + "body": [ + "import { sessions } from 'wix-bookings.v2';", + "", + "export async function myQueryFunction() {", + " const results = await sessions.querySessions().find();", + "", + " return results.next();", + "}", + "" + ] + }, + { + "title": "Iterate through all pages of query results", + "body": [ + "import { sessions } from 'wix-bookings.v2';", + "", + "export async function myQueryFunction() {", + " let allItems = [];", + "", + " const results = await sessions.querySessions().limit(1000).find();", + " allItems.push(results.items);", + "", + " while (results.hasNext()) {", + " results = await results.next();", + " allItems.push(results.items);", + " }", + "", + " return allItems;", + "}", + "" + ] + } + ] + }, + "isVeloEvent": false + }, + { + "name": "prev", + "params": [], + "requiredFields": [], + "ret": { + "type": [ + { + "complexType": { + "nativeType": "Promise", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Sessions.SessionsQueryResult" + } + ] + } + } + ], + "doc": null + }, + "docs": { + "summary": "Retrieves the previous page of query results.", + "description": [ + "The `prev()` function retrieves the previous page of query results.", + "The page size is defined by the [`limit()`](#limit) function and can be retrieved using the [`pageSize`](#pagesize) property. You can use the [`next()`](#next) and [`prev()`](#prev) functions returned by `sessions` to navigate the pages of a query result.", + "If items are added or removed between calls to `prev()`, the values returned may change." + ], + "examples": [ + { + "title": "Get `prev` from a query result", + "body": [ + "const previousPage = results.prev();", + "" + ] + }, + { + "title": "Perform a query and get `prev` from the result", + "body": [ + "import { sessions } from 'wix-bookings.v2';", + "", + "export async function myQueryFunction() {", + " const results = await sessions.querySessions().find();", + "", + " return results.prev();", + "}", + "" + ] + } + ] + }, + "isVeloEvent": false + } + ], + "messages": [] +} diff --git a/wix-bookings-v2/wix-bookings-v2/SessionsFeed.service.json b/wix-bookings-v2/wix-bookings-v2/SessionsFeed.service.json new file mode 100644 index 0000000000..f8983ba5c0 --- /dev/null +++ b/wix-bookings-v2/wix-bookings-v2/SessionsFeed.service.json @@ -0,0 +1,3955 @@ +{ + "name": "SessionsFeed", + "memberOf": "wix-bookings-v2", + "mixes": [], + "callbacks": [], + "extra": {}, + "clientId": "wix-bookings.v2-session_feed_event", + "docs": {}, + "relatedGuides": [], + "properties": [], + "operations": [ + { + "name": "getWindow", + "params": [], + "requiredFields": [], + "ret": { + "type": [ + { + "complexType": { + "nativeType": "Promise", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.GetWindowResponse" + } + ] + } + } + ], + "doc": null + }, + "docs": { + "summary": "Gets the feed window information.\nE.g. the current window end date, or the future duration in days the feed should strive for.", + "description": [], + "examples": [ + { + "title": "GetWindow example", + "body": [ + "import { sessionsFeed } from 'wix-bookings.v2';", + " ", + " async function getWindow() {", + " try {", + " const result = await sessionsFeed.getWindow();", + "", + " return result;", + " } catch (error) {", + " console.error(error);", + " // Handle the error", + " }", + " }", + " " + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + } + ], + "messages": [ + { + "name": "Address", + "members": [ + { + "name": "addressLine", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Main address line, usually street and number, as free text." + }, + { + "name": "addressLine2", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Free text providing more detailed address info. Usually contains Apt, Suite, and Floor." + }, + { + "name": "city", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "City name." + }, + { + "name": "country", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Country code." + }, + { + "name": "countryFullname", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Country full name." + }, + { + "name": "formattedAddress", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "A string containing the full address of this location." + }, + { + "name": "geocode", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.AddressLocation" + } + ], + "doc": "Coordinates of the physical address." + }, + { + "name": "hint", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Free text to help find the address." + }, + { + "name": "postalCode", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Zip/postal code." + }, + { + "name": "streetAddress", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.StreetAddress" + } + ], + "doc": "Street name, number and apartment number." + }, + { + "name": "subdivision", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Subdivision. Usually state, region, prefecture or province code, according to [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2)." + }, + { + "name": "subdivisions", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.Subdivision" + } + ] + } + } + ], + "doc": "Multi-level subdivisions from top to bottom." + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfAddressStreetOneOf", + "members": [ + "addressLine", + "streetAddress" + ] + } + ] + }, + "docs": { + "description": [ + "Physical address" + ] + } + }, + { + "name": "AddressLocation", + "members": [ + { + "name": "latitude", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Address latitude." + }, + { + "name": "longitude", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Address longitude." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "AddressStreetOneOf", + "members": [ + { + "name": "addressLine", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Main address line, usually street and number, as free text." + }, + { + "name": "streetAddress", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.StreetAddress" + } + ], + "doc": "Street name, number and apartment number." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Availability", + "members": [ + { + "name": "constraints", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.AvailabilityConstraints" + } + ], + "doc": "Constraints for calculating the schedule's availability." + }, + { + "name": "end", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "Date and time the schedule stops being available for booking. No value indicates no end time." + }, + { + "name": "linkedSchedules", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.LinkedSchedule" + } + ] + } + } + ], + "doc": "Other schedules that impact the availability calculation. Relevant only when there are availability constraints." + }, + { + "name": "start", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "Date and time the schedule starts to be available for booking." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "AvailabilityConstraints", + "members": [ + { + "name": "slotDurations", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "number" + } + ] + } + } + ], + "doc": "A list of duration options for slots, in minutes. Minimum value for a duration is 1.\nThe availability calculation generates slots with these durations, where there is no conflict with existing sessions or other availability constraints." + }, + { + "name": "slotsSplitInterval", + "readOnly": true, + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.SplitInterval" + } + ], + "doc": "An object defining the time between available slots' start times. For example, a slot with slots_split_interval=5 can start every 5 minutes. The default is the slot duration." + }, + { + "name": "splitInterval", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Specify how to split the slots in intervals of minutes.\nThis value indicates the time between available slots' start time. e.g., from 5 minute slots (3:00, 3:05, 3:15) and 1 hour slots (3:00, 4:00, 5:00).\nOptional. The default is the first duration in slot_durations field.\nDeprecated. Use the `split_slots_interval.value_in_minutes`." + }, + { + "name": "timeBetweenSlots", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "The number of minutes between the `end` of one slot, and the `start` of the next.\nMinimum value is 0, maximum value is 120." + } + ], + "docs": { + "description": [ + "Describes how to calculate the specific slots that are available for booking." + ] + } + }, + { + "name": "AvailabilityPolicy", + "members": [ + { + "name": "splitInterval", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.SplitInterval" + } + ], + "doc": "Specify how to split the schedule slots in intervals of minutes." + } + ], + "docs": { + "description": [ + "Availability policy applied to all site schedules." + ] + } + }, + { + "name": "AvailabilityPolicyUpdated", + "members": [ + { + "name": "availabilityPolicy", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.AvailabilityPolicy" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "BusinessSchedule", + "members": [ + { + "name": "periods", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.TimePeriod" + } + ] + } + } + ], + "doc": "Weekly recurring time periods when the business is regularly open or the service is available. Limited to 100 time periods." + }, + { + "name": "specialHourPeriod", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.SpecialHourPeriod" + } + ] + } + } + ], + "doc": "Exceptions to the business's regular hours. The business can be open or closed during the exception." + } + ], + "docs": { + "description": [ + "Business schedule. Regular and exceptional time periods when the business is open or the service is available." + ] + } + }, + { + "name": "CalendarConference", + "members": [ + { + "name": "_id", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Wix Calendar conference ID." + }, + { + "name": "accountOwnerId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the account owner in the video conferencing service." + }, + { + "name": "conferenceType", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Conference type.\n" + }, + { + "name": "description", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Conference description." + }, + { + "name": "externalId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Conference meeting ID in the provider's conferencing system." + }, + { + "name": "guestUrl", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "URL used by a guest to join the conference." + }, + { + "name": "hostUrl", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "URL used by the host to start the conference." + }, + { + "name": "password", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Password to join the conference." + }, + { + "name": "providerId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Conference provider ID." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "CalendarDateTime", + "members": [ + { + "name": "localDateTime", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.LocalDateTime" + } + ], + "doc": "An object containing the local date and time for the business's time zone." + }, + { + "name": "timeZone", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The time zone. Optional. Derived from the schedule's time zone.\nIn case this field is associated with recurring session, this field is empty." + }, + { + "name": "timestamp", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "UTC date-time in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601#Coordinated_Universal_Time_(UTC)) format. If a time zone offset is specified, the time is converted to UTC. For example, if you specify `new Date('2021-01-06T16:00:00.000-07:00')`, the stored value will be `\"2021-01-06T23:00:00.000Z\"`.\nRequired if `localDateTime` is not specified.\nIf `localDateTime` is specified, `timestamp` is calculated as `localDateTime`, using the business's time zone." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Cancel", + "members": [], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Complete", + "members": [], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ConferenceProvider", + "members": [ + { + "name": "providerId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Conferencing provider ID" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Empty", + "members": [], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ExtendWindowRequest", + "members": [ + { + "name": "futureDurationInDays", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "The number of days the window lasts into the future.\nMust be greater than the current `window.future_duration_in_days`." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ExtendWindowResponse", + "members": [ + { + "name": "window", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.Window" + } + ], + "doc": "The updated feed window." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ExternalCalendarInfo", + "members": [ + { + "name": "calendarType", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The external calendar type (e.g. Google Calendar, iCal, etc)." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ExternalCalendarOverrides", + "members": [ + { + "name": "description", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Synced description of the external calendar event." + }, + { + "name": "title", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Synced title of the external calendar event." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "FeedEvent", + "members": [ + { + "name": "sessionAddedOrUpdated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.SessionAddedOrUpdated" + } + ], + "doc": "Session has been added or updated within the feed window." + }, + { + "name": "sessionRemoved", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.SessionRemoved" + } + ], + "doc": "Session has been removed from the feed." + }, + { + "name": "windowExtended", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.WindowExtended" + } + ], + "doc": "The feed window has been extended." + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfFeedEventTypeOneOf", + "members": [ + "sessionAddedOrUpdated", + "sessionRemoved", + "windowExtended", + "windowMoved" + ] + } + ] + }, + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "FeedEventTypeOneOf", + "members": [ + { + "name": "sessionAddedOrUpdated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.SessionAddedOrUpdated" + } + ], + "doc": "Session has been added or updated within the feed window." + }, + { + "name": "sessionRemoved", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.SessionRemoved" + } + ], + "doc": "Session has been removed from the feed." + }, + { + "name": "windowExtended", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.WindowExtended" + } + ], + "doc": "The feed window has been extended." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "FeedReplayEvent", + "members": [ + { + "name": "replayCompleted", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.ReplayCompleted" + } + ], + "doc": "Sessions replay completed." + }, + { + "name": "replayId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + }, + { + "name": "sessionAdded", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.SessionAdded" + } + ], + "doc": "Session has been added within the feed window." + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfFeedReplayEventTypeOneOf", + "members": [ + "replayCompleted", + "sessionAdded" + ] + } + ] + }, + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "FeedReplayEventTypeOneOf", + "members": [ + { + "name": "replayCompleted", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.ReplayCompleted" + } + ], + "doc": "Sessions replay completed." + }, + { + "name": "sessionAdded", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.SessionAdded" + } + ], + "doc": "Session has been added within the feed window." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Frequency", + "members": [ + { + "name": "repetition", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "The frequency of the recurrence in weeks. i.e. when this value is 4, the interval occurs every 4 weeks. Optional. The default is 1. minimum: 1, maximum: 52." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "GetWindowRequest", + "members": [], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "GetWindowResponse", + "members": [ + { + "name": "window", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.Window" + } + ], + "doc": "The feed window." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Interval", + "members": [ + { + "name": "daysOfWeek", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The day the interval accrue. Optional. The default is the day of the recurring interval's start time." + }, + { + "name": "duration", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "The duration of the interval in minutes. Required. Part of the session end time calculation. minimum: 1, maximum: 86400." + }, + { + "name": "hourOfDay", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "The hour of the day the interval accrue. must be consistent with the Interval start time. Options. The default is 0. minimum: 0, maximum: 23." + }, + { + "name": "minuteOfHour", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "The minutes of hour the interval accrue. must be consistent with the Interval end time. Options. The default is 0. minimum: 0, maximum: 59." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "IntervalSplit", + "members": [ + { + "name": "intervals", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.RecurringInterval" + } + ] + } + } + ], + "doc": "" + }, + { + "name": "newScheduleVersion", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "" + }, + { + "name": "oldScheduleVersion", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "" + }, + { + "name": "scheduleId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "LinkedSchedule", + "members": [ + { + "name": "scheduleId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Schedule ID." + }, + { + "name": "scheduleOwnerId", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Owner ID, of the linked schedule." + }, + { + "name": "transparency", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Sets this schedule's availability for the duration of the linked schedule's sessions. Default is `\"BUSY\"`.\n\nIf set to `\"BUSY\"`, this schedule cannot have any available slots during the linked schedule's sessions.\nIf set to `\"FREE\"`, this schedule can have available slots during the linked schedule's sessions.\n\n\n\n" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "LocalDateTime", + "members": [ + { + "name": "dayOfMonth", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Day of the month, from 1-31." + }, + { + "name": "hourOfDay", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Hour of the day in 24-hour format, from 0-23." + }, + { + "name": "minutesOfHour", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Minute, from 0-59." + }, + { + "name": "monthOfYear", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Month number, from 1-12." + }, + { + "name": "year", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Year. 4-digit format." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Location", + "members": [ + { + "name": "address", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Free text address used when locationType is `OWNER_CUSTOM`." + }, + { + "name": "businessLocation", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.LocationsLocation" + } + ], + "doc": "Valid when `locationType` is `OWNER_BUSINESS`. Defaults to the business's location.\n\n`businessSchedule` is not supported by Wix Bookings\n" + }, + { + "name": "customAddress", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.Address" + } + ], + "doc": "Custom address, used when locationType is `\"OWNER_CUSTOM\"`. Might be used when locationType is `\"CUSTOM\"` in case the owner sets a custom address for the session which is different from the default." + }, + { + "name": "locationType", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Location type.\nOne of:\n- `\"OWNER_BUSINESS\"` The business address as set in the site’s general settings.\n- `\"OWNER_CUSTOM\"` The address as set when creating the service.\n- `\"CUSTOM\"` The address set for the individual session." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "LocationsAddress", + "members": [ + { + "name": "city", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "City name." + }, + { + "name": "country", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "2-letter country code in an [ISO-3166 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format." + }, + { + "name": "postalCode", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Postal or zip code." + }, + { + "name": "streetAddress", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.LocationsStreetAddress" + } + ], + "doc": "Street address. Includes street name, number, and apartment number in separate fields." + }, + { + "name": "subdivision", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Code for a subdivision (such as state, prefecture, or province) in [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2) format." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "LocationsAddressLocation", + "members": [ + { + "name": "latitude", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Latitude of the location. Must be between -90 and 90." + }, + { + "name": "longitude", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Longitude of the location. Must be between -180 and 180." + } + ], + "docs": { + "description": [ + "Address Geolocation" + ] + } + }, + { + "name": "LocationsLocation", + "members": [ + { + "name": "_id", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Location ID." + }, + { + "name": "address", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.LocationsAddress" + } + ], + "doc": "Address." + }, + { + "name": "archived", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the location is archived. Archived locations can't be updated.\n__Note:__ [Archiving a location](https://dev.wix.com/api/rest/business-info/locations/archive-location)\ndoesn't affect its `status`." + }, + { + "name": "businessSchedule", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.BusinessSchedule" + } + ], + "doc": "Business schedule. Array of weekly recurring time periods when the location is open for business. Limited to 100 time periods.\n\n__Note:__ Not supported by Wix Bookings.\n" + }, + { + "name": "default", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether this is the default location. There can only be one default location per site. The default location can't be archived." + }, + { + "name": "description", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Location description." + }, + { + "name": "email", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Email address." + }, + { + "name": "fax", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Fax number." + }, + { + "name": "locationType", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Location type. **Note:** Currently not supported." + }, + { + "name": "name", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Location name." + }, + { + "name": "phone", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Phone number." + }, + { + "name": "revision", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Revision number, which increments by 1 each time the location is updated.\nTo prevent conflicting changes, the existing revision must be used when updating a location." + }, + { + "name": "status", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Location status. Defaults to `ACTIVE`.\n__Note:__ [Archiving a location](https://dev.wix.com/api/rest/business-info/locations/archive-location)\ndoesn't affect the location's status. `INACTIVE` is currently not supported." + }, + { + "name": "timeZone", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Timezone in `America/New_York` format." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "LocationsStreetAddress", + "members": [ + { + "name": "apt", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Apartment number." + }, + { + "name": "name", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Street name." + }, + { + "name": "number", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Street number." + } + ], + "docs": { + "description": [ + "Street address. Includes street name, number, and apartment number in separate fields." + ] + } + }, + { + "name": "MigrationData", + "members": [ + { + "name": "businessId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + }, + { + "name": "staffs", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.StaffData" + } + ] + } + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "MigrationEvent", + "members": [ + { + "name": "migrationData", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.MigrationData" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "MultipleSessionsCreated", + "members": [ + { + "name": "schedulesWithSessions", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.ScheduleWithSessions" + } + ] + } + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Participant", + "members": [ + { + "name": "_id", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Participant ID. Currently represents the booking.id." + }, + { + "name": "approvalStatus", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Approval status for the participant.\n\n" + }, + { + "name": "contactId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Contact ID." + }, + { + "name": "email", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Participant's email address." + }, + { + "name": "inherited", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the participant was inherited from the schedule, as opposed to being booked directly to the session." + }, + { + "name": "name", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Participant's name." + }, + { + "name": "partySize", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Group or party size. The number of people attending. Defaults to 0. Maximum is 250." + }, + { + "name": "phone", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Participant's phone number." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ParticipantNotification", + "members": [ + { + "name": "message", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Custom message to send to the participants about the changes to the booking." + }, + { + "name": "notifyParticipants", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether to send the message about the changes to the customer.\n\nDefault: `false`\n" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Price", + "members": [ + { + "name": "amount", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Required payment amount." + }, + { + "name": "currency", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Currency in which the amount is quoted." + }, + { + "name": "downPayAmount", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Amount of a down payment or deposit as part of the transaction." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Rate", + "members": [ + { + "name": "labeledPriceOptions", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Record", + "typeParams": [ + { + "nativeType": "string" + }, + { + "referenceType": "wix-bookings-v2.SessionsFeed.Price" + } + ] + } + } + ], + "doc": "Mapping between a named price option, for example, adult or child prices, and the price, currency, and down payment amount.\nWhen present in an update request, the `default_varied_price` is ignored to support backward compatibility." + }, + { + "name": "priceText", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Textual price information used when **Price Per Session** is set to **Custom Price** in the app's service details page.\nWhen present in an update request, the `default_varied_price` is ignored to support backward compatibility." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "RecurringInterval", + "members": [ + { + "name": "_id", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The recurring interval identifier." + }, + { + "name": "affectedSchedules", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.LinkedSchedule" + } + ] + } + } + ], + "doc": "Specifies the list of linked schedules and the way this link affects the corresponding schedules' availability. Can be calculated from the schedule or overridden on the recurring interval." + }, + { + "name": "end", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "The end time of the recurring interval. Optional. Empty value indicates that there is no end time." + }, + { + "name": "frequency", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.Frequency" + } + ], + "doc": "The frequency of the interval. Optional. The default is frequency with the default repetition." + }, + { + "name": "interval", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.Interval" + } + ], + "doc": "The interval rules. The day, hour and minutes the interval is recurring." + }, + { + "name": "intervalType", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The type of recurring interval.\n" + }, + { + "name": "start", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "The start time of the recurring interval. Required." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "RecurringSessionSplit", + "members": [ + { + "name": "newScheduleVersion", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "" + }, + { + "name": "oldScheduleVersion", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "" + }, + { + "name": "recurringSessions", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.Session" + } + ] + } + } + ], + "doc": "" + }, + { + "name": "scheduleId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "RecurringSessionsUpdated", + "members": [ + { + "name": "newRecurringSessions", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.Session" + } + ] + } + } + ], + "doc": "New schedule's recurring session list." + }, + { + "name": "oldRecurringSessions", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.Session" + } + ] + } + } + ], + "doc": "Old schedule's recurring session list." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ReplayCompleted", + "members": [ + { + "name": "totalSessions", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "The (minimum) number of sessions that were replayed." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ReplayRequest", + "members": [ + { + "name": "affectedScheduleId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Filter by either `session.schedule_id` or `session.affectedSchedules[*].scheduleId`. Optional." + }, + { + "name": "from", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "The date to replay sessions from. Required." + }, + { + "name": "replayId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The replay id. Required." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ReplayResponse", + "members": [ + { + "name": "window", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.Window" + } + ], + "doc": "The feed window." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Reschedule", + "members": [ + { + "name": "executeAt", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "" + }, + { + "name": "payload", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Schedule", + "members": [ + { + "name": "_id", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Schedule ID." + }, + { + "name": "availability", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.Availability" + } + ], + "doc": "An object describing how to calculate the schedule's availability.\nAn empty object indicates that the schedule is not available for booking." + }, + { + "name": "calendarConference", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.CalendarConference" + } + ], + "doc": "A conference created for the schedule. This is used when a participant is added to a schedule." + }, + { + "name": "capacity", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Maximum number of participants that can be added to the schedule's sessions.\nMust be at most `1` for schedule whose availability is affected by another schedule. E.g, appointment schedules of the Wix Bookings app." + }, + { + "name": "conferenceProvider", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.ConferenceProvider" + } + ], + "doc": "Conferencing Provider. A schedule with a conferencing provider will use to provider information to create a conference on the provider's system when a session is created on the schedule or on one of its linked schedule's." + }, + { + "name": "created", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "Schedule creation date." + }, + { + "name": "externalCalendarOverrides", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.ExternalCalendarOverrides" + } + ], + "doc": "Title and description values to override session defaults when syncing to an external calendar.\nLearn more about [syncing calendars](https://support.wix.com/en/article/wix-bookings-important-information-about-syncing-google-calendars-with-wix-bookings)." + }, + { + "name": "inheritedFields", + "readOnly": true, + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Fields which were inherited from the Business Info page under Settings in the Dashboard." + }, + { + "name": "intervals", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.RecurringInterval" + } + ] + } + } + ], + "doc": "Specifies the intervals for the sessions calculation. Optional. e.g. when creating class service you can add\npattern for recurring intervals, these intervals can be returned as schedule's sessions or available slots if\nthere are no other availability calculation constraints and the capacity is bigger then the current total number of sessions' participants." + }, + { + "name": "location", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.Location" + } + ], + "doc": "Default location for the schedule's sessions." + }, + { + "name": "participants", + "readOnly": true, + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.Participant" + } + ] + } + } + ], + "doc": "Participants currently registered to sessions in this schedule.\nParticipants who are registered in the schedule are automatically registered to any session that is created for the schedule." + }, + { + "name": "rate", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.Rate" + } + ], + "doc": "Price options offered when booking this schedule's slots. Default is no rate." + }, + { + "name": "scheduleOwnerId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the schedule's owner entity. This may be a resource ID or a service ID." + }, + { + "name": "status", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Schedule status." + }, + { + "name": "tags", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Tags for grouping schedules. These tags are the default tags for the schedule's sessions.\nThe Wix Bookings app uses the following predefined tags to set schedule type: `\"INDIVIDUAL\"`, `\"GROUP\"`, and `\"COURSE\"`. Once the schedule type is set using these tags, you cannot update it. In addition to the app's tags, you can create and update your own tags." + }, + { + "name": "timeZone", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + }, + { + "name": "title", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Default title for the schedule's sessions. Maximum length: 6000 characters." + }, + { + "name": "totalNumberOfParticipants", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Number of participants registered to sessions in this schedule, calculated as the sum of the party sizes." + }, + { + "name": "updated", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "Schedule last update date." + }, + { + "name": "version", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Schedule version number, updated each time the schedule is updated." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ScheduleCancelled", + "members": [ + { + "name": "oldSchedule", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.Schedule" + } + ], + "doc": "" + }, + { + "name": "participantNotification", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.ParticipantNotification" + } + ], + "doc": "Whether to notify participants about the change and an optional custom message" + }, + { + "name": "schedule", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.Schedule" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ScheduleCreated", + "members": [ + { + "name": "schedule", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.Schedule" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ScheduleNotification", + "members": [ + { + "name": "availabilityPolicyUpdated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.AvailabilityPolicyUpdated" + } + ], + "doc": "" + }, + { + "name": "instanceId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + }, + { + "name": "intervalSplit", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.IntervalSplit" + } + ], + "doc": "" + }, + { + "name": "migrationEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.MigrationEvent" + } + ], + "doc": "supported only for schedule migration apis." + }, + { + "name": "multipleSessionsCreated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.MultipleSessionsCreated" + } + ], + "doc": "supported only for schedule migration apis." + }, + { + "name": "notifyParticipants", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether to notify participants about changed sessions. deprecated, use participant_notification" + }, + { + "name": "preserveFutureSessionsWithParticipants", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "" + }, + { + "name": "recurringSessionSplit", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.RecurringSessionSplit" + } + ], + "doc": "" + }, + { + "name": "scheduleCancelled", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.ScheduleCancelled" + } + ], + "doc": "" + }, + { + "name": "scheduleCreated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.ScheduleCreated" + } + ], + "doc": "" + }, + { + "name": "scheduleUnassignedFromUser", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.ScheduleUnassignedFromUser" + } + ], + "doc": "Inspect `schedule.scheduleOwnerUserId` on `scheduleUpdated` instead." + }, + { + "name": "scheduleUpdated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.ScheduleUpdated" + } + ], + "doc": "" + }, + { + "name": "sessionCancelled", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.SessionCancelled" + } + ], + "doc": "" + }, + { + "name": "sessionCreated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.SessionCreated" + } + ], + "doc": "" + }, + { + "name": "sessionUpdated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.SessionUpdated" + } + ], + "doc": "" + }, + { + "name": "siteProperties", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.SitePropertiesOnScheduleCreation" + } + ], + "doc": "site properties. Optional. Given in create schedule notification." + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfScheduleNotificationEventOneOf", + "members": [ + "availabilityPolicyUpdated", + "intervalSplit", + "migrationEvent", + "multipleSessionsCreated", + "recurringSessionSplit", + "scheduleCancelled", + "scheduleCreated", + "scheduleUnassignedFromUser", + "scheduleUpdated", + "sessionCancelled", + "sessionCreated", + "sessionUpdated" + ] + } + ] + }, + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ScheduleNotificationEventOneOf", + "members": [ + { + "name": "availabilityPolicyUpdated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.AvailabilityPolicyUpdated" + } + ], + "doc": "" + }, + { + "name": "intervalSplit", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.IntervalSplit" + } + ], + "doc": "" + }, + { + "name": "migrationEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.MigrationEvent" + } + ], + "doc": "supported only for schedule migration apis." + }, + { + "name": "multipleSessionsCreated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.MultipleSessionsCreated" + } + ], + "doc": "supported only for schedule migration apis." + }, + { + "name": "recurringSessionSplit", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.RecurringSessionSplit" + } + ], + "doc": "" + }, + { + "name": "scheduleCancelled", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.ScheduleCancelled" + } + ], + "doc": "" + }, + { + "name": "scheduleCreated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.ScheduleCreated" + } + ], + "doc": "" + }, + { + "name": "scheduleUnassignedFromUser", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.ScheduleUnassignedFromUser" + } + ], + "doc": "Inspect `schedule.scheduleOwnerUserId` on `scheduleUpdated` instead." + }, + { + "name": "scheduleUpdated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.ScheduleUpdated" + } + ], + "doc": "" + }, + { + "name": "sessionCancelled", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.SessionCancelled" + } + ], + "doc": "" + }, + { + "name": "sessionCreated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.SessionCreated" + } + ], + "doc": "" + }, + { + "name": "sessionUpdated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.SessionUpdated" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ScheduleUnassignedFromUser", + "members": [ + { + "name": "schedule", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.Schedule" + } + ], + "doc": "The schedule that was unassigned from the user." + }, + { + "name": "userId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The Wix user id." + } + ], + "docs": { + "description": [ + "Schedule unassigned from user." + ] + } + }, + { + "name": "ScheduleUpdated", + "members": [ + { + "name": "newSchedule", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.Schedule" + } + ], + "doc": "The new schedule after the update." + }, + { + "name": "oldSchedule", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.Schedule" + } + ], + "doc": "The old schedule before the update." + }, + { + "name": "participantNotification", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.ParticipantNotification" + } + ], + "doc": "Whether to notify participants about the change and an optional custom message" + }, + { + "name": "recurringSessions", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.RecurringSessionsUpdated" + } + ], + "doc": "Recurring sessions updated event. If this field is given, the reason for the schedule updated event was\nupdating at least one of the given schedule's recurring sessions.\nThis event is triggered by create/update/delete recurring session apis." + }, + { + "name": "triggeredByAnonymizeRequest", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether this notification was created as a result of an anonymization request, such as GDPR.\nAn anonymized participant will have the following details:\nname = \"deleted\"\nphone = \"deleted\"\nemail = \"deleted@deleted.com\"" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ScheduleWithSessions", + "members": [ + { + "name": "schedule", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.Schedule" + } + ], + "doc": "" + }, + { + "name": "sessions", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.Session" + } + ] + } + } + ], + "doc": "" + }, + { + "name": "siteProperties", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.SitePropertiesOnScheduleCreation" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Session", + "members": [ + { + "name": "_id", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Session ID." + }, + { + "name": "affectedSchedules", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.LinkedSchedule" + } + ] + } + } + ], + "doc": "An object specifying a list of schedules and the way each schedule's availability is affected by the session. For example, the schedule of an instructor is affected by sessions of the class that they instruct.\nThe array is inherited from the schedule and can be overridden even if the session is a recurring session." + }, + { + "name": "calendarConference", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.CalendarConference" + } + ], + "doc": "A conference created for the session according to the details set in the schedule's conference provider information.\nIf the session is a recurring session, this field is inherited from the schedule." + }, + { + "name": "capacity", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Maximum number of participants that can be added to the session. Defaults to the schedule capacity.\nThe value is inherited from the schedule and can be overridden unless the session is a recurring session." + }, + { + "name": "end", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.CalendarDateTime" + } + ], + "doc": "An object specifying the end date and time of the session. The `end` time must be after the `start` time and be same type as `start`.\nIf the session is a recurring session, `end` must contain a `localDateTime`." + }, + { + "name": "externalCalendarOverrides", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.ExternalCalendarOverrides" + } + ], + "doc": "Title and description values to override session defaults when syncing to an external calendar.\nLearn more about [syncing calendars](https://support.wix.com/en/article/wix-bookings-important-information-about-syncing-google-calendars-with-wix-bookings).\nThe value is inherited from the schedule and can be overridden unless the session is a recurring session." + }, + { + "name": "inheritedFields", + "readOnly": true, + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "A list of properties for which values were inherited from the schedule.\nThis does not include participants that were inherited from the schedule." + }, + { + "name": "instanceOfRecurrence", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "A string representing a recurrence rule (RRULE) if the session is an instance of a recurrence pattern.\nEmpty when the session is not an instance of a recurrence rule, or if the session defines a recurrence pattern, and `recurrence` is not empty." + }, + { + "name": "location", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.Location" + } + ], + "doc": "An object describing the location where the session takes place.\nDefaults to the schedule location.\nFor single sessions, `session.location.businessLocation` can only be provided for locations that are defined in the schedule using `schedule.location` or `schedule.availability.locations`." + }, + { + "name": "notes", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Additional information about the session.\nNotes are not supported for recurring sessions." + }, + { + "name": "originalStart", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "Original start date and time of the session in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601#Coordinated_Universal_Time_(UTC)) format." + }, + { + "name": "participants", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.Participant" + } + ] + } + } + ], + "doc": "List of participants booked for the session.\nThe list includes participants who have registered for this specific session, and participants who have registered for a schedule that includes this session.\nIf the session is a recurring session, this field must be empty." + }, + { + "name": "rate", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.Rate" + } + ], + "doc": "The price options offered for the session. Defaults to the schedule rate.\nThe value is inherited from the schedule and can be overridden unless the session is a recurring session." + }, + { + "name": "recurrence", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "A string representing a recurrence rule (RRULE) for a recurring session, as defined in [iCalendar RFC 5545](https://icalendar.org/iCalendar-RFC-5545/3-3-10-recurrence-rule.html).\nIf the session is an instance of a recurrence pattern, the `instanceOfRecurrence` property will be contain the recurrence rule and this property will be empty.\nThe RRULE defines a rule for repeating a session.\nSupported parameters are:\n\n|Keyword|Description|Supported values|\n|--|--|---|\n|`FREQ`|The frequency at which the session is recurs. Required.|`WEEKLY`|\n|`INTERVAL`|How often, in terms of `FREQ`, the session recurs. Default is 1. Optional.|\n|`UNTIL`|The UTC end date and time of the recurrence. Optional.|\n|`BYDAY`|Day of the week when the event should recur. Required.|One of: `MO`, `TU`, `WE`, `TH`, `FR`, `SA`, `SU`|\n\n\nFor example, a session that repeats every second week on a Monday until January 7, 2022 at 8 AM:\n`\"FREQ=WEEKLY;INTERVAL=2;BYDAY=MO;UNTIL=20220107T080000Z\"`\n\n\n" + }, + { + "name": "recurringIntervalId", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Recurring interval ID. Defined when a session will be a recurring session. read-only. Optional.\nFor exmaple, when creating a class service with recurring sessions, you add a recurrence rule to create recurring sessions.\nThis field is omitted for single sessions or instances of recurring sessions.\nSpecified when the session was originally generated from a schedule recurring interval.\nDeprecated. Use `recurringSessionId`." + }, + { + "name": "recurringSessionId", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The ID of the recurring session if this session is an instance of a recurrence. Use this ID to update the recurrence and all of the instances." + }, + { + "name": "scheduleId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the schedule that the session belongs to." + }, + { + "name": "scheduleOwnerId", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the resource or service that the session's schedule belongs to." + }, + { + "name": "start", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.CalendarDateTime" + } + ], + "doc": "An object specifying the start date and time of the session. If the session is a recurring session, `start` must contain a `localDateTime`." + }, + { + "name": "status", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Session status.\n" + }, + { + "name": "tags", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Tags for the session.\nThe value is inherited from the schedule and can be overridden unless the session is a recurring session." + }, + { + "name": "timeReservedAfter", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Time reserved after the session end time, derived from the schedule availability constraints and the time between slots. Read-only.\nIf the session is a recurring session, this field must be empty." + }, + { + "name": "title", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Session title.\nThe value is inherited from the schedule and can be overridden unless the session is a recurring session." + }, + { + "name": "totalNumberOfParticipants", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "The number of participants booked for the session. Read-only.\nCalculated as the sum of the party sizes." + }, + { + "name": "type", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Session type.\n" + }, + { + "name": "version", + "readOnly": true, + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.SessionVersion" + } + ], + "doc": "The session version.\nComposed by the schedule, session and participants versions." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "SessionAdded", + "members": [ + { + "name": "session", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.Session" + } + ], + "doc": "The session which was added within the feed window." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "SessionAddedOrUpdated", + "members": [ + { + "name": "previousAffectedScheduleIds", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "The session previous affected schedule ids." + }, + { + "name": "session", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.Session" + } + ], + "doc": "The session which was added or updated within the feed window." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "SessionCancelled", + "members": [ + { + "name": "participantNotification", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.ParticipantNotification" + } + ], + "doc": "Whether to notify participants about the change and an optional custom message" + }, + { + "name": "session", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.Session" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "SessionCreated", + "members": [ + { + "name": "session", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.Session" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "SessionRemoved", + "members": [ + { + "name": "affectedScheduleIds", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "The affected schedule ids of the removed session." + }, + { + "name": "scheduleId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The schedule id of the removed session." + }, + { + "name": "sessionId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The removed session id." + }, + { + "name": "sessionVersionNumber", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The session version number." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "SessionUpdated", + "members": [ + { + "name": "newSession", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.Session" + } + ], + "doc": "" + }, + { + "name": "oldSession", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.Session" + } + ], + "doc": "" + }, + { + "name": "participantNotification", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.ParticipantNotification" + } + ], + "doc": "Whether to notify participants about the change and an optional custom message" + }, + { + "name": "triggeredByAnonymizeRequest", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether this notification was created as a result of an anonymization request, such as GDPR.\nAn anonymized participant will have the following details:\nname = \"deleted\"\nphone = \"deleted\"\nemail = \"deleted@deleted.com\"" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "SessionVersion", + "members": [ + { + "name": "number", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Incremental version number, which is updated on each change to the session or on changes affecting the session." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "SitePropertiesOnScheduleCreation", + "members": [ + { + "name": "timeZone", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The global time zone value." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "SpecialHourPeriod", + "members": [ + { + "name": "comment", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Additional info about the exception. For example, \"We close earlier on New Year's Eve.\"" + }, + { + "name": "endDate", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "End date and time of the exception in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format and [Coordinated Universal Time (UTC)](https://en.wikipedia.org/wiki/Coordinated_Universal_Time)." + }, + { + "name": "isClosed", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the business is closed (or the service is not available) during the exception.\n\nDefault: `true`.\n" + }, + { + "name": "startDate", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Start date and time of the exception in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format and [Coordinated Universal Time (UTC)](https://en.wikipedia.org/wiki/Coordinated_Universal_Time)." + } + ], + "docs": { + "description": [ + "Exception to the business's regular hours. The business can be open or closed during the exception." + ] + } + }, + { + "name": "SplitInterval", + "members": [ + { + "name": "sameAsDuration", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the slot duration is used as the split interval value.\nIf `same_as_duration` is `true`, the `value_in_minutes` is the sum of the first duration in\n`schedule.availabilityConstraints.SlotDurations` field, and `schedule.availabilityConstraints.TimeBetweenSlots` field." + }, + { + "name": "valueInMinutes", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Number of minutes between available slots' start times when `same_as_duration` is `false`." + } + ], + "docs": { + "description": [ + "The time between available slots' start times. For example, For 5 minute slots, 3:00, 3:05, 3:15 etc. For 1 hour slots, 3:00, 4:00, 5:00 etc." + ] + } + }, + { + "name": "StaffData", + "members": [ + { + "name": "refreshToken", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + }, + { + "name": "resourceId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + }, + { + "name": "syncRequestEmail", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "StreetAddress", + "members": [ + { + "name": "apt", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Apartment number." + }, + { + "name": "name", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Street name." + }, + { + "name": "number", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Street number." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Subdivision", + "members": [ + { + "name": "code", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Subdivision code. Usually state, region, prefecture or province code, according to [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2)." + }, + { + "name": "name", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Subdivision full name." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Task", + "members": [ + { + "name": "executeAt", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "" + }, + { + "name": "key", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.TaskKey" + } + ], + "doc": "" + }, + { + "name": "payload", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "TaskAction", + "members": [ + { + "name": "cancel", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.Cancel" + } + ], + "doc": "" + }, + { + "name": "complete", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.Complete" + } + ], + "doc": "" + }, + { + "name": "reschedule", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.Reschedule" + } + ], + "doc": "" + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfTaskActionActionOneOf", + "members": [ + "cancel", + "complete", + "reschedule" + ] + } + ] + }, + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "TaskActionActionOneOf", + "members": [ + { + "name": "cancel", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.Cancel" + } + ], + "doc": "" + }, + { + "name": "complete", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.Complete" + } + ], + "doc": "" + }, + { + "name": "reschedule", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsFeed.Reschedule" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "TaskKey", + "members": [ + { + "name": "appId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + }, + { + "name": "instanceId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + }, + { + "name": "subjectId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "TimePeriod", + "members": [ + { + "name": "closeDay", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Day of the week the period ends on." + }, + { + "name": "closeTime", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Time the period ends in 24-hour [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) extended format. Valid values are `00:00` to `24:00`, where `24:00` represents\nmidnight at the end of the specified day.\n\n__Note:__ If `openDay` and `closeDay` specify the same day of the week `closeTime` must be later than `openTime`.\n" + }, + { + "name": "openDay", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Day of the week the period starts on." + }, + { + "name": "openTime", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Time the period starts in 24-hour [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) extended format. Valid values are `00:00` to `24:00`, where `24:00` represents\nmidnight at the end of the specified day." + } + ], + "docs": { + "description": [ + "Weekly recurring time periods when the business is regularly open or the service is available." + ] + } + }, + { + "name": "Version", + "members": [ + { + "name": "participantsVersion", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Participants version number, updated each time the schedule participants are updated." + }, + { + "name": "scheduleVersion", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Schedule version number, updated each time the schedule is updated." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Window", + "members": [ + { + "name": "endDate", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "The window end date." + }, + { + "name": "futureDurationInDays", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "The number of days the window lasts into the future." + }, + { + "name": "version", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "The window version." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "WindowExtended", + "members": [ + { + "name": "windowEndDate", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "The updated window end date." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "WindowMoved", + "members": [ + { + "name": "edge", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "The updated window edge." + }, + { + "name": "windowVersion", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "The window version." + } + ], + "docs": { + "description": [ + "Deprecated. Please use `window_extended` instead." + ] + } + } + ] +} diff --git a/wix-bookings-v2/wix-bookings-v2/SessionsView.service.json b/wix-bookings-v2/wix-bookings-v2/SessionsView.service.json new file mode 100644 index 0000000000..71ade9795a --- /dev/null +++ b/wix-bookings-v2/wix-bookings-v2/SessionsView.service.json @@ -0,0 +1,4027 @@ +{ + "name": "SessionsView", + "memberOf": "wix-bookings-v2", + "mixes": [], + "callbacks": [], + "extra": {}, + "clientId": "wix-bookings.v2-session_view", + "docs": {}, + "relatedGuides": [], + "properties": [], + "operations": [ + { + "name": "getSessionView", + "params": [], + "requiredFields": [], + "ret": { + "type": [ + { + "complexType": { + "nativeType": "Promise", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.SessionsView.GetSessionViewResponse" + } + ] + } + } + ], + "doc": null + }, + "docs": { + "summary": "Gets the sessions view information.\nE.g. the current view end date, or the future duration in days the view should strive for.", + "description": [], + "examples": [ + { + "title": "Retrieve the end date of the site's session view ", + "body": [ + "import {sessionsView} from 'wix-bookings.v2';", + "", + "async function getSessionViewEndDate() {", + " const {sessionView} = await sessionsView.getSessionView()", + " const endDate = sessionView.endDate", + " return endDate", + "}" + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + } + ], + "messages": [ + { + "name": "Address", + "members": [ + { + "name": "addressLine", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Main address line, usually street and number, as free text." + }, + { + "name": "addressLine2", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Free text providing more detailed address info. Usually contains Apt, Suite, and Floor." + }, + { + "name": "city", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "City name." + }, + { + "name": "country", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Country code." + }, + { + "name": "countryFullname", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Country full name." + }, + { + "name": "formattedAddress", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "A string containing the full address of this location." + }, + { + "name": "geocode", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.AddressLocation" + } + ], + "doc": "Coordinates of the physical address." + }, + { + "name": "hint", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Free text to help find the address." + }, + { + "name": "postalCode", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Zip/postal code." + }, + { + "name": "streetAddress", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.StreetAddress" + } + ], + "doc": "Street name, number and apartment number." + }, + { + "name": "subdivision", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Subdivision. Usually state, region, prefecture or province code, according to [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2)." + }, + { + "name": "subdivisions", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.SessionsView.Subdivision" + } + ] + } + } + ], + "doc": "Multi-level subdivisions from top to bottom." + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfAddressStreetOneOf", + "members": [ + "addressLine", + "streetAddress" + ] + } + ] + }, + "docs": { + "description": [ + "Physical address" + ] + } + }, + { + "name": "AddressLocation", + "members": [ + { + "name": "latitude", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Address latitude." + }, + { + "name": "longitude", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Address longitude." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "AddressStreetOneOf", + "members": [ + { + "name": "addressLine", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Main address line, usually street and number, as free text." + }, + { + "name": "streetAddress", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.StreetAddress" + } + ], + "doc": "Street name, number and apartment number." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Availability", + "members": [ + { + "name": "constraints", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.AvailabilityConstraints" + } + ], + "doc": "Constraints for calculating the schedule's availability." + }, + { + "name": "end", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "Date and time the schedule stops being available for booking. No value indicates no end time." + }, + { + "name": "linkedSchedules", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.SessionsView.LinkedSchedule" + } + ] + } + } + ], + "doc": "Other schedules that impact the availability calculation. Relevant only when there are availability constraints." + }, + { + "name": "start", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "Date and time the schedule starts to be available for booking." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "AvailabilityConstraints", + "members": [ + { + "name": "slotDurations", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "number" + } + ] + } + } + ], + "doc": "A list of duration options for slots, in minutes. Minimum value for a duration is 1.\nThe availability calculation generates slots with these durations, where there is no conflict with existing sessions or other availability constraints." + }, + { + "name": "slotsSplitInterval", + "readOnly": true, + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.SplitInterval" + } + ], + "doc": "An object defining the time between available slots' start times. For example, a slot with slots_split_interval=5 can start every 5 minutes. The default is the slot duration." + }, + { + "name": "splitInterval", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Specify how to split the slots in intervals of minutes.\nThis value indicates the time between available slots' start time. e.g., from 5 minute slots (3:00, 3:05, 3:15) and 1 hour slots (3:00, 4:00, 5:00).\nOptional. The default is the first duration in slot_durations field.\nDeprecated. Use the `split_slots_interval.value_in_minutes`." + }, + { + "name": "timeBetweenSlots", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "The number of minutes between the `end` of one slot, and the `start` of the next.\nMinimum value is 0, maximum value is 120." + } + ], + "docs": { + "description": [ + "Describes how to calculate the specific slots that are available for booking." + ] + } + }, + { + "name": "AvailabilityPolicy", + "members": [ + { + "name": "splitInterval", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.SplitInterval" + } + ], + "doc": "Specify how to split the schedule slots in intervals of minutes." + } + ], + "docs": { + "description": [ + "Availability policy applied to all site schedules." + ] + } + }, + { + "name": "AvailabilityPolicyUpdated", + "members": [ + { + "name": "availabilityPolicy", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.AvailabilityPolicy" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "BusinessSchedule", + "members": [ + { + "name": "periods", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.SessionsView.TimePeriod" + } + ] + } + } + ], + "doc": "Weekly recurring time periods when the business is regularly open or the service is available. Limited to 100 time periods." + }, + { + "name": "specialHourPeriod", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.SessionsView.SpecialHourPeriod" + } + ] + } + } + ], + "doc": "Exceptions to the business's regular hours. The business can be open or closed during the exception." + } + ], + "docs": { + "description": [ + "Business schedule. Regular and exceptional time periods when the business is open or the service is available." + ] + } + }, + { + "name": "CalendarConference", + "members": [ + { + "name": "_id", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Wix Calendar conference ID." + }, + { + "name": "accountOwnerId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the account owner in the video conferencing service." + }, + { + "name": "conferenceType", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Conference type.\n" + }, + { + "name": "description", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Conference description." + }, + { + "name": "externalId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Conference meeting ID in the provider's conferencing system." + }, + { + "name": "guestUrl", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "URL used by a guest to join the conference." + }, + { + "name": "hostUrl", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "URL used by the host to start the conference." + }, + { + "name": "password", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Password to join the conference." + }, + { + "name": "providerId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Conference provider ID." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "CalendarDateTime", + "members": [ + { + "name": "localDateTime", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.LocalDateTime" + } + ], + "doc": "An object containing the local date and time for the business's time zone." + }, + { + "name": "timeZone", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The time zone. Optional. Derived from the schedule's time zone.\nIn case this field is associated with recurring session, this field is empty." + }, + { + "name": "timestamp", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "UTC date-time in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601#Coordinated_Universal_Time_(UTC)) format. If a time zone offset is specified, the time is converted to UTC. For example, if you specify `new Date('2021-01-06T16:00:00.000-07:00')`, the stored value will be `\"2021-01-06T23:00:00.000Z\"`.\nRequired if `localDateTime` is not specified.\nIf `localDateTime` is specified, `timestamp` is calculated as `localDateTime`, using the business's time zone." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Cancel", + "members": [], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Complete", + "members": [], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ConferenceProvider", + "members": [ + { + "name": "providerId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Conferencing provider ID" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Empty", + "members": [], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ExtendSessionViewRequest", + "members": [ + { + "name": "futureDurationInDays", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "The number of days the view lasts into the future.\nMust be greater than the current value." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ExtendSessionViewResponse", + "members": [ + { + "name": "sessionView", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.SessionView" + } + ], + "doc": "The updated sessions view." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ExternalCalendarInfo", + "members": [ + { + "name": "calendarType", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The external calendar type (e.g. Google Calendar, iCal, etc)." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ExternalCalendarOverrides", + "members": [ + { + "name": "description", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Synced description of the external calendar event." + }, + { + "name": "title", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Synced title of the external calendar event." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "FeedEvent", + "members": [ + { + "name": "sessionAddedOrUpdated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.SessionAddedOrUpdated" + } + ], + "doc": "Session has been added or updated within the feed window." + }, + { + "name": "sessionRemoved", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.SessionRemoved" + } + ], + "doc": "Session has been removed from the feed." + }, + { + "name": "windowExtended", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.WindowExtended" + } + ], + "doc": "The feed window has been extended." + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfFeedEventTypeOneOf", + "members": [ + "sessionAddedOrUpdated", + "sessionRemoved", + "windowExtended", + "windowMoved" + ] + } + ] + }, + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "FeedEventTypeOneOf", + "members": [ + { + "name": "sessionAddedOrUpdated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.SessionAddedOrUpdated" + } + ], + "doc": "Session has been added or updated within the feed window." + }, + { + "name": "sessionRemoved", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.SessionRemoved" + } + ], + "doc": "Session has been removed from the feed." + }, + { + "name": "windowExtended", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.WindowExtended" + } + ], + "doc": "The feed window has been extended." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "FeedReplayEvent", + "members": [ + { + "name": "replayCompleted", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.ReplayCompleted" + } + ], + "doc": "Sessions replay completed." + }, + { + "name": "replayId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + }, + { + "name": "sessionAdded", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.SessionAdded" + } + ], + "doc": "Session has been added within the feed window." + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfFeedReplayEventTypeOneOf", + "members": [ + "replayCompleted", + "sessionAdded" + ] + } + ] + }, + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "FeedReplayEventTypeOneOf", + "members": [ + { + "name": "replayCompleted", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.ReplayCompleted" + } + ], + "doc": "Sessions replay completed." + }, + { + "name": "sessionAdded", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.SessionAdded" + } + ], + "doc": "Session has been added within the feed window." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Frequency", + "members": [ + { + "name": "repetition", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "The frequency of the recurrence in weeks. i.e. when this value is 4, the interval occurs every 4 weeks. Optional. The default is 1. minimum: 1, maximum: 52." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "GetSessionViewRequest", + "members": [], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "GetSessionViewResponse", + "members": [ + { + "name": "sessionView", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.SessionView" + } + ], + "doc": "The sessions view." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Interval", + "members": [ + { + "name": "daysOfWeek", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The day the interval accrue. Optional. The default is the day of the recurring interval's start time." + }, + { + "name": "duration", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "The duration of the interval in minutes. Required. Part of the session end time calculation. minimum: 1, maximum: 86400." + }, + { + "name": "hourOfDay", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "The hour of the day the interval accrue. must be consistent with the Interval start time. Options. The default is 0. minimum: 0, maximum: 23." + }, + { + "name": "minuteOfHour", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "The minutes of hour the interval accrue. must be consistent with the Interval end time. Options. The default is 0. minimum: 0, maximum: 59." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "IntervalSplit", + "members": [ + { + "name": "intervals", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.SessionsView.RecurringInterval" + } + ] + } + } + ], + "doc": "" + }, + { + "name": "newScheduleVersion", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "" + }, + { + "name": "oldScheduleVersion", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "" + }, + { + "name": "scheduleId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "LinkedSchedule", + "members": [ + { + "name": "scheduleId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Schedule ID." + }, + { + "name": "scheduleOwnerId", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Owner ID, of the linked schedule." + }, + { + "name": "transparency", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Sets this schedule's availability for the duration of the linked schedule's sessions. Default is `\"BUSY\"`.\n\nIf set to `\"BUSY\"`, this schedule cannot have any available slots during the linked schedule's sessions.\nIf set to `\"FREE\"`, this schedule can have available slots during the linked schedule's sessions.\n\n\n\n" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "LocalDateTime", + "members": [ + { + "name": "dayOfMonth", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Day of the month, from 1-31." + }, + { + "name": "hourOfDay", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Hour of the day in 24-hour format, from 0-23." + }, + { + "name": "minutesOfHour", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Minute, from 0-59." + }, + { + "name": "monthOfYear", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Month number, from 1-12." + }, + { + "name": "year", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Year. 4-digit format." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Location", + "members": [ + { + "name": "address", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Free text address used when locationType is `OWNER_CUSTOM`." + }, + { + "name": "businessLocation", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.LocationsLocation" + } + ], + "doc": "Valid when `locationType` is `OWNER_BUSINESS`. Defaults to the business's location.\n\n`businessSchedule` is not supported by Wix Bookings\n" + }, + { + "name": "customAddress", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.Address" + } + ], + "doc": "Custom address, used when locationType is `\"OWNER_CUSTOM\"`. Might be used when locationType is `\"CUSTOM\"` in case the owner sets a custom address for the session which is different from the default." + }, + { + "name": "locationType", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Location type.\nOne of:\n- `\"OWNER_BUSINESS\"` The business address as set in the site’s general settings.\n- `\"OWNER_CUSTOM\"` The address as set when creating the service.\n- `\"CUSTOM\"` The address set for the individual session." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "LocationsAddress", + "members": [ + { + "name": "city", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "City name." + }, + { + "name": "country", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "2-letter country code in an [ISO-3166 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format." + }, + { + "name": "postalCode", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Postal or zip code." + }, + { + "name": "streetAddress", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.LocationsStreetAddress" + } + ], + "doc": "Street address. Includes street name, number, and apartment number in separate fields." + }, + { + "name": "subdivision", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Code for a subdivision (such as state, prefecture, or province) in [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2) format." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "LocationsAddressLocation", + "members": [ + { + "name": "latitude", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Latitude of the location. Must be between -90 and 90." + }, + { + "name": "longitude", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Longitude of the location. Must be between -180 and 180." + } + ], + "docs": { + "description": [ + "Address Geolocation" + ] + } + }, + { + "name": "LocationsLocation", + "members": [ + { + "name": "_id", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Location ID." + }, + { + "name": "address", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.LocationsAddress" + } + ], + "doc": "Address." + }, + { + "name": "archived", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the location is archived. Archived locations can't be updated.\n__Note:__ [Archiving a location](https://dev.wix.com/api/rest/business-info/locations/archive-location)\ndoesn't affect its `status`." + }, + { + "name": "businessSchedule", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.BusinessSchedule" + } + ], + "doc": "Business schedule. Array of weekly recurring time periods when the location is open for business. Limited to 100 time periods.\n\n__Note:__ Not supported by Wix Bookings.\n" + }, + { + "name": "default", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether this is the default location. There can only be one default location per site. The default location can't be archived." + }, + { + "name": "description", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Location description." + }, + { + "name": "email", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Email address." + }, + { + "name": "fax", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Fax number." + }, + { + "name": "locationType", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Location type. **Note:** Currently not supported." + }, + { + "name": "name", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Location name." + }, + { + "name": "phone", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Phone number." + }, + { + "name": "revision", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Revision number, which increments by 1 each time the location is updated.\nTo prevent conflicting changes, the existing revision must be used when updating a location." + }, + { + "name": "status", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Location status. Defaults to `ACTIVE`.\n__Note:__ [Archiving a location](https://dev.wix.com/api/rest/business-info/locations/archive-location)\ndoesn't affect the location's status. `INACTIVE` is currently not supported." + }, + { + "name": "timeZone", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Timezone in `America/New_York` format." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "LocationsStreetAddress", + "members": [ + { + "name": "apt", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Apartment number." + }, + { + "name": "name", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Street name." + }, + { + "name": "number", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Street number." + } + ], + "docs": { + "description": [ + "Street address. Includes street name, number, and apartment number in separate fields." + ] + } + }, + { + "name": "MigrationData", + "members": [ + { + "name": "businessId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + }, + { + "name": "staffs", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.SessionsView.StaffData" + } + ] + } + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "MigrationEvent", + "members": [ + { + "name": "migrationData", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.MigrationData" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "MultipleSessionsCreated", + "members": [ + { + "name": "schedulesWithSessions", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.SessionsView.ScheduleWithSessions" + } + ] + } + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Participant", + "members": [ + { + "name": "_id", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Participant ID. Currently represents the booking.id." + }, + { + "name": "approvalStatus", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Approval status for the participant.\n\n" + }, + { + "name": "contactId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Contact ID." + }, + { + "name": "email", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Participant's email address." + }, + { + "name": "inherited", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the participant was inherited from the schedule, as opposed to being booked directly to the session." + }, + { + "name": "name", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Participant's name." + }, + { + "name": "partySize", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Group or party size. The number of people attending. Defaults to 0. Maximum is 250." + }, + { + "name": "phone", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Participant's phone number." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ParticipantNotification", + "members": [ + { + "name": "message", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Custom message to send to the participants about the changes to the booking." + }, + { + "name": "notifyParticipants", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether to send the message about the changes to the customer.\n\nDefault: `false`\n" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Price", + "members": [ + { + "name": "amount", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Required payment amount." + }, + { + "name": "currency", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Currency in which the amount is quoted." + }, + { + "name": "downPayAmount", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Amount of a down payment or deposit as part of the transaction." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Rate", + "members": [ + { + "name": "labeledPriceOptions", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Record", + "typeParams": [ + { + "nativeType": "string" + }, + { + "referenceType": "wix-bookings-v2.SessionsView.Price" + } + ] + } + } + ], + "doc": "Mapping between a named price option, for example, adult or child prices, and the price, currency, and down payment amount.\nWhen present in an update request, the `default_varied_price` is ignored to support backward compatibility." + }, + { + "name": "priceText", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Textual price information used when **Price Per Session** is set to **Custom Price** in the app's service details page.\nWhen present in an update request, the `default_varied_price` is ignored to support backward compatibility." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "RecurringInterval", + "members": [ + { + "name": "_id", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The recurring interval identifier." + }, + { + "name": "affectedSchedules", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.SessionsView.LinkedSchedule" + } + ] + } + } + ], + "doc": "Specifies the list of linked schedules and the way this link affects the corresponding schedules' availability. Can be calculated from the schedule or overridden on the recurring interval." + }, + { + "name": "end", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "The end time of the recurring interval. Optional. Empty value indicates that there is no end time." + }, + { + "name": "frequency", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.Frequency" + } + ], + "doc": "The frequency of the interval. Optional. The default is frequency with the default repetition." + }, + { + "name": "interval", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.Interval" + } + ], + "doc": "The interval rules. The day, hour and minutes the interval is recurring." + }, + { + "name": "intervalType", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The type of recurring interval.\n" + }, + { + "name": "start", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "The start time of the recurring interval. Required." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "RecurringSessionSplit", + "members": [ + { + "name": "newScheduleVersion", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "" + }, + { + "name": "oldScheduleVersion", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "" + }, + { + "name": "recurringSessions", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.SessionsView.Session" + } + ] + } + } + ], + "doc": "" + }, + { + "name": "scheduleId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "RecurringSessionsUpdated", + "members": [ + { + "name": "newRecurringSessions", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.SessionsView.Session" + } + ] + } + } + ], + "doc": "New schedule's recurring session list." + }, + { + "name": "oldRecurringSessions", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.SessionsView.Session" + } + ] + } + } + ], + "doc": "Old schedule's recurring session list." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ReplayCompleted", + "members": [ + { + "name": "totalSessions", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "The (minimum) number of sessions that were replayed." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ReplayRequest", + "members": [ + { + "name": "affectedScheduleId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Filter by either `session.schedule_id` or `session.affectedSchedules[*].scheduleId`. Optional." + }, + { + "name": "from", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "The date to replay sessions from. Required." + }, + { + "name": "replayId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The replay id. Required." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ReplayResponse", + "members": [ + { + "name": "window", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.Window" + } + ], + "doc": "The feed window." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Reschedule", + "members": [ + { + "name": "executeAt", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "" + }, + { + "name": "payload", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Schedule", + "members": [ + { + "name": "_id", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Schedule ID." + }, + { + "name": "availability", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.Availability" + } + ], + "doc": "An object describing how to calculate the schedule's availability.\nAn empty object indicates that the schedule is not available for booking." + }, + { + "name": "calendarConference", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.CalendarConference" + } + ], + "doc": "A conference created for the schedule. This is used when a participant is added to a schedule." + }, + { + "name": "capacity", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Maximum number of participants that can be added to the schedule's sessions.\nMust be at most `1` for schedule whose availability is affected by another schedule. E.g, appointment schedules of the Wix Bookings app." + }, + { + "name": "conferenceProvider", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.ConferenceProvider" + } + ], + "doc": "Conferencing Provider. A schedule with a conferencing provider will use to provider information to create a conference on the provider's system when a session is created on the schedule or on one of its linked schedule's." + }, + { + "name": "created", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "Schedule creation date." + }, + { + "name": "externalCalendarOverrides", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.ExternalCalendarOverrides" + } + ], + "doc": "Title and description values to override session defaults when syncing to an external calendar.\nLearn more about [syncing calendars](https://support.wix.com/en/article/wix-bookings-important-information-about-syncing-google-calendars-with-wix-bookings)." + }, + { + "name": "inheritedFields", + "readOnly": true, + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Fields which were inherited from the Business Info page under Settings in the Dashboard." + }, + { + "name": "intervals", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.SessionsView.RecurringInterval" + } + ] + } + } + ], + "doc": "Specifies the intervals for the sessions calculation. Optional. e.g. when creating class service you can add\npattern for recurring intervals, these intervals can be returned as schedule's sessions or available slots if\nthere are no other availability calculation constraints and the capacity is bigger then the current total number of sessions' participants." + }, + { + "name": "location", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.Location" + } + ], + "doc": "Default location for the schedule's sessions." + }, + { + "name": "participants", + "readOnly": true, + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.SessionsView.Participant" + } + ] + } + } + ], + "doc": "Participants currently registered to sessions in this schedule.\nParticipants who are registered in the schedule are automatically registered to any session that is created for the schedule." + }, + { + "name": "rate", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.Rate" + } + ], + "doc": "Price options offered when booking this schedule's slots. Default is no rate." + }, + { + "name": "scheduleOwnerId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the schedule's owner entity. This may be a resource ID or a service ID." + }, + { + "name": "status", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Schedule status." + }, + { + "name": "tags", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Tags for grouping schedules. These tags are the default tags for the schedule's sessions.\nThe Wix Bookings app uses the following predefined tags to set schedule type: `\"INDIVIDUAL\"`, `\"GROUP\"`, and `\"COURSE\"`. Once the schedule type is set using these tags, you cannot update it. In addition to the app's tags, you can create and update your own tags." + }, + { + "name": "timeZone", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + }, + { + "name": "title", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Default title for the schedule's sessions. Maximum length: 6000 characters." + }, + { + "name": "totalNumberOfParticipants", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Number of participants registered to sessions in this schedule, calculated as the sum of the party sizes." + }, + { + "name": "updated", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "Schedule last update date." + }, + { + "name": "version", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Schedule version number, updated each time the schedule is updated." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ScheduleCancelled", + "members": [ + { + "name": "oldSchedule", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.Schedule" + } + ], + "doc": "" + }, + { + "name": "participantNotification", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.ParticipantNotification" + } + ], + "doc": "Whether to notify participants about the change and an optional custom message" + }, + { + "name": "schedule", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.Schedule" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ScheduleCreated", + "members": [ + { + "name": "schedule", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.Schedule" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ScheduleNotification", + "members": [ + { + "name": "availabilityPolicyUpdated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.AvailabilityPolicyUpdated" + } + ], + "doc": "" + }, + { + "name": "instanceId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + }, + { + "name": "intervalSplit", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.IntervalSplit" + } + ], + "doc": "" + }, + { + "name": "migrationEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.MigrationEvent" + } + ], + "doc": "supported only for schedule migration apis." + }, + { + "name": "multipleSessionsCreated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.MultipleSessionsCreated" + } + ], + "doc": "supported only for schedule migration apis." + }, + { + "name": "notifyParticipants", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether to notify participants about changed sessions. deprecated, use participant_notification" + }, + { + "name": "preserveFutureSessionsWithParticipants", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "" + }, + { + "name": "recurringSessionSplit", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.RecurringSessionSplit" + } + ], + "doc": "" + }, + { + "name": "scheduleCancelled", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.ScheduleCancelled" + } + ], + "doc": "" + }, + { + "name": "scheduleCreated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.ScheduleCreated" + } + ], + "doc": "" + }, + { + "name": "scheduleUnassignedFromUser", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.ScheduleUnassignedFromUser" + } + ], + "doc": "Inspect `schedule.scheduleOwnerUserId` on `scheduleUpdated` instead." + }, + { + "name": "scheduleUpdated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.ScheduleUpdated" + } + ], + "doc": "" + }, + { + "name": "sessionCancelled", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.SessionCancelled" + } + ], + "doc": "" + }, + { + "name": "sessionCreated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.SessionCreated" + } + ], + "doc": "" + }, + { + "name": "sessionUpdated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.SessionUpdated" + } + ], + "doc": "" + }, + { + "name": "siteProperties", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.SitePropertiesOnScheduleCreation" + } + ], + "doc": "site properties. Optional. Given in create schedule notification." + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfScheduleNotificationEventOneOf", + "members": [ + "availabilityPolicyUpdated", + "intervalSplit", + "migrationEvent", + "multipleSessionsCreated", + "recurringSessionSplit", + "scheduleCancelled", + "scheduleCreated", + "scheduleUnassignedFromUser", + "scheduleUpdated", + "sessionCancelled", + "sessionCreated", + "sessionUpdated" + ] + } + ] + }, + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ScheduleNotificationEventOneOf", + "members": [ + { + "name": "availabilityPolicyUpdated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.AvailabilityPolicyUpdated" + } + ], + "doc": "" + }, + { + "name": "intervalSplit", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.IntervalSplit" + } + ], + "doc": "" + }, + { + "name": "migrationEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.MigrationEvent" + } + ], + "doc": "supported only for schedule migration apis." + }, + { + "name": "multipleSessionsCreated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.MultipleSessionsCreated" + } + ], + "doc": "supported only for schedule migration apis." + }, + { + "name": "recurringSessionSplit", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.RecurringSessionSplit" + } + ], + "doc": "" + }, + { + "name": "scheduleCancelled", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.ScheduleCancelled" + } + ], + "doc": "" + }, + { + "name": "scheduleCreated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.ScheduleCreated" + } + ], + "doc": "" + }, + { + "name": "scheduleUnassignedFromUser", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.ScheduleUnassignedFromUser" + } + ], + "doc": "Inspect `schedule.scheduleOwnerUserId` on `scheduleUpdated` instead." + }, + { + "name": "scheduleUpdated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.ScheduleUpdated" + } + ], + "doc": "" + }, + { + "name": "sessionCancelled", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.SessionCancelled" + } + ], + "doc": "" + }, + { + "name": "sessionCreated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.SessionCreated" + } + ], + "doc": "" + }, + { + "name": "sessionUpdated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.SessionUpdated" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ScheduleUnassignedFromUser", + "members": [ + { + "name": "schedule", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.Schedule" + } + ], + "doc": "The schedule that was unassigned from the user." + }, + { + "name": "userId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The Wix user id." + } + ], + "docs": { + "description": [ + "Schedule unassigned from user." + ] + } + }, + { + "name": "ScheduleUpdated", + "members": [ + { + "name": "newSchedule", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.Schedule" + } + ], + "doc": "The new schedule after the update." + }, + { + "name": "oldSchedule", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.Schedule" + } + ], + "doc": "The old schedule before the update." + }, + { + "name": "participantNotification", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.ParticipantNotification" + } + ], + "doc": "Whether to notify participants about the change and an optional custom message" + }, + { + "name": "recurringSessions", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.RecurringSessionsUpdated" + } + ], + "doc": "Recurring sessions updated event. If this field is given, the reason for the schedule updated event was\nupdating at least one of the given schedule's recurring sessions.\nThis event is triggered by create/update/delete recurring session apis." + }, + { + "name": "triggeredByAnonymizeRequest", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether this notification was created as a result of an anonymization request, such as GDPR.\nAn anonymized participant will have the following details:\nname = \"deleted\"\nphone = \"deleted\"\nemail = \"deleted@deleted.com\"" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ScheduleWithSessions", + "members": [ + { + "name": "schedule", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.Schedule" + } + ], + "doc": "" + }, + { + "name": "sessions", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.SessionsView.Session" + } + ] + } + } + ], + "doc": "" + }, + { + "name": "siteProperties", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.SitePropertiesOnScheduleCreation" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Session", + "members": [ + { + "name": "_id", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Session ID." + }, + { + "name": "affectedSchedules", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.SessionsView.LinkedSchedule" + } + ] + } + } + ], + "doc": "An object specifying a list of schedules and the way each schedule's availability is affected by the session. For example, the schedule of an instructor is affected by sessions of the class that they instruct.\nThe array is inherited from the schedule and can be overridden even if the session is a recurring session." + }, + { + "name": "calendarConference", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.CalendarConference" + } + ], + "doc": "A conference created for the session according to the details set in the schedule's conference provider information.\nIf the session is a recurring session, this field is inherited from the schedule." + }, + { + "name": "capacity", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Maximum number of participants that can be added to the session. Defaults to the schedule capacity.\nThe value is inherited from the schedule and can be overridden unless the session is a recurring session." + }, + { + "name": "end", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.CalendarDateTime" + } + ], + "doc": "An object specifying the end date and time of the session. The `end` time must be after the `start` time and be same type as `start`.\nIf the session is a recurring session, `end` must contain a `localDateTime`." + }, + { + "name": "externalCalendarOverrides", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.ExternalCalendarOverrides" + } + ], + "doc": "Title and description values to override session defaults when syncing to an external calendar.\nLearn more about [syncing calendars](https://support.wix.com/en/article/wix-bookings-important-information-about-syncing-google-calendars-with-wix-bookings).\nThe value is inherited from the schedule and can be overridden unless the session is a recurring session." + }, + { + "name": "inheritedFields", + "readOnly": true, + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "A list of properties for which values were inherited from the schedule.\nThis does not include participants that were inherited from the schedule." + }, + { + "name": "instanceOfRecurrence", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "A string representing a recurrence rule (RRULE) if the session is an instance of a recurrence pattern.\nEmpty when the session is not an instance of a recurrence rule, or if the session defines a recurrence pattern, and `recurrence` is not empty." + }, + { + "name": "location", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.Location" + } + ], + "doc": "An object describing the location where the session takes place.\nDefaults to the schedule location.\nFor single sessions, `session.location.businessLocation` can only be provided for locations that are defined in the schedule using `schedule.location` or `schedule.availability.locations`." + }, + { + "name": "notes", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Additional information about the session.\nNotes are not supported for recurring sessions." + }, + { + "name": "originalStart", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "Original start date and time of the session in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601#Coordinated_Universal_Time_(UTC)) format." + }, + { + "name": "participants", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.SessionsView.Participant" + } + ] + } + } + ], + "doc": "List of participants booked for the session.\nThe list includes participants who have registered for this specific session, and participants who have registered for a schedule that includes this session.\nIf the session is a recurring session, this field must be empty." + }, + { + "name": "rate", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.Rate" + } + ], + "doc": "The price options offered for the session. Defaults to the schedule rate.\nThe value is inherited from the schedule and can be overridden unless the session is a recurring session." + }, + { + "name": "recurrence", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "A string representing a recurrence rule (RRULE) for a recurring session, as defined in [iCalendar RFC 5545](https://icalendar.org/iCalendar-RFC-5545/3-3-10-recurrence-rule.html).\nIf the session is an instance of a recurrence pattern, the `instanceOfRecurrence` property will be contain the recurrence rule and this property will be empty.\nThe RRULE defines a rule for repeating a session.\nSupported parameters are:\n\n|Keyword|Description|Supported values|\n|--|--|---|\n|`FREQ`|The frequency at which the session is recurs. Required.|`WEEKLY`|\n|`INTERVAL`|How often, in terms of `FREQ`, the session recurs. Default is 1. Optional.|\n|`UNTIL`|The UTC end date and time of the recurrence. Optional.|\n|`BYDAY`|Day of the week when the event should recur. Required.|One of: `MO`, `TU`, `WE`, `TH`, `FR`, `SA`, `SU`|\n\n\nFor example, a session that repeats every second week on a Monday until January 7, 2022 at 8 AM:\n`\"FREQ=WEEKLY;INTERVAL=2;BYDAY=MO;UNTIL=20220107T080000Z\"`\n\n\n" + }, + { + "name": "recurringIntervalId", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Recurring interval ID. Defined when a session will be a recurring session. read-only. Optional.\nFor exmaple, when creating a class service with recurring sessions, you add a recurrence rule to create recurring sessions.\nThis field is omitted for single sessions or instances of recurring sessions.\nSpecified when the session was originally generated from a schedule recurring interval.\nDeprecated. Use `recurringSessionId`." + }, + { + "name": "recurringSessionId", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The ID of the recurring session if this session is an instance of a recurrence. Use this ID to update the recurrence and all of the instances." + }, + { + "name": "scheduleId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the schedule that the session belongs to." + }, + { + "name": "scheduleOwnerId", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the resource or service that the session's schedule belongs to." + }, + { + "name": "start", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.CalendarDateTime" + } + ], + "doc": "An object specifying the start date and time of the session. If the session is a recurring session, `start` must contain a `localDateTime`." + }, + { + "name": "status", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Session status.\n" + }, + { + "name": "tags", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Tags for the session.\nThe value is inherited from the schedule and can be overridden unless the session is a recurring session." + }, + { + "name": "timeReservedAfter", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Time reserved after the session end time, derived from the schedule availability constraints and the time between slots. Read-only.\nIf the session is a recurring session, this field must be empty." + }, + { + "name": "title", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Session title.\nThe value is inherited from the schedule and can be overridden unless the session is a recurring session." + }, + { + "name": "totalNumberOfParticipants", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "The number of participants booked for the session. Read-only.\nCalculated as the sum of the party sizes." + }, + { + "name": "type", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Session type.\n" + }, + { + "name": "version", + "readOnly": true, + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.SessionVersion" + } + ], + "doc": "The session version.\nComposed by the schedule, session and participants versions." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "SessionAdded", + "members": [ + { + "name": "session", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.Session" + } + ], + "doc": "The session which was added within the feed window." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "SessionAddedOrUpdated", + "members": [ + { + "name": "previousSession", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.Session" + } + ], + "doc": "Optionally, the previous session." + }, + { + "name": "session", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.Session" + } + ], + "doc": "The session which was added or updated within the view." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "SessionCancelled", + "members": [ + { + "name": "participantNotification", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.ParticipantNotification" + } + ], + "doc": "Whether to notify participants about the change and an optional custom message" + }, + { + "name": "session", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.Session" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "SessionCreated", + "members": [ + { + "name": "session", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.Session" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "SessionRemoved", + "members": [ + { + "name": "previousSession", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.Session" + } + ], + "doc": "Optionally, the previous session." + }, + { + "name": "session", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.Session" + } + ], + "doc": "The updated session which was removed from the view." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "SessionUpdated", + "members": [ + { + "name": "newSession", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.Session" + } + ], + "doc": "" + }, + { + "name": "oldSession", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.Session" + } + ], + "doc": "" + }, + { + "name": "participantNotification", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.ParticipantNotification" + } + ], + "doc": "Whether to notify participants about the change and an optional custom message" + }, + { + "name": "triggeredByAnonymizeRequest", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether this notification was created as a result of an anonymization request, such as GDPR.\nAn anonymized participant will have the following details:\nname = \"deleted\"\nphone = \"deleted\"\nemail = \"deleted@deleted.com\"" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "SessionVersion", + "members": [ + { + "name": "number", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Incremental version number, which is updated on each change to the session or on changes affecting the session." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "SessionView", + "members": [ + { + "name": "endDate", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "The view end date." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "SessionViewExtended", + "members": [ + { + "name": "extendedSessionViewEndDate", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "The extended session view end date." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "SessionViewUpdated", + "members": [ + { + "name": "sessionAddedOrUpdated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.SessionAddedOrUpdated" + } + ], + "doc": "Session has been added or updated within the view." + }, + { + "name": "sessionRemoved", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.SessionRemoved" + } + ], + "doc": "Session has been removed from the view." + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfSessionViewUpdatedTypeOneOf", + "members": [ + "sessionAddedOrUpdated", + "sessionRemoved" + ] + } + ] + }, + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "SessionViewUpdatedTypeOneOf", + "members": [ + { + "name": "sessionAddedOrUpdated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.SessionAddedOrUpdated" + } + ], + "doc": "Session has been added or updated within the view." + }, + { + "name": "sessionRemoved", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.SessionRemoved" + } + ], + "doc": "Session has been removed from the view." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "SitePropertiesOnScheduleCreation", + "members": [ + { + "name": "timeZone", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The global time zone value." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "SpecialHourPeriod", + "members": [ + { + "name": "comment", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Additional info about the exception. For example, \"We close earlier on New Year's Eve.\"" + }, + { + "name": "endDate", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "End date and time of the exception in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format and [Coordinated Universal Time (UTC)](https://en.wikipedia.org/wiki/Coordinated_Universal_Time)." + }, + { + "name": "isClosed", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the business is closed (or the service is not available) during the exception.\n\nDefault: `true`.\n" + }, + { + "name": "startDate", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Start date and time of the exception in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format and [Coordinated Universal Time (UTC)](https://en.wikipedia.org/wiki/Coordinated_Universal_Time)." + } + ], + "docs": { + "description": [ + "Exception to the business's regular hours. The business can be open or closed during the exception." + ] + } + }, + { + "name": "SplitInterval", + "members": [ + { + "name": "sameAsDuration", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the slot duration is used as the split interval value.\nIf `same_as_duration` is `true`, the `value_in_minutes` is the sum of the first duration in\n`schedule.availabilityConstraints.SlotDurations` field, and `schedule.availabilityConstraints.TimeBetweenSlots` field." + }, + { + "name": "valueInMinutes", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Number of minutes between available slots' start times when `same_as_duration` is `false`." + } + ], + "docs": { + "description": [ + "The time between available slots' start times. For example, For 5 minute slots, 3:00, 3:05, 3:15 etc. For 1 hour slots, 3:00, 4:00, 5:00 etc." + ] + } + }, + { + "name": "StaffData", + "members": [ + { + "name": "refreshToken", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + }, + { + "name": "resourceId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + }, + { + "name": "syncRequestEmail", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "StreetAddress", + "members": [ + { + "name": "apt", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Apartment number." + }, + { + "name": "name", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Street name." + }, + { + "name": "number", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Street number." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Subdivision", + "members": [ + { + "name": "code", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Subdivision code. Usually state, region, prefecture or province code, according to [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2)." + }, + { + "name": "name", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Subdivision full name." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Task", + "members": [ + { + "name": "executeAt", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "" + }, + { + "name": "key", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.TaskKey" + } + ], + "doc": "" + }, + { + "name": "payload", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "TaskAction", + "members": [ + { + "name": "cancel", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.Cancel" + } + ], + "doc": "" + }, + { + "name": "complete", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.Complete" + } + ], + "doc": "" + }, + { + "name": "reschedule", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.Reschedule" + } + ], + "doc": "" + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfTaskActionActionOneOf", + "members": [ + "cancel", + "complete", + "reschedule" + ] + } + ] + }, + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "TaskActionActionOneOf", + "members": [ + { + "name": "cancel", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.Cancel" + } + ], + "doc": "" + }, + { + "name": "complete", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.Complete" + } + ], + "doc": "" + }, + { + "name": "reschedule", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.SessionsView.Reschedule" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "TaskKey", + "members": [ + { + "name": "appId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + }, + { + "name": "instanceId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + }, + { + "name": "subjectId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "TimePeriod", + "members": [ + { + "name": "closeDay", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Day of the week the period ends on." + }, + { + "name": "closeTime", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Time the period ends in 24-hour [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) extended format. Valid values are `00:00` to `24:00`, where `24:00` represents\nmidnight at the end of the specified day.\n\n__Note:__ If `openDay` and `closeDay` specify the same day of the week `closeTime` must be later than `openTime`.\n" + }, + { + "name": "openDay", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Day of the week the period starts on." + }, + { + "name": "openTime", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Time the period starts in 24-hour [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) extended format. Valid values are `00:00` to `24:00`, where `24:00` represents\nmidnight at the end of the specified day." + } + ], + "docs": { + "description": [ + "Weekly recurring time periods when the business is regularly open or the service is available." + ] + } + }, + { + "name": "Version", + "members": [ + { + "name": "participantsVersion", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Participants version number, updated each time the schedule participants are updated." + }, + { + "name": "scheduleVersion", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Schedule version number, updated each time the schedule is updated." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Window", + "members": [ + { + "name": "endDate", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "The window end date." + }, + { + "name": "futureDurationInDays", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "The number of days the window lasts into the future." + }, + { + "name": "version", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "The window version." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "WindowExtended", + "members": [ + { + "name": "windowEndDate", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "The updated window end date." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "WindowMoved", + "members": [ + { + "name": "edge", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "The updated window edge." + }, + { + "name": "windowVersion", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "The window version." + } + ], + "docs": { + "description": [ + "Deprecated. Please use `window_extended` instead." + ] + } + } + ] +} From 12675f70592ed05160ca9310fd8f09149be800c6 Mon Sep 17 00:00:00 2001 From: wix-docs-feds <87931637+wix-docs-feds@users.noreply.github.com> Date: Mon, 6 Mar 2023 14:28:59 +0200 Subject: [PATCH 09/45] Moved sender-details to email-marketing-v2. * Auto commit to autodocs-wix-email-marketing-v2 from WixDocs Server * Auto commit to autodocs-wix-email-marketing-v2 from WixDocs Server * Auto commit to autodocs-wix-email-marketing-v2 from WixDocs Server * Auto commit to autodocs-wix-email-marketing-v2 from WixDocs Server * updated ecom updateCheckout example * Auto commit to autodocs-wix-ecom-backend from WixDocs Server * Publishing Bookings Services Publishing Bookings Services * Auto commit to autodocs-wix-ecom-backend from WixDocs Server * Auto commit to autodocs-wix-ecom-backend from WixDocs Server * Auto commit to autodocs-wix-ecom-backend from WixDocs Server * Auto commit to autodocs-wix-ecom-backend from WixDocs Server * Auto commit to autodocs-wix-ecom-backend from WixDocs Server --------- Co-authored-by: guyofeck Co-authored-by: roysha-wix <62389977+roysha-wix@users.noreply.github.com> * Updated intro for sender-details move to email-marketing.v2 * Deleting sender-details * #buildall --------- Co-authored-by: guyofeck Co-authored-by: roysha-wix <62389977+roysha-wix@users.noreply.github.com> Co-authored-by: AriGoldWix <95754543+AriGoldWix@users.noreply.github.com> --- .../SenderDetails.service.json | 438 ++++++++++++++++++ .../guides/sender-details-intro.md | 27 ++ wix-email-marketing.v2/metadata.json | 7 + 3 files changed, 472 insertions(+) create mode 100644 wix-email-marketing-v2/wix-email-marketing-v2/SenderDetails.service.json create mode 100644 wix-email-marketing-v2/wix-email-marketing-v2/SenderDetails/guides/sender-details-intro.md create mode 100644 wix-email-marketing.v2/metadata.json diff --git a/wix-email-marketing-v2/wix-email-marketing-v2/SenderDetails.service.json b/wix-email-marketing-v2/wix-email-marketing-v2/SenderDetails.service.json new file mode 100644 index 0000000000..35efc52309 --- /dev/null +++ b/wix-email-marketing-v2/wix-email-marketing-v2/SenderDetails.service.json @@ -0,0 +1,438 @@ +{ + "name": "SenderDetails", + "memberOf": "wix-email-marketing-v2", + "mixes": [], + "callbacks": [], + "extra": {}, + "clientId": "wix-email-marketing.v2-sender_details", + "docs": {}, + "relatedGuides": [], + "properties": [], + "operations": [ + { + "name": "getSenderDetails", + "params": [], + "requiredFields": [], + "ret": { + "type": [ + { + "complexType": { + "nativeType": "Promise", + "typeParams": [ + { + "referenceType": "wix-email-marketing-v2.SenderDetails.GetSenderDetailsResponse" + } + ] + } + } + ], + "doc": null + }, + "docs": { + "summary": "Retrieves sender details.", + "description": [ + "The sender details include the information displayed as the email sender's name and email address.\n\n+ If you send an email campaign with a public email domain (e.g. @gmail.com or @yahoo.com), the email address will not be displayed in the 'from' header. Instead, the email address is replaced with @wixemails.com (or @wixsitemail.com for free users), and the sender's email is placed in the 'reply-to' header.\n\n+ If you send an email campaign with an email from a Wix managed domain, that email will be displayed in the 'from' header.\n\n+ If you send an email from a custom domain that is not managed by Wix, a line will be inserted that states that the email was sent via wixemails.com.\n\n\n>**Note:** This function is restricted and only runs if you elevate permissions using the [`wix-auth.elevate()`](https://www.wix.com/velo/reference/wix-auth/elevate) function." + ], + "examples": [ + { + "title": "getSenderDetails example", + "body": [ + "import { senderDetails } from 'wix-email-marketing.v2';", + " ", + " async function getSenderDetails() {", + " try {", + " const result = await senderDetails.getSenderDetails();", + "", + " return result;", + " } catch (error) {", + " console.error(error);", + " // Handle the error", + " }", + " }", + " " + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "resolveActualFromAddress", + "params": [ + { + "name": "fromAddress", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "User's provided address from which to send email marketing campaign.", + "required": true + } + ], + "requiredFields": [ + "fromAddress" + ], + "ret": { + "type": [ + { + "complexType": { + "nativeType": "Promise", + "typeParams": [ + { + "referenceType": "wix-email-marketing-v2.SenderDetails.ResolveActualFromAddressResponse" + } + ] + } + } + ], + "doc": null + }, + "docs": { + "summary": "Checks if the sender's email address will be used as from-address or replaced (not related to current sender details).", + "description": [ + ">**Note:** This function is restricted and only runs if you elevate permissions using the [`wix-auth.elevate()`](https://www.wix.com/velo/reference/wix-auth/elevate) function." + ], + "examples": [ + { + "title": "resolveActualFromAddress example", + "body": [ + "import { senderDetails } from 'wix-email-marketing.v2';", + " ", + " async function resolveActualFromAddress(fromAddress) {", + " try {", + " const result = await senderDetails.resolveActualFromAddress(fromAddress);", + "", + " return result;", + " } catch (error) {", + " console.error(error);", + " // Handle the error", + " }", + " }", + " " + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "updateSenderDetails", + "params": [ + { + "name": "senderDetails", + "type": [ + { + "referenceType": "wix-email-marketing-v2.SenderDetails.SenderDetails" + } + ], + "doc": "New sender details.", + "required": true + } + ], + "requiredFields": [ + "senderDetails" + ], + "ret": { + "type": [ + { + "complexType": { + "nativeType": "Promise", + "typeParams": [ + { + "referenceType": "wix-email-marketing-v2.SenderDetails.UpdateSenderDetailsResponse" + } + ] + } + } + ], + "doc": null + }, + "docs": { + "summary": "Updates sender details.", + "description": [ + "If the `fromEmail` is changed, a verification code will be sent to the new email address.\n\nIf verification is needed, a verification email will be sent to the user, and the returned `verificationNeeded` value will be `true`.\n\n\n>**Note:** This function is restricted and only runs if you elevate permissions using the [`wix-auth.elevate()`](https://www.wix.com/velo/reference/wix-auth/elevate) function." + ], + "examples": [ + { + "title": "updateSenderDetails example", + "body": [ + "import { senderDetails } from 'wix-email-marketing.v2';", + " ", + " async function updateSenderDetails(senderDetails) {", + " try {", + " const result = await senderDetails.updateSenderDetails(senderDetails);", + "", + " return result;", + " } catch (error) {", + " console.error(error);", + " // Handle the error", + " }", + " }", + " " + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "verifyEmail", + "params": [ + { + "name": "verificationCode", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Verification code.", + "required": true + } + ], + "requiredFields": [ + "verificationCode" + ], + "ret": { + "type": [ + { + "complexType": { + "nativeType": "Promise", + "typeParams": [ + { + "nativeType": "void" + } + ] + } + } + ], + "doc": null + }, + "docs": { + "summary": "Verifies the sender's email using a verification code sent to the user's email address upon update.", + "description": [ + ">**Note:** This function is restricted and only runs if you elevate permissions using the [`wix-auth.elevate()`](https://www.wix.com/velo/reference/wix-auth/elevate) function." + ], + "examples": [ + { + "title": "verifyEmail example", + "body": [ + "import { senderDetails } from 'wix-email-marketing.v2';", + " ", + " async function verifyEmail(verificationCode) {", + " try {", + " const result = await senderDetails.verifyEmail(verificationCode);", + "", + " return result;", + " } catch (error) {", + " console.error(error);", + " // Handle the error", + " }", + " }", + " " + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + } + ], + "messages": [ + { + "name": "GetSenderDetailsRequest", + "members": [], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "GetSenderDetailsResponse", + "members": [ + { + "name": "senderDetails", + "optional": true, + "type": [ + { + "referenceType": "wix-email-marketing-v2.SenderDetails.SenderDetails" + } + ], + "doc": "Current sender details." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ResolveActualFromAddressRequest", + "members": [ + { + "name": "fromAddress", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "User's provided address from which to send email marketing campaign." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ResolveActualFromAddressResponse", + "members": [ + { + "name": "actualFromAddress", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Actual from-address that will be used for email distribution." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "SenderDetails", + "members": [ + { + "name": "dateVerified", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "Date and time the sender's email address was verified." + }, + { + "name": "fromEmail", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Email address of sender." + }, + { + "name": "fromName", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Display name of sender." + } + ], + "docs": { + "description": [ + "A sender details object contains the information that is displayed as the email sender's name and email address.\nIf sending email campaigns with a public email domain (e.g. @gmail.com or @yahoo.com), the email address will not\nbe displayed in the 'from' header. Instead, the email address is replaced with @wixemails.com (or @wixsitemail.com for free users),\nand the sender's email is placed in the 'reply-to' header." + ] + } + }, + { + "name": "UpdateSenderDetailsRequest", + "members": [ + { + "name": "senderDetails", + "type": [ + { + "referenceType": "wix-email-marketing-v2.SenderDetails.SenderDetails" + } + ], + "doc": "New sender details." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "UpdateSenderDetailsResponse", + "members": [ + { + "name": "verificationNeeded", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether email address needs verification." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "VerifySenderEmailRequest", + "members": [ + { + "name": "verificationCode", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Verification code." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "VerifySenderEmailResponse", + "members": [], + "docs": { + "description": [ + "" + ] + } + } + ] +} diff --git a/wix-email-marketing-v2/wix-email-marketing-v2/SenderDetails/guides/sender-details-intro.md b/wix-email-marketing-v2/wix-email-marketing-v2/SenderDetails/guides/sender-details-intro.md new file mode 100644 index 0000000000..6dc571f0ef --- /dev/null +++ b/wix-email-marketing-v2/wix-email-marketing-v2/SenderDetails/guides/sender-details-intro.md @@ -0,0 +1,27 @@ +--- +title: Introduction +--- + +# Introduction + +
+ Developer Preview +
+ APIs in Developer Preview are subject to change and are not intended for use in production.
Send us your suggestions for improving this API. Your feedback is valuable to us.
+
+ +  +> **Note:** This module is [universal](/api-overview/api-versions#universal-modules). Functions in this module can run on both the backend and frontend, unless specified otherwise. + + +The Sender Details API contains the information that is displayed as the sender’s name and email address when sending an email from your Wix site. Use the API to [get](wix-email-marketing-v2/senderdetails/getsenderdetails) and [update](wix-email-marketing-v2/senderdetails/updatesenderdetails) your email sender details, and [verify](wix-email-marketing-v2/senderdetails/verifyemail) your sender email address. + +If you send an email campaign with a public email domain (e.g. @gmail.com or @yahoo.com), the email address isn't displayed in the 'from' header. Instead, the email address is replaced with @wixemails.com (or @wixsitemail.com for free users), and the sender's email is placed in the 'reply-to' header. + +If you send an email campaign with an email from a Wix managed domain, that email will be displayed in the 'from' header. If you send an email from a custom domain that is not managed by Wix, a line will be inserted that states that the email was sent via wixemails.com. + +To use the Sender Details API, import `{ senderDetails }` from the `wix-email-marketing.v2` module: + +```js +import { senderDetails } from `wix-email-marketing.v2`; +``` diff --git a/wix-email-marketing.v2/metadata.json b/wix-email-marketing.v2/metadata.json new file mode 100644 index 0000000000..4fa19e79ce --- /dev/null +++ b/wix-email-marketing.v2/metadata.json @@ -0,0 +1,7 @@ +{ + "name": "@wix/wix-email-marketing.v2", + "fingerprint": "1af0f9e8005d507cca0bdd533d2d3fc4fd1cc2adf94c60f64874d62e", + "groupId": "com.wixpress.velo-autogen", + "artifactId": "wix-email-marketing-v2-velo-autogen", + "module": "wix-email-marketing.v2" +} From 628fb19fdd17b881a4d95884a8834798f2440f9d Mon Sep 17 00:00:00 2001 From: adamfri <89579857+adamfri@users.noreply.github.com> Date: Mon, 13 Mar 2023 08:42:49 +0200 Subject: [PATCH 10/45] Fix dev preview (#1734) * Update buildDevPreview.yaml * Update syncMenuEditor.yaml --- .github/workflows/buildDevPreview.yaml | 43 +++++++++++++ .github/workflows/syncMenuEditor.yaml | 47 +++++++++++++++ scripts/buildDevPreviewList.mjs | 68 +++++++++++++++++++++ scripts/getHiddenItems.mjs | 83 ++++++++++++++++++++++++++ scripts/hiddenItems.json | 1 + 5 files changed, 242 insertions(+) create mode 100644 .github/workflows/buildDevPreview.yaml create mode 100644 .github/workflows/syncMenuEditor.yaml create mode 100644 scripts/buildDevPreviewList.mjs create mode 100644 scripts/getHiddenItems.mjs create mode 100644 scripts/hiddenItems.json diff --git a/.github/workflows/buildDevPreview.yaml b/.github/workflows/buildDevPreview.yaml new file mode 100644 index 0000000000..bf2d0d24ef --- /dev/null +++ b/.github/workflows/buildDevPreview.yaml @@ -0,0 +1,43 @@ +name : build_dev_preview + +on: + pull_request: + types: [ closed ] + +jobs: + build-dev-preview: + if: github.event.pull_request.merged == true + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + ref: master + - uses: actions/setup-node@v3 + with: + node-version: '18.x' + - name: Build Dev Preview List + run : | + npm install get-all-files + git config user.email "adamfri@wix.com" + git config user.name "Adam Friedmann" + git checkout -b auto-dev-preview-update-${{github.head_ref}} + node scripts/buildDevPreviewList.mjs + git add guides/developer-preview.md + DIFF=$(git status --porcelain) + if [[ "$DIFF" == *"developer-preview.md"* ]]; then + git commit -m "New Dev Preview List" + git push --set-upstream origin auto-dev-preview-update-${{github.head_ref}} --force + echo "changes_pushed=yes" >> $GITHUB_ENV + echo "branch_name=auto-dev-preview-update-${{github.head_ref}}" >> $GITHUB_ENV + fi + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - uses: slackapi/slack-github-action@v1.23.0 + if: ${{ env.changes_pushed == 'yes' }} + with: + payload: | + { + "branch_name" : "${{ env.branch_name }}" + } + env: + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} diff --git a/.github/workflows/syncMenuEditor.yaml b/.github/workflows/syncMenuEditor.yaml new file mode 100644 index 0000000000..4287cc5f82 --- /dev/null +++ b/.github/workflows/syncMenuEditor.yaml @@ -0,0 +1,47 @@ +name: sync_menu_editor + +on: + schedule: + - cron: '0 8 * * *' + +jobs: + check-menu-editor: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + ref: master + - uses: actions/setup-node@v3 + with: + node-version: '18.x' + - name: Sync Menu Editor + run: | + npm install node-fetch + npm install htmlparser2 + npm install cheerio + git config user.email "adamfri@wix.com" + git config user.name "Adam Friedmann" + git checkout -b menu-editor-sync + node scripts/getHiddenItems.mjs + git add scripts/hiddenItems.json + git status --porcelain + DIFF=$(git status --porcelain) + if [[ "$DIFF" == *"hiddenItems.json"* ]]; then + npm install get-all-files + node scripts/buildDevPreviewList.mjs + git add guides/developer-preview.md + git commit -m "Syncing with hidden items in the menu editor" + git push --set-upstream origin menu-editor-sync --force + echo "changes_pushed=yes" >> $GITHUB_ENV + fi + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - uses: slackapi/slack-github-action@v1.23.0 + if: ${{ env.changes_pushed == 'yes' }} + with: + payload: | + { + "branch_name" : "menu-editor-sync" + } + env: + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} diff --git a/scripts/buildDevPreviewList.mjs b/scripts/buildDevPreviewList.mjs new file mode 100644 index 0000000000..3cb3ee9d84 --- /dev/null +++ b/scripts/buildDevPreviewList.mjs @@ -0,0 +1,68 @@ +import { getAllFilesSync } from 'get-all-files' +import { createRequire } from "module"; +const require = createRequire(import.meta.url); +import fs from 'fs'; +// Import module, submodules, and functions that are hidden in the menu editor. +const hiddenItems = require('./hiddenItems.json'); + +function findDevPreviewFunctions() { + let modules = {}; + for (const file of getAllFilesSync('../')) { + if (file.endsWith('.service.json')) { + // Grab file data + let jsonData = require(`../${file}`); + // Check if the module or submodule is hidden in the menu editor + const longSubmoduleName = `${jsonData.memberOf}.${jsonData.name.toLowerCase()}`; + if(hiddenItems.modules.includes(jsonData.memberOf) || hiddenItems.submodules.includes(longSubmoduleName)){continue;} + // Process functions + const previewFunctions = [] + for(const operation of jsonData.operations) { + // Check if the function is hidden in the menu editor + const longFunctionName = `${jsonData.memberOf}.${jsonData.name.toLowerCase()}.${operation.name.toLowerCase()}`; + if(hiddenItems.functions.includes(longFunctionName)){continue;} + if (operation.hasOwnProperty('customLabels') && operation['customLabels'].some(e => e.id === 'maturity-beta')) { + previewFunctions.push(operation.name); + } + }; + if (previewFunctions.length > 0) { + const moduleName = jsonData.memberOf.split('.')[0]; + if (!modules.hasOwnProperty(moduleName)) { + modules[moduleName] = {}; + } + modules[moduleName][jsonData.name] = { + functions : previewFunctions, + memberOf : jsonData.memberOf.split('.').slice(1) + } + } + } + }; + return modules; +} + +function generateMDTable(data) { + let table = '| Module | Submodule | Function |\n|---|---|---|'; + for(const module in data){ + for(const submodule in data[module]){ + let formattedFunctions = ''; + for(const func of data[module][submodule].functions){ + const submodulePath = data[module][submodule].memberOf.length > 0 ? data[module][submodule].memberOf.join('/').toLowerCase() + '/' : ''; + formattedFunctions += `[${func}](/${module}/${submodulePath}${submodule.toLowerCase()}/${func.toLowerCase()})
`; + } + // Change v-2 to v.2 for module names. + table += `\n| ${module.replace(/(\S+)-(v[1-9])/gm, "$1.$2")} | ${submodule} | ${formattedFunctions} |`; + } + } + return table; +} + +function appendTableToArticle(table) { + const article = fs.readFileSync('./guides/developer-preview.md', 'utf8'); + const tableStart = article.indexOf(''); + const tableEnd = article.indexOf(''); + const newArticle = article.slice(0, tableStart) +'\n' + table + '\n' + article.slice(tableEnd); + fs.writeFileSync('./guides/developer-preview.md', newArticle); +} + +let result = findDevPreviewFunctions(); +let table = generateMDTable(result); +appendTableToArticle(table); \ No newline at end of file diff --git a/scripts/getHiddenItems.mjs b/scripts/getHiddenItems.mjs new file mode 100644 index 0000000000..9ba03b8af7 --- /dev/null +++ b/scripts/getHiddenItems.mjs @@ -0,0 +1,83 @@ +/* +* This code in this file grabs the current settings in the Velo menu editor an +* returns a the modules, submodules, properties, and functions that are hidden. +* The menu editor is here: https://bo.wix.com/wix-docs-backstage/projects/563b9c1e-c9c7-4276-a9d4-31c3536a0752/sites/2cf3ab73-dbcb-425c-bd3f-682b4f80c135/menu-editor +*/ + +import fetch from 'node-fetch'; +import fs from 'fs'; +import { createRequire } from "module"; +const require = createRequire(import.meta.url); +const htmlparser2 = require('htmlparser2'); +import * as cheerio from 'cheerio'; + +getHiddenItems(); + +export async function getHiddenItems() { + const menuConfig = await getMenuData(); + const hiddenItems = findHiddenItems(menuConfig); + console.log(hiddenItems) + fs.writeFileSync('./scripts/hiddenItems.json', JSON.stringify(hiddenItems)); +} + +async function getMenuData() { + /* Old code - doesn't work on GH runner + const response = await fetch('https://bo.wix.com/_api/wix-docs-backoffice/v1/projects/563b9c1e-c9c7-4276-a9d4-31c3536a0752/viewers/2cf3ab73-dbcb-425c-bd3f-682b4f80c135'); + const data = await response.json(); + return data.viewer.menuConfig.categories; + */ + const dom = await getRefDOM(); + const menuConfig = getMenuConfig(dom); + return menuConfig.categories; +} + +function findHiddenItems(menuConfig) { + let hiddenItems = { + modules: [], + submodules: [], + properties: [], + functions: [] + } + for (const module of menuConfig) { + if (module.visible === false) { + hiddenItems.modules.push(module.path); + } + for (const subItem of module.members) { + if (subItem.visible === false) { + if (subItem.type === 'SECTION') { + hiddenItems.submodules.push(subItem.path); + } else if (subItem.type === 'PROPERTY') { + hiddenItems.properties.push(subItem.path); + } else if (subItem.type === 'OPERATION') { + hiddenItems.functions.push(subItem.path); + } + } + } + } + return hiddenItems; +} + +async function getRefDOM() { + let data = 'No healthy upstream'; + do{ + const response = await fetch('https://www.wix.com/velo/reference') + data = await response.text(); + } while(data.includes('No healthy upstream')); + const dom = htmlparser2.parseDocument(data); + return dom; +} + +function getMenuConfig(dom) { + const $ = cheerio.load(dom); + const scriptContent = $("script:contains('menuConfig')").html(); + const scriptLines = scriptContent.split('\n'); + let viewerJSON; + for (const line of scriptLines) { + line.trim(); + if(line.includes('window.__VIEWER__')){ + viewerJSON = JSON.parse(line.split('window.__VIEWER__ = ')[1].replace(';','')); + break; + } + } + return viewerJSON.menuConfig; +} \ No newline at end of file diff --git a/scripts/hiddenItems.json b/scripts/hiddenItems.json new file mode 100644 index 0000000000..0bc10f2bed --- /dev/null +++ b/scripts/hiddenItems.json @@ -0,0 +1 @@ +{"modules":["site-monitoring","npm-modules"],"submodules":["$w.appointmentfield","wix-bookings-v2.bookingspricing","wix-bookings-v2.extendedbookings","wix-bookings-v2.serviceoptionsandvariants","wix-bookings-v2.sessions","wix-bookings-v2.sessionsfeed","wix-bookings-v2.sessionsview","wix-inbox-v2.events","wix-sender-details-v2.events"],"properties":["$w.video.isvisible","wix-billing-backend.invoices","wix-billing-backend.pricequotes","wix-bookings-backend.bookings","wix-bookings-backend.events","wix-bookings-backend.resources","wix-bookings-backend.sessions","wix-crm.contacts","wix-crm.triggeredemails","wix-crm-backend.contacts","wix-crm-backend.notifications","wix-crm-backend.tasks","wix-crm-backend.triggeredemails","wix-crm-backend.workflows","wix-events-backend.wixevents","wix-groups-backend.createrequests","wix-groups-backend.groups","wix-groups-backend.joinrequests","wix-groups-backend.members","wix-groups-backend.roles","wix-members.authentication","wix-members.currentmember","wix-members-backend.authentication","wix-members-backend.authorization","wix-members-backend.badges","wix-members-backend.currentmember","wix-members-backend.members","wix-pricing-plans.checkout","wix-pricing-plans.orders","wix-pricing-plans-backend.checkout","wix-pricing-plans-backend.events","wix-pricing-plans-backend.orders","wix-stores.cart","wix-stores.navigate","wix-stores.product","wix-window.consentpolicy","wix-window.lightbox","wix-window.multilingual","wix-window.rendering","wix-window.warmupdata"],"functions":["wix-email-marketing-v2.events.oncampaignarchivedevent","wix-email-marketing-v2.events.oncampaigncreated","wix-email-marketing-v2.events.oncampaigndeleted","wix-email-marketing-v2.events.oncampaigndistributedevent","wix-email-marketing-v2.events.oncampaignpausedevent","wix-email-marketing-v2.events.oncampaignpublishedevent","wix-email-marketing-v2.events.oncampaignrejectedevent","wix-email-marketing-v2.events.oncampaignscheduledevent","wix-email-marketing-v2.events.oncampaignterminatedevent","wix-email-marketing-v2.events.oncampaignunarchivedevent","wix-email-marketing-v2.events.onsenderdetailsupdated","wix-stores.cart.tocart"]} \ No newline at end of file From 48f53461132a7051c21b44de8ea5e2557d210edf Mon Sep 17 00:00:00 2001 From: wix-docs-feds <87931637+wix-docs-feds@users.noreply.github.com> Date: Sun, 19 Mar 2023 13:09:22 +0200 Subject: [PATCH 11/45] Updated Workflows for doc bug day. * DocWorks for wix-crm-backend - 73 changes detected, but 4 issue detected changes: Service wix-crm-backend.Workflows operation archiveCard.examples[0] has changed body Service wix-crm-backend.Workflows operation createCard has changed param card type Service wix-crm-backend.Workflows operation createCard has changed param card doc Service wix-crm-backend.Workflows operation createPhase has changed param name from phase to phaseInfo Service wix-crm-backend.Workflows operation createPhase has changed param phaseInfo type Service wix-crm-backend.Workflows operation createPhase has changed param phaseInfo doc Service wix-crm-backend.Workflows operation createPhase.examples[0] has changed body Service wix-crm-backend.Workflows operation createWorkflow has changed param workflowInfo type Service wix-crm-backend.Workflows operation createWorkflow has changed param workflowInfo doc Service wix-crm-backend.Workflows operation deleteCard.examples[0] has changed body Service wix-crm-backend.Workflows operation deletePhase has changed return doc Service wix-crm-backend.Workflows operation deletePhase has changed summary Service wix-crm-backend.Workflows operation deletePhase.examples[0] has changed body Service wix-crm-backend.Workflows operation deleteWorkflow has changed return doc Service wix-crm-backend.Workflows operation deleteWorkflow has changed summary Service wix-crm-backend.Workflows operation deleteWorkflow.examples[0] has changed body Service wix-crm-backend.Workflows operation getCard has changed param cardId doc Service wix-crm-backend.Workflows operation getCard has changed return doc Service wix-crm-backend.Workflows operation getCard has changed summary Service wix-crm-backend.Workflows operation getCard.examples[0] has changed body Service wix-crm-backend.Workflows operation getPhaseInfo has changed param phaseId doc Service wix-crm-backend.Workflows operation getPhaseInfo has changed return doc Service wix-crm-backend.Workflows operation getPhaseInfo has chan ... * DocWorks for wix-crm-backend - 4 changes detected, but 5 issue detected changes: Service wix-crm-backend.Workflows operation listPhasesInfo has changed param options type Service wix-crm-backend.Workflows message ListOptions.examples[0] has changed body Service wix-crm-backend.Workflows message ListOptions.examples[1] has changed body Service wix-crm-backend.Workflows message ListWorkflowsOptions was removed issues: Operation eq has an unknown param type * (queryContacts.js (51)) Operation ne has an unknown param type * (queryContacts.js (95)) Operation listWorkflowsInfo has an unknown param type wix-crm-backend.Workflows.ListWorkflowsOptions (workflows.js (125)) Browserslist: caniuse-lite is outdated. Please run: npx browserslist@latest --update-db Why you should do it regularly: https://github.com/browserslist/browserslist#browsers-data-updating ERROR: The @snippet tag - file 'velo-docs/examples/Users-backend-register_email.es6' not found. File: emailMember.js line: 1 * DocWorks for wix-crm-backend - 1 change detected, but 4 issue detected changes: Service wix-crm-backend.Workflows operation listWorkflowsInfo has changed param options type issues: Operation eq has an unknown param type * (queryContacts.js (51)) Operation ne has an unknown param type * (queryContacts.js (95)) Browserslist: caniuse-lite is outdated. Please run: npx browserslist@latest --update-db Why you should do it regularly: https://github.com/browserslist/browserslist#browsers-data-updating ERROR: The @snippet tag - file 'velo-docs/examples/Users-backend-register_email.es6' not found. File: emailMember.js line: 1 --------- Co-authored-by: AriGoldWix <95754543+AriGoldWix@users.noreply.github.com> --- scripts/hiddenItems.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 scripts/hiddenItems.txt diff --git a/scripts/hiddenItems.txt b/scripts/hiddenItems.txt new file mode 100644 index 0000000000..a4378be74f --- /dev/null +++ b/scripts/hiddenItems.txt @@ -0,0 +1 @@ +{"modules":["site-monitoring","npm-modules"],"submodules":["$w.appointmentfield","wix-bookings-v2.bookingspricing","wix-bookings-v2.extendedbookings","wix-bookings-v2.serviceoptionsandvariants","wix-bookings-v2.sessions","wix-bookings-v2.sessionsfeed","wix-bookings-v2.sessionsview","wix-inbox-v2.events"],"properties":["$w.video.isvisible","wix-billing-backend.invoices","wix-billing-backend.pricequotes","wix-bookings-backend.bookings","wix-bookings-backend.events","wix-bookings-backend.resources","wix-bookings-backend.sessions","wix-crm.contacts","wix-crm.triggeredemails","wix-crm-backend.contacts","wix-crm-backend.notifications","wix-crm-backend.tasks","wix-crm-backend.triggeredemails","wix-crm-backend.workflows","wix-events-backend.wixevents","wix-groups-backend.createrequests","wix-groups-backend.groups","wix-groups-backend.joinrequests","wix-groups-backend.members","wix-groups-backend.roles","wix-members.authentication","wix-members.currentmember","wix-members-backend.authentication","wix-members-backend.authorization","wix-members-backend.badges","wix-members-backend.currentmember","wix-members-backend.members","wix-pricing-plans.checkout","wix-pricing-plans.orders","wix-pricing-plans-backend.checkout","wix-pricing-plans-backend.events","wix-pricing-plans-backend.orders","wix-stores.cart","wix-stores.navigate","wix-stores.product","wix-window.consentpolicy","wix-window.lightbox","wix-window.multilingual","wix-window.rendering","wix-window.warmupdata"],"functions":["wix-bookings-v2.bookings.confirmordeclinebooking","wix-email-marketing-v2.events.oncampaigncreated","wix-email-marketing-v2.events.oncampaigndeleted","wix-email-marketing-v2.events.oncampaigndistributedevent","wix-email-marketing-v2.events.oncampaignpausedevent","wix-email-marketing-v2.events.oncampaignpublishedevent","wix-email-marketing-v2.events.oncampaignrejectedevent","wix-email-marketing-v2.events.oncampaignscheduledevent","wix-email-marketing-v2.events.oncampaignterminatedevent","wix-email-marketing-v2.events.onsenderdetailsupdated","wix-stores.cart.tocart"]} \ No newline at end of file From 8feef3583d1fe70154ef78bef344d69c5f47d18e Mon Sep 17 00:00:00 2001 From: Daniel Admaso <53995839+admasodaniel@users.noreply.github.com> Date: Mon, 20 Mar 2023 16:23:40 +0200 Subject: [PATCH 12/45] Revert adam changes * Delete scripts directory * Delete buildDevPreview.yaml * Delete syncMenuEditor.yaml --- media/confirmator_flow.png | Bin 0 -> 125774 bytes .../How Bookings are Confirmed or Declined.md | 14 + .../ExternalCalendars.service.json | 5626 +++++++++++++++++ .../ExternalCalendars/guides/Introduction.md | 52 + 4 files changed, 5692 insertions(+) create mode 100644 media/confirmator_flow.png create mode 100644 wix-bookings-v2/wix-bookings-v2/Bookings/guides/How Bookings are Confirmed or Declined.md create mode 100644 wix-bookings-v2/wix-bookings-v2/ExternalCalendars.service.json create mode 100644 wix-bookings-v2/wix-bookings-v2/ExternalCalendars/guides/Introduction.md diff --git a/media/confirmator_flow.png b/media/confirmator_flow.png new file mode 100644 index 0000000000000000000000000000000000000000..592ba7dd944da7558fb2681d5e2a0107a5b3907c GIT binary patch literal 125774 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%0DsM|8E3k7hJV=uDtrT|!sa6FS4V(R-=r>P$lC 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 **Note:**\n> Use [`listProviders()`](#list-providers) to find out whether to connect to a particular provider using this method or [`connectByOAuth()`](#connect-by-o-auth)." + ], + "examples": [ + { + "title": "Connect with an external calendar by credentials ", + "body": [ + "import {externalCalendars} from 'wix-bookings.v2';", + "", + "async function connectByCredentials(providerId, scheduleId, email, password) {", + " const {connection} =", + " await externalCalendars.connectByCredentials(providerId, scheduleId, email, password)", + " return connection", + "}" + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "connectByOAuth", + "params": [ + { + "name": "providerId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the external calendar provider. Find this with the [`listProviders()`](#list-providers) function.\n", + "required": true + }, + { + "name": "scheduleId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the schedule to connect with the external calendar account.", + "required": true + }, + { + "name": "redirectUrl", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "URL to redirect the user to after they authorize access to the external calendar account.\n\nIf the connection is successfully established, the user is redirected to this URL with a query parameter `connectionId` containing the new connection ID.\nIf the attempt to connect fails, the user is redirected to this URL with a query parameter `error` containing the error type.", + "required": true + } + ], + "requiredFields": [ + "providerId", + "redirectUrl", + "scheduleId" + ], + "ret": { + "type": [ + { + "complexType": { + "nativeType": "Promise", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.ConnectByOAuthResponse" + } + ] + } + } + ], + "doc": null + }, + "docs": { + "summary": "Connects to an external calendar using the OAuth authorization protocol.", + "description": [ + "The authorization flow should take place as follows:\n\n1. Call the function with the appropriate parameters.\n2. Redirect the user to the URL received in the response.\n3. The user authorizes access.\n4. The user is redirected to the URL you provide in the `redirectUrl` parameter, with a query parameter `connectionId` containing the new connection ID.\n\nIf the attempt to connect fails, the user is still redirected to the URL you provide in the `redirectUrl` parameter,\nbut with a query parameter `error` containing one of the following values:\n\n- `reject`: The user rejected the authorization request.\n- `unsupported`: Connecting to the user's external account type is not supported by the provider.\n- `internal`: An error unrelated to the client or the request that prevents the server from fulfilling the request.\n\nOnce a connection is successfully created, use [`listEvents()`](#list-events) to obtain an up-to-date list of events in the connected external calendars.\n\n> **Note:**\n> Use [`listProviders()`](#list-providers) to find out whether to connect to a particular provider using this endpoint or [`connectByCredentials()`](#connect-by-credentials)." + ], + "examples": [ + { + "title": "Connect with an external calendar by OAuth ", + "body": [ + "import {externalCalendars} from 'wix-bookings.v2';", + "", + "async function connectByOAuth(providerId, scheduleId, redirectUrl) {", + " const {oauthUrl} =", + " await externalCalendars.connectByOAuth(providerId, scheduleId, redirectUrl)", + " return oauthUrl", + "}" + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "disconnect", + "params": [ + { + "name": "connectionId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the external calendar connection to disconnect.", + "required": true + } + ], + "requiredFields": [ + "connectionId" + ], + "ret": { + "type": [ + { + "complexType": { + "nativeType": "Promise", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.DisconnectResponse" + } + ] + } + } + ], + "doc": null + }, + "docs": { + "summary": "Disconnects from an external calendar.", + "description": [ + "When an external calendar is disconnected, the external calendar connection's `status` is changed to `DISCONNECTED`.\n\nAfter disconnecting, [`listEvents()`](#list-events) no longer returns events from the disconnected external calendar.\nExported Wix calendar sessions are deleted from the external calendar." + ], + "examples": [ + { + "title": "Disconnect an external calendar connection ", + "body": [ + "import {externalCalendars} from 'wix-bookings.v2';", + "", + "async function disconnect(connectionId) {", + " const {connection: updatedConnection} =", + " await externalCalendars.disconnect(connectionId)", + " return updatedConnection", + "}" + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "getConnection", + "params": [ + { + "name": "connectionId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the connection to retrieve.", + "required": true + } + ], + "requiredFields": [ + "connectionId" + ], + "ret": { + "type": [ + { + "complexType": { + "nativeType": "Promise", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.GetConnectionResponse" + } + ] + } + } + ], + "doc": null + }, + "docs": { + "summary": "Retrieves an external calendar connection by ID.", + "description": [ + "The external calendar connection contains details of the connection between a Wix site's calendar and calendars hosted by an external provider.\n\nThe `syncConfig` property contains configuration details for importing events from an external calendar, exporting events to an external calendar, or both." + ], + "examples": [ + { + "title": "Get an external calendar connection by ID ", + "body": [ + "import {externalCalendars} from 'wix-bookings.v2';", + "", + "async function getConnection(connectionId) {", + " const {connection} = await externalCalendars.getConnection(connectionId)", + " return connection", + "}" + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "listCalendars", + "params": [ + { + "name": "connectionId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the external calendar connection to list calendars for.", + "required": true + } + ], + "requiredFields": [ + "connectionId" + ], + "ret": { + "type": [ + { + "complexType": { + "nativeType": "Promise", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.ListCalendarsResponse" + } + ] + } + } + ], + "doc": null + }, + "docs": { + "summary": "Retrieves a list of calendars belonging to the connected external calendar account.", + "description": [ + "> **Note:**\n> Before using this function, establish a connection with an external calendar using [`connectByCredentials()`](#connect-by-credentials) or [`connectByOAuth()`](#connect-by-o-auth)." + ], + "examples": [ + { + "title": "List calendars belonging to an external calendar account ", + "body": [ + "import {externalCalendars} from 'wix-bookings.v2';", + "", + "async function listCalendars(connectionId) {", + " const {calendars} = await externalCalendars.listCalendars(connectionId)", + " return calendars", + "}" + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "listConnections", + "params": [ + { + "name": "options", + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.ListConnectionsOptions" + } + ], + "doc": "", + "required": false + } + ], + "requiredFields": [], + "ret": { + "type": [ + { + "complexType": { + "nativeType": "Promise", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.ListConnectionsResponse" + } + ] + } + } + ], + "doc": null + }, + "docs": { + "summary": "Retrieves a list of external calendar connections.", + "description": [ + "Each external calendar connections contain details of a connection between a Wix site's calendar and calendars hosted by an external provider.\n\nThe `syncConfig` property of each connection contains configuration details for importing events from an external calendar, exporting events to an external calendar, or both." + ], + "examples": [ + { + "title": "List all connections ", + "body": [ + "import {externalCalendars} from 'wix-bookings.v2';", + "", + "async function listConnections() {", + " const {connections} = await externalCalendars.listConnections()", + " return connections", + "}" + ] + }, + { + "title": "List connections by schedule ID ", + "body": [ + "import {externalCalendars} from 'wix-bookings.v2';", + "", + "async function listConnections(scheduleId) {", + " const options = {", + " scheduleId", + " }", + " const {connections} = await externalCalendars.listConnections(options)", + " return connections", + "}" + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "listEvents", + "params": [ + { + "name": "options", + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.ListEventsOptions" + } + ], + "doc": "", + "required": false + } + ], + "requiredFields": [], + "ret": { + "type": [ + { + "complexType": { + "nativeType": "Promise", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.ListEventsResponse" + } + ] + } + } + ], + "doc": null + }, + "docs": { + "summary": "Retrieves a list of events from all connected external calendars, based on the provided filtering and paging.", + "description": [ + "Use List Events to retrieve an aggregated list of events in the connected external calendars for a specified time range, sorted by start date.\n\n> **Note:**\n> Before using this function, establish a connection with an external calendar using [`connectByCredentials()`](#connect-by-credentials) or [`connectByOAuth()`](#connect-by-o-auth)." + ], + "examples": [ + { + "title": "List all events within a time range ", + "body": [ + "import {externalCalendars} from 'wix-bookings.v2';", + "", + "async function listEvents() {", + " const options = {", + " from: '2023-01-01T00:00:00Z',", + " to: '2023-01-07T00:00:00Z'", + " }", + " const {events} = await externalCalendars.listEvents(options)", + " return events", + "}" + ] + }, + { + "title": "List events connected to a specified schedule ", + "body": [ + "import {externalCalendars} from 'wix-bookings.v2';", + "", + "async function listScheduleEvents(from, to) {", + " const options = {", + " from,", + " to,", + " scheduleId: 'b936298d-18a6-4ae8-8e9f-10bf49314c95'", + " }", + " const {events: eventsOfSchedule} = await externalCalendars.listEvents(options)", + " return eventsOfSchedule", + "}" + ] + }, + { + "title": "List events including personal information ", + "body": [ + "import {externalCalendars} from 'wix-bookings.v2';", + "", + "async function listEventsWithPI(from, to) {", + " const options = {", + " from,", + " to,", + " fieldsets: ['OWN_PI']", + " }", + " const {events: eventsWithPI} = await externalCalendars.listEvents(options)", + " return eventsWithPI", + "}" + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "listProviders", + "params": [], + "requiredFields": [], + "ret": { + "type": [ + { + "complexType": { + "nativeType": "Promise", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.ListProvidersResponse" + } + ] + } + } + ], + "doc": null + }, + "docs": { + "summary": "Retrieves a list of the external calendar providers for which the site supports integration.", + "description": [ + "The list of external calendar providers includes:\n\n+ External calendar providers that are supported by default, such as Google, Apple, and Microsoft.\n+ External calenders for which the site owner has enabled integration by installing an app.\n\nFor each external calendar provider, the list contains information about supported connection methods and features.\nFor each provider, check `features.connectMethods` to find out whether to use [`connectByCredentials()`](#connect-by-credentials) or [`connectByOAuth()`](#connect-by-o-auth) to establish a connection.\n" + ], + "examples": [ + { + "title": "List the supported external calendar providers ", + "body": [ + "import {externalCalendars} from 'wix-bookings.v2';", + "", + "async function listProviders() {", + " const {providers} = await externalCalendars.listProviders()", + " return providers", + "}" + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "updateSyncConfig", + "params": [ + { + "name": "connectionId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the external calendar connection to update.", + "required": true + }, + { + "name": "syncConfig", + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.ConnectionSyncConfig" + } + ], + "doc": "Updated sync configuration details.", + "required": true + }, + { + "name": "options", + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.UpdateSyncConfigOptions" + } + ], + "doc": "", + "required": false + } + ], + "requiredFields": [ + "connectionId", + "syncConfig" + ], + "ret": { + "type": [ + { + "complexType": { + "nativeType": "Promise", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.UpdateSyncConfigResponse" + } + ] + } + } + ], + "doc": null + }, + "docs": { + "summary": "Updates the specified external calendar connection's sync configuration.", + "description": [ + "Use Update Sync Config to update a connection's `syncConfig` property.\nThe `syncConfig` property contains settings for enabling, configuring, or disabling functionality, including:\n\n+ Importing events from one or more specified calendars in the connected external calendar account. If this is enabled, use [`listEvents()`](#list-events) to retrieve a list of events from the external calendar.\n+ Exporting events from the Wix site's calendar to an external calendar.\n\nTo see an external calendar connection's existing sync configuration, use [`getConnection()`](#get-connection) or [`listConnections()`](#list-connections) and see the `syncConfig` property.\n\n> **Note:**\n> Supported functionality depends on the provider. Use [`listProviders()`](#list-providers) to see details about providers' supported features." + ], + "examples": [ + { + "title": "Update connection to list events from specific external account calendars ", + "body": [ + "import {externalCalendars} from 'wix-bookings.v2';", + "", + "async function updateSyncConfig(connectionId) {", + " const syncConfig = {", + " listEventFromCalendars: {", + " enabled: true,", + " calendars: {", + " calendars: [", + " {", + " id: 'a68yu6lp6584z66zorp19z1ab'", + " },", + " {", + " id: '4xve0tohyhnrlzy3lp4zf7b07'", + " }", + " ]", + " }", + " }", + " }", + " const {connection: updatedConnection} =", + " await externalCalendars.updateSyncConfig(connectionId, syncConfig)", + " return updatedConnection", + "}" + ] + }, + { + "title": "Update connection to sync events to a new dedicated external account calendar ", + "body": [ + "import {externalCalendars} from 'wix-bookings.v2';", + "", + "async function updateSyncConfig(connectionId) {", + " const syncConfig = {", + " syncToCalendar: {", + " enabled: true,", + " dedicatedCalendar: {}", + " }", + " }", + " const {connection: updatedConnection} =", + " await externalCalendars.updateSyncConfig(connectionId, syncConfig)", + " return updatedConnection", + "}" + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + } + ], + "messages": [ + { + "name": "Address", + "members": [ + { + "name": "addressLine", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Main address line, usually street and number, as free text." + }, + { + "name": "addressLine2", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Free text providing more detailed address info. Usually contains Apt, Suite, and Floor." + }, + { + "name": "city", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "City name." + }, + { + "name": "country", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Country code." + }, + { + "name": "countryFullname", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Country full name." + }, + { + "name": "formattedAddress", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "A string containing the full address of this location." + }, + { + "name": "geocode", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.AddressLocation" + } + ], + "doc": "Coordinates of the physical address." + }, + { + "name": "hint", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Free text to help find the address." + }, + { + "name": "postalCode", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Zip/postal code." + }, + { + "name": "streetAddress", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.StreetAddress" + } + ], + "doc": "Street name, number and apartment number." + }, + { + "name": "subdivision", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Subdivision. Usually state, region, prefecture or province code, according to [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2)." + }, + { + "name": "subdivisions", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.Subdivision" + } + ] + } + } + ], + "doc": "Multi-level subdivisions from top to bottom." + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfAddressStreetOneOf", + "members": [ + "addressLine", + "streetAddress" + ] + } + ] + }, + "docs": { + "description": [ + "Physical address" + ] + } + }, + { + "name": "AddressLocation", + "members": [ + { + "name": "latitude", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Address latitude." + }, + { + "name": "longitude", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Address longitude." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "AddressStreetOneOf", + "members": [ + { + "name": "addressLine", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Main address line, usually street and number, as free text." + }, + { + "name": "streetAddress", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.StreetAddress" + } + ], + "doc": "Street name, number and apartment number." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Availability", + "members": [ + { + "name": "constraints", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.AvailabilityConstraints" + } + ], + "doc": "Constraints for calculating the schedule's availability." + }, + { + "name": "end", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "Date and time the schedule stops being available for booking. No value indicates no end time." + }, + { + "name": "linkedSchedules", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.LinkedSchedule" + } + ] + } + } + ], + "doc": "Other schedules that impact the availability calculation. Relevant only when there are availability constraints." + }, + { + "name": "start", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "Date and time the schedule starts to be available for booking." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "AvailabilityConstraints", + "members": [ + { + "name": "slotDurations", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "number" + } + ] + } + } + ], + "doc": "A list of duration options for slots, in minutes. Minimum value for a duration is 1.\nThe availability calculation generates slots with these durations, where there is no conflict with existing sessions or other availability constraints." + }, + { + "name": "slotsSplitInterval", + "readOnly": true, + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.SplitInterval" + } + ], + "doc": "An object defining the time between available slots' start times. For example, a slot with slots_split_interval=5 can start every 5 minutes. The default is the slot duration." + }, + { + "name": "splitInterval", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Specify how to split the slots in intervals of minutes.\nThis value indicates the time between available slots' start time. e.g., from 5 minute slots (3:00, 3:05, 3:15) and 1 hour slots (3:00, 4:00, 5:00).\nOptional. The default is the first duration in slot_durations field.\nDeprecated. Use the `split_slots_interval.value_in_minutes`." + }, + { + "name": "timeBetweenSlots", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "The number of minutes between the `end` of one slot, and the `start` of the next.\nMinimum value is 0, maximum value is 120." + } + ], + "docs": { + "description": [ + "Describes how to calculate the specific slots that are available for booking." + ] + } + }, + { + "name": "AvailabilityPolicy", + "members": [ + { + "name": "splitInterval", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.SplitInterval" + } + ], + "doc": "Specify how to split the schedule slots in intervals of minutes." + } + ], + "docs": { + "description": [ + "Availability policy applied to all site schedules." + ] + } + }, + { + "name": "AvailabilityPolicyUpdated", + "members": [ + { + "name": "availabilityPolicy", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.AvailabilityPolicy" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "BusinessSchedule", + "members": [ + { + "name": "periods", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.TimePeriod" + } + ] + } + } + ], + "doc": "Weekly recurring time periods when the business is regularly open or the service is available. Limited to 100 time periods." + }, + { + "name": "specialHourPeriod", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.SpecialHourPeriod" + } + ] + } + } + ], + "doc": "Exceptions to the business's regular hours. The business can be open or closed during the exception." + } + ], + "docs": { + "description": [ + "Business schedule. Regular and exceptional time periods when the business is open or the service is available." + ] + } + }, + { + "name": "Calendar", + "members": [ + { + "name": "_id", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "External calendar ID." + }, + { + "name": "name", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Display name of the external calendar.\nFor example, \"Primary\" or \"Birthdays\"." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "CalendarConference", + "members": [ + { + "name": "_id", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Wix Calendar conference ID." + }, + { + "name": "accountOwnerId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the account owner in the video conferencing service." + }, + { + "name": "conferenceType", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Conference type.\n" + }, + { + "name": "description", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Conference description." + }, + { + "name": "externalId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Conference meeting ID in the provider's conferencing system." + }, + { + "name": "guestUrl", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "URL used by a guest to join the conference." + }, + { + "name": "hostUrl", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "URL used by the host to start the conference." + }, + { + "name": "password", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Password to join the conference." + }, + { + "name": "providerId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Conference provider ID." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "CalendarDateTime", + "members": [ + { + "name": "localDateTime", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.LocalDateTime" + } + ], + "doc": "An object containing the local date and time for the business's time zone." + }, + { + "name": "timeZone", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The time zone. Optional. Derived from the schedule's time zone.\nIn case this field is associated with recurring session, this field is empty." + }, + { + "name": "timestamp", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "UTC date-time in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601#Coordinated_Universal_Time_(UTC)) format. If a time zone offset is specified, the time is converted to UTC. For example, if you specify `new Date('2021-01-06T16:00:00.000-07:00')`, the stored value will be `\"2021-01-06T23:00:00.000Z\"`.\nRequired if `localDateTime` is not specified.\nIf `localDateTime` is specified, `timestamp` is calculated as `localDateTime`, using the business's time zone." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Calendars", + "members": [ + { + "name": "calendars", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.Calendar" + } + ] + } + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ConferenceProvider", + "members": [ + { + "name": "providerId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Conferencing provider ID" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ConnectByCredentialsRequest", + "members": [ + { + "name": "email", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Email address for the external calendar account." + }, + { + "name": "password", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Password for the external calendar account." + }, + { + "name": "providerId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the external calendar provider. Find this with the [`listProviders()`](#list-providers) function." + }, + { + "name": "scheduleId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the schedule to connect with the external calendar account." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ConnectByCredentialsResponse", + "members": [ + { + "name": "connection", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.Connection" + } + ], + "doc": "Established connection details." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ConnectByOAuthOptions", + "members": [], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ConnectByOAuthRequest", + "members": [ + { + "name": "providerId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the external calendar provider. Find this with the [`listProviders()`](#list-providers) function." + }, + { + "name": "redirectUrl", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "URL to redirect the user to after they authorize access to the external calendar account.\n\nIf the connection is successfully established, the user is redirected to this URL with a query parameter `connectionId` containing the new connection ID.\nIf the attempt to connect fails, the user is redirected to this URL with a query parameter `error` containing the error type.\n" + }, + { + "name": "scheduleId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the schedule to connect with the external calendar account." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ConnectByOAuthResponse", + "members": [ + { + "name": "oauthUrl", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "URL of the external calendar authorization page to redirect the user to." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Connection", + "members": [ + { + "name": "_id", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "External calendar connection ID." + }, + { + "name": "appId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the Wix App the external calendar connection belongs to." + }, + { + "name": "calendarType", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "External calendar type." + }, + { + "name": "errorReason", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Reason for the error, if `status` is `ERROR`.\n\n+ `TOKEN_REVOKED`: External calendar access token revoked.\n+ `EXTERNAL_CALENDAR_CREATION_FAILED`: External calendar creation failed.\n+ `EXTERNAL_CALENDAR_DELETED`: External calendar was deleted.\n" + }, + { + "name": "externalAccountEmail", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Email address associated with the external calendar account. Empty until sync is completed successfully." + }, + { + "name": "providerId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the external calendar provider." + }, + { + "name": "scheduleId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the schedule connected to the external calendar." + }, + { + "name": "status", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Connection status.\n\n+ `CONNECTED`: A connection has been established with the external calendar.\n+ `SYNC_IN_PROGRESS`: A sync is in progress.\n+ `SYNCED`: External calendar sync complete.\n+ `DISCONNECTED`: External calendar has been disconnected.\n+ `ERROR`: An error occurred when syncing with the external calendar.\n" + }, + { + "name": "syncConfig", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.ConnectionSyncConfig" + } + ], + "doc": "Sync configuration. Contains settings for enabling, configuring, or disabling functionality, including:\n\n+ Importing events from one or more specified calendars in the connected external calendar account.\n+ Exporting events from the Wix site's calendar to an external calendar.\n" + }, + { + "name": "userId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the Wix user the external calendar connection belongs to." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ConnectionSyncConfig", + "members": [ + { + "name": "listEventFromCalendars", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.ConnectionSyncConfigListEventFromCalendars" + } + ], + "doc": "Configuration for importing events from external calendars.\nIf enabled, use the [`listEvents()`](#list-events) function to retrieve a list of events from external calendars." + }, + { + "name": "syncToCalendar", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.ConnectionSyncConfigSyncToCalendar" + } + ], + "doc": "Configuration for exporting calendars from the Wix site's calendar to a connected external calendar." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ConnectionSyncConfigListEventFromCalendars", + "members": [ + { + "name": "calendars", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.Calendars" + } + ], + "doc": "Import events from a list of specified external calendars.\n\n**Note**: The list can include the primary calendar.\n" + }, + { + "name": "enabled", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether to enable importing events from external calendars through this connection." + }, + { + "name": "primaryCalendar", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.PrimaryCalendar" + } + ], + "doc": "Import events only from the primary external calendar. Enable this by passing an empty object.\n\n**Note**: Not all external calendar providers designate a primary calendar.\n" + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfConnectionSyncConfigListEventFromCalendarsListFromOneOf", + "members": [ + "calendars", + "primaryCalendar" + ] + } + ] + }, + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ConnectionSyncConfigListEventFromCalendarsListFromOneOf", + "members": [ + { + "name": "calendars", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.Calendars" + } + ], + "doc": "Import events from a list of specified external calendars.\n\n**Note**: The list can include the primary calendar.\n" + }, + { + "name": "primaryCalendar", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.PrimaryCalendar" + } + ], + "doc": "Import events only from the primary external calendar. Enable this by passing an empty object.\n\n**Note**: Not all external calendar providers designate a primary calendar.\n" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ConnectionSyncConfigSyncToCalendar", + "members": [ + { + "name": "dedicatedCalendar", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.DedicatedCalendar" + } + ], + "doc": "Sync to a dedicated external calendar. Enable this by passing an empty object." + }, + { + "name": "enabled", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether to enable exporting events to an external calendars through this connection." + }, + { + "name": "primaryCalendar", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.PrimaryCalendar" + } + ], + "doc": "Sync to the primary external calendar. Enable this by passing an empty object." + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfConnectionSyncConfigSyncToCalendarSyncToOneOf", + "members": [ + "dedicatedCalendar", + "primaryCalendar" + ] + } + ] + }, + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ConnectionSyncConfigSyncToCalendarSyncToOneOf", + "members": [ + { + "name": "dedicatedCalendar", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.DedicatedCalendar" + } + ], + "doc": "Sync to a dedicated external calendar. Enable this by passing an empty object." + }, + { + "name": "primaryCalendar", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.PrimaryCalendar" + } + ], + "doc": "Sync to the primary external calendar. Enable this by passing an empty object." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "CursorPaging", + "members": [ + { + "name": "cursor", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Pointer to the next or previous page in the list of results.\n\nYou can get the relevant cursor token\nfrom the `pagingMetadata` object in the previous call's response.\nNot relevant for the first request.\n" + }, + { + "name": "limit", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Number of events to load.\nMax: `1000`" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "CursorPagingMetadata", + "members": [ + { + "name": "count", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Number of items returned in the response." + }, + { + "name": "cursors", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.Cursors" + } + ], + "doc": "Offset that was requested." + }, + { + "name": "hasNext", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Indicates if there are more results after the current page.\nIf `true`, another page of results can be retrieved.\nIf `false`, this is the last page." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Cursors", + "members": [ + { + "name": "next", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Cursor pointing to next page in the list of results." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "DedicatedCalendar", + "members": [], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "DisconnectRequest", + "members": [ + { + "name": "connectionId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the external calendar connection to disconnect." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "DisconnectResponse", + "members": [ + { + "name": "connection", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.Connection" + } + ], + "doc": "Updated connection details." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Empty", + "members": [], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Event", + "members": [ + { + "name": "allDay", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the event is an all-day event.\n\nDefault: `false`\n" + }, + { + "name": "calendarName", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Display name of the external calendar.\nFor example, \"Primary\" or \"Birthdays\"." + }, + { + "name": "calendarType", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "External calendar type." + }, + { + "name": "end", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "End date and time of the event (exclusive), formatted according to [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt)." + }, + { + "name": "scheduleId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the schedule connected to the external calendar the event belongs to." + }, + { + "name": "scheduleOwnerId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the Wix user the schedule belongs to.\nFor example, the ID of the staff member (resource) who owns the schedule." + }, + { + "name": "scheduleOwnerName", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Name of the Wix user the schedule belongs to.\nFor example, the name of the staff member (resource) who owns the schedule." + }, + { + "name": "start", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Start date and time of the event (inclusive), formatted according to [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt)." + }, + { + "name": "title", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Event title." + } + ], + "docs": { + "description": [ + "An external calendar event." + ] + } + }, + { + "name": "ExternalCalendar", + "members": [], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ExternalCalendarInfo", + "members": [ + { + "name": "calendarType", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The external calendar type (e.g. Google Calendar, iCal, etc)." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ExternalCalendarOverrides", + "members": [ + { + "name": "description", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Synced description of the external calendar event." + }, + { + "name": "title", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Synced title of the external calendar event." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Frequency", + "members": [ + { + "name": "repetition", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "The frequency of the recurrence in weeks. i.e. when this value is 4, the interval occurs every 4 weeks. Optional. The default is 1. minimum: 1, maximum: 52." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "GetConnectionRequest", + "members": [ + { + "name": "connectionId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the connection to retrieve." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "GetConnectionResponse", + "members": [ + { + "name": "connection", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.Connection" + } + ], + "doc": "Retrieved external calendar connection." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "HeadersEntry", + "members": [ + { + "name": "key", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + }, + { + "name": "value", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Interval", + "members": [ + { + "name": "daysOfWeek", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The day the interval accrue. Optional. The default is the day of the recurring interval's start time." + }, + { + "name": "duration", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "The duration of the interval in minutes. Required. Part of the session end time calculation. minimum: 1, maximum: 86400." + }, + { + "name": "hourOfDay", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "The hour of the day the interval accrue. must be consistent with the Interval start time. Options. The default is 0. minimum: 0, maximum: 23." + }, + { + "name": "minuteOfHour", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "The minutes of hour the interval accrue. must be consistent with the Interval end time. Options. The default is 0. minimum: 0, maximum: 59." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "IntervalSplit", + "members": [ + { + "name": "intervals", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.RecurringInterval" + } + ] + } + } + ], + "doc": "" + }, + { + "name": "newScheduleVersion", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "" + }, + { + "name": "oldScheduleVersion", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "" + }, + { + "name": "scheduleId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "LinkedSchedule", + "members": [ + { + "name": "scheduleId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Schedule ID." + }, + { + "name": "scheduleOwnerId", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Owner ID, of the linked schedule." + }, + { + "name": "transparency", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Sets this schedule's availability for the duration of the linked schedule's sessions. Default is `\"BUSY\"`.\n\nIf set to `\"BUSY\"`, this schedule cannot have any available slots during the linked schedule's sessions.\nIf set to `\"FREE\"`, this schedule can have available slots during the linked schedule's sessions.\n\n\n\n" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ListCalendarsRequest", + "members": [ + { + "name": "connectionId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the external calendar connection to list calendars for." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ListCalendarsResponse", + "members": [ + { + "name": "calendars", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.Calendar" + } + ] + } + } + ], + "doc": "List of calendars belonging to the external calendar account." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ListConnectionsOptions", + "members": [ + { + "name": "partialFailure", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether to return a partial list of connections if details can't be retrieved for some connections.\n\nDefault: `false`\n" + }, + { + "name": "scheduleIds", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Schedule IDs to filter by. If provided, only connections between external calendars and the specified schedules is returned.\n\nDefault: Returns all connections.\n" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ListConnectionsRequest", + "members": [ + { + "name": "partialFailure", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether to return a partial list of connections if details can't be retrieved for some connections.\n\nDefault: `false`\n" + }, + { + "name": "scheduleIds", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Schedule IDs to filter by. If provided, only connections between external calendars and the specified schedules is returned.\n\nDefault: Returns all connections.\n" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ListConnectionsResponse", + "members": [ + { + "name": "connections", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.Connection" + } + ] + } + } + ], + "doc": "List of external calendar connections." + }, + { + "name": "failedProviderIds", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "List of provider IDs for connections for which retrieval failed. Returned only if `partialFailure` parameter is `true` in the request." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ListEventsOptions", + "members": [ + { + "name": "allDay", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether to include only all-day events in the returned list.\nIf `true`, only all-day events are returned.\nIf `false`, only events with a specified time are returned.\n\nDefault: All events are returned.\n" + }, + { + "name": "cursorPaging", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.CursorPaging" + } + ], + "doc": "Pagination options." + }, + { + "name": "fieldsets", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Predefined sets of fields to return.\n- `NO_PI`: Returns event objects without personal information.\n- `OWN_PI`: Returns complete event objects, including personal information.\n\nDefault: `NO_PI`\n" + }, + { + "name": "from", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Date and time from which to retrieve events,\nformatted according to [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt).\nRequired, unless `cursorPaging.cursor` is provided.\n\nEvents which start before the `from` time and end after it are included in the returned list.\n" + }, + { + "name": "partialFailure", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether to return a partial list of events if details can't be retrieved for some connections.\n\nDefault: `false`\n" + }, + { + "name": "scheduleIds", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Schedule IDs to filter by. If provided, the returned list includes only events belonging to external calendars connected to the specified schedules.\nMaximum of 100 schedule IDs per request." + }, + { + "name": "to", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Date and time until which to retrieve events,\nformatted according to [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt).\nRequired, unless `cursorPaging.cursor` is provided.\n\nEvents which start before the `to` time and end after it are included in the returned list.\n" + }, + { + "name": "userIds", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Wix user IDs to filter by. If provided, the returned list includes only events belonging to external calendars connected to schedules belonging to the specified Wix users.\nMaximum of 100 Wix user IDs per request." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ListEventsRequest", + "members": [ + { + "name": "allDay", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether to include only all-day events in the returned list.\nIf `true`, only all-day events are returned.\nIf `false`, only events with a specified time are returned.\n\nDefault: All events are returned.\n" + }, + { + "name": "cursorPaging", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.CursorPaging" + } + ], + "doc": "Pagination options." + }, + { + "name": "fieldsets", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Predefined sets of fields to return.\n- `NO_PI`: Returns event objects without personal information.\n- `OWN_PI`: Returns complete event objects, including personal information.\n\nDefault: `NO_PI`\n" + }, + { + "name": "from", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Date and time from which to retrieve events,\nformatted according to [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt).\nRequired, unless `cursorPaging.cursor` is provided.\n\nEvents which start before the `from` time and end after it are included in the returned list.\n" + }, + { + "name": "partialFailure", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether to return a partial list of events if details can't be retrieved for some connections.\n\nDefault: `false`\n" + }, + { + "name": "scheduleIds", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Schedule IDs to filter by. If provided, the returned list includes only events belonging to external calendars connected to the specified schedules.\nMaximum of 100 schedule IDs per request." + }, + { + "name": "to", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Date and time until which to retrieve events,\nformatted according to [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt).\nRequired, unless `cursorPaging.cursor` is provided.\n\nEvents which start before the `to` time and end after it are included in the returned list.\n" + }, + { + "name": "userIds", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Wix user IDs to filter by. If provided, the returned list includes only events belonging to external calendars connected to schedules belonging to the specified Wix users.\nMaximum of 100 Wix user IDs per request." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ListEventsResponse", + "members": [ + { + "name": "events", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.Event" + } + ] + } + } + ], + "doc": "List of external calendar events matching the filters." + }, + { + "name": "failedProviderIds", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "List of provider IDs for connections for which retrieval of events failed. Returned only if `partialFailure` parameter is `true` in the request." + }, + { + "name": "pagingMetadata", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.CursorPagingMetadata" + } + ], + "doc": "Paging metadata." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ListProvidersRequest", + "members": [], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ListProvidersResponse", + "members": [ + { + "name": "providers", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.Provider" + } + ] + } + } + ], + "doc": "Retrieves a list of the external calendar providers for which the site supports integration.\n\nThe list of external calendar providers includes:\n\n+ External calendar providers that are supported by default, such as Google, Apple, and Microsoft.\n+ External calenders for which the site owner has enabled integration by installing an app.\n\nFor each external calendar provider, the list contains information about supported connection methods and features.\nFor each provider, check `features.connectMethods` to find out whether to use [`connectByCredentials()`](#connect-by-credentials) or [`connectByOAuth()`](#connect-by-o-auth) to establish a connection.\n" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "LocalDateTime", + "members": [ + { + "name": "dayOfMonth", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Day of the month, from 1-31." + }, + { + "name": "hourOfDay", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Hour of the day in 24-hour format, from 0-23." + }, + { + "name": "minutesOfHour", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Minute, from 0-59." + }, + { + "name": "monthOfYear", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Month number, from 1-12." + }, + { + "name": "year", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Year. 4-digit format." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Location", + "members": [ + { + "name": "address", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Free text address used when locationType is `OWNER_CUSTOM`." + }, + { + "name": "businessLocation", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.LocationsLocation" + } + ], + "doc": "Valid when `locationType` is `OWNER_BUSINESS`. Defaults to the business's location.\n\n`businessSchedule` is not supported by Wix Bookings\n" + }, + { + "name": "customAddress", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.Address" + } + ], + "doc": "Custom address, used when locationType is `\"OWNER_CUSTOM\"`. Might be used when locationType is `\"CUSTOM\"` in case the owner sets a custom address for the session which is different from the default." + }, + { + "name": "locationType", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Location type.\nOne of:\n- `\"OWNER_BUSINESS\"` The business address as set in the site’s general settings.\n- `\"OWNER_CUSTOM\"` The address as set when creating the service.\n- `\"CUSTOM\"` The address set for the individual session." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "LocationsAddress", + "members": [ + { + "name": "city", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "City name." + }, + { + "name": "country", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "2-letter country code in an [ISO-3166 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format." + }, + { + "name": "postalCode", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Postal or zip code." + }, + { + "name": "streetAddress", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.LocationsStreetAddress" + } + ], + "doc": "Street address. Includes street name, number, and apartment number in separate fields." + }, + { + "name": "subdivision", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Code for a subdivision (such as state, prefecture, or province) in [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2) format." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "LocationsAddressLocation", + "members": [ + { + "name": "latitude", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Latitude of the location. Must be between -90 and 90." + }, + { + "name": "longitude", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Longitude of the location. Must be between -180 and 180." + } + ], + "docs": { + "description": [ + "Address Geolocation" + ] + } + }, + { + "name": "LocationsLocation", + "members": [ + { + "name": "_id", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Location ID." + }, + { + "name": "address", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.LocationsAddress" + } + ], + "doc": "Address." + }, + { + "name": "archived", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the location is archived. Archived locations can't be updated.\n__Note:__ [Archiving a location](https://www.wix.com/velo/reference/wix-business-tools-v2/locations/archivelocation)\ndoesn't affect its `status`." + }, + { + "name": "businessSchedule", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.BusinessSchedule" + } + ], + "doc": "Business schedule. Array of weekly recurring time periods when the location is open for business. Limited to 100 time periods.\n\n__Note:__ Not supported by Wix Bookings.\n" + }, + { + "name": "default", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether this is the default location. There can only be one default location per site. The default location can't be archived." + }, + { + "name": "description", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Location description." + }, + { + "name": "email", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Email address." + }, + { + "name": "fax", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Fax number." + }, + { + "name": "locationType", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Location type. **Note:** Currently not supported." + }, + { + "name": "name", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Location name." + }, + { + "name": "phone", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Phone number." + }, + { + "name": "revision", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Revision number, which increments by 1 each time the location is updated.\nTo prevent conflicting changes, the existing revision must be used when updating a location." + }, + { + "name": "status", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Location status. Defaults to `ACTIVE`.\n__Note:__ [Archiving a location](https://www.wix.com/velo/reference/wix-business-tools-v2/locations/archivelocation)\ndoesn't affect the location's status. `INACTIVE` is currently not supported." + }, + { + "name": "timeZone", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Timezone in `America/New_York` format." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "LocationsStreetAddress", + "members": [ + { + "name": "apt", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Apartment number." + }, + { + "name": "name", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Street name." + }, + { + "name": "number", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Street number." + } + ], + "docs": { + "description": [ + "Street address. Includes street name, number, and apartment number in separate fields." + ] + } + }, + { + "name": "MigrationData", + "members": [ + { + "name": "businessId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + }, + { + "name": "staffs", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.StaffData" + } + ] + } + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "MigrationEvent", + "members": [ + { + "name": "migrationData", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.MigrationData" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "MultipleSessionsCreated", + "members": [ + { + "name": "schedulesWithSessions", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.ScheduleWithSessions" + } + ] + } + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "OAuthCompletedOptions", + "members": [ + { + "name": "body", + "optional": true, + "type": [ + { + "nativeType": "Uint8Array" + } + ], + "doc": "" + }, + { + "name": "headers", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.HeadersEntry" + } + ] + } + } + ], + "doc": "" + }, + { + "name": "method", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + }, + { + "name": "pathParams", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.PathParametersEntry" + } + ] + } + } + ], + "doc": "" + }, + { + "name": "queryParams", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.QueryParametersEntry" + } + ] + } + } + ], + "doc": "" + }, + { + "name": "rawPath", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + }, + { + "name": "rawQuery", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Participant", + "members": [ + { + "name": "_id", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Participant ID. Currently represents the booking.id." + }, + { + "name": "approvalStatus", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Approval status for the participant.\n\n" + }, + { + "name": "contactId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Contact ID." + }, + { + "name": "email", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Participant's email address." + }, + { + "name": "inherited", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the participant was inherited from the schedule, as opposed to being booked directly to the session." + }, + { + "name": "name", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Participant's name." + }, + { + "name": "partySize", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Group or party size. The number of people attending. Defaults to 0. Maximum is 250." + }, + { + "name": "phone", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Participant's phone number." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ParticipantNotification", + "members": [ + { + "name": "message", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Custom message to send to the participants about the changes to the booking." + }, + { + "name": "notifyParticipants", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether to send the message about the changes to the customer.\n\nDefault: `false`\n" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "PathParametersEntry", + "members": [ + { + "name": "key", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + }, + { + "name": "value", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Price", + "members": [ + { + "name": "amount", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Required payment amount." + }, + { + "name": "currency", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Currency in which the amount is quoted." + }, + { + "name": "downPayAmount", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Amount of a down payment or deposit as part of the transaction." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "PrimaryCalendar", + "members": [], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Provider", + "members": [ + { + "name": "_id", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the external calendar provider." + }, + { + "name": "calendarType", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "External calendar provider type." + }, + { + "name": "features", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.ProviderFeatures" + } + ], + "doc": "Features the external calendar provider supports." + }, + { + "name": "name", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Name of the external calendar provider." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ProviderFeatures", + "members": [ + { + "name": "connectMethods", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Supported connection methods.\n\nFor providers supporting `OAUTH`, connect with the [`connectByOAuth()`](#connect-by-o-auth) function.\nFor providers supporting `CREDENTIALS`, connect with the [`connectByCredentials()`](#connect-by-credentials) function.\n" + }, + { + "name": "listEventFromCalendars", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Whether events can be imported from external calendars to the Wix calendar.\n\n+ `NOT_SUPPORTED`: Importing events from the external calendar is not supported.\n+ `PRIMARY_CALENDAR_ONLY`: Events can be imported only from an external calendar designated as primary.\n+ `SPECIFIC_CALENDARS`: Events can be imported from specific external calendars. Use [`listCalendars()`](#list-calendars) to get a list of calendars for a connected external calendar account.\n" + }, + { + "name": "syncToCalendar", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Whether Wix calendar sessions can be exported to the external calendar.\n\n+ `NOT_SUPPORTED`: Exporting events to an external calendar is not supported.\n+ `PRIMARY_CALENDAR_ONLY`: Events can only be exported only to an external calendar designated as primary.\n+ `SPECIFIC_CALENDARS`: Events can be exported to specific external calendars. Use [`listCalendars()`](#list-calendars) to get a list of calendars for a connected external calendar account.\n+ `DEDICATED_CALENDAR`: Events can be exported to a newly created, dedicated external calendar in the connected external calendar account.\n" + }, + { + "name": "updateSyncConfig", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the sync configuration can be updated after a connection is established.\n\nIf `true`, you can update the sync configuration using the [`UpdateSyncConfig()`](#update-sync-config) function.\n" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "QueryParametersEntry", + "members": [ + { + "name": "key", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + }, + { + "name": "value", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Rate", + "members": [ + { + "name": "labeledPriceOptions", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Record", + "typeParams": [ + { + "nativeType": "string" + }, + { + "referenceType": "wix-bookings-v2.ExternalCalendars.Price" + } + ] + } + } + ], + "doc": "Mapping between a named price option, for example, adult or child prices, and the price, currency, and down payment amount.\nWhen present in an update request, the `default_varied_price` is ignored to support backward compatibility." + }, + { + "name": "priceText", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Textual price information used when **Price Per Session** is set to **Custom Price** in the app's service details page.\nWhen present in an update request, the `default_varied_price` is ignored to support backward compatibility." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "RawHttpRequest", + "members": [ + { + "name": "body", + "optional": true, + "type": [ + { + "nativeType": "Uint8Array" + } + ], + "doc": "" + }, + { + "name": "headers", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.HeadersEntry" + } + ] + } + } + ], + "doc": "" + }, + { + "name": "method", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + }, + { + "name": "pathParams", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.PathParametersEntry" + } + ] + } + } + ], + "doc": "" + }, + { + "name": "queryParams", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.QueryParametersEntry" + } + ] + } + } + ], + "doc": "" + }, + { + "name": "rawPath", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + }, + { + "name": "rawQuery", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "RawHttpResponse", + "members": [ + { + "name": "body", + "optional": true, + "type": [ + { + "nativeType": "Uint8Array" + } + ], + "doc": "" + }, + { + "name": "headers", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.HeadersEntry" + } + ] + } + } + ], + "doc": "" + }, + { + "name": "statusCode", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "RecurringInterval", + "members": [ + { + "name": "_id", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The recurring interval identifier." + }, + { + "name": "affectedSchedules", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.LinkedSchedule" + } + ] + } + } + ], + "doc": "Specifies the list of linked schedules and the way this link affects the corresponding schedules' availability. Can be calculated from the schedule or overridden on the recurring interval." + }, + { + "name": "end", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "The end time of the recurring interval. Optional. Empty value indicates that there is no end time." + }, + { + "name": "frequency", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.Frequency" + } + ], + "doc": "The frequency of the interval. Optional. The default is frequency with the default repetition." + }, + { + "name": "interval", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.Interval" + } + ], + "doc": "The interval rules. The day, hour and minutes the interval is recurring." + }, + { + "name": "intervalType", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The type of recurring interval.\n" + }, + { + "name": "start", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "The start time of the recurring interval. Required." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "RecurringSessionSplit", + "members": [ + { + "name": "newScheduleVersion", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "" + }, + { + "name": "oldScheduleVersion", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "" + }, + { + "name": "recurringSessions", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.Session" + } + ] + } + } + ], + "doc": "" + }, + { + "name": "scheduleId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "RecurringSessionsUpdated", + "members": [ + { + "name": "newRecurringSessions", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.Session" + } + ] + } + } + ], + "doc": "New schedule's recurring session list." + }, + { + "name": "oldRecurringSessions", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.Session" + } + ] + } + } + ], + "doc": "Old schedule's recurring session list." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Schedule", + "members": [ + { + "name": "_id", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Schedule ID." + }, + { + "name": "availability", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.Availability" + } + ], + "doc": "An object describing how to calculate the schedule's availability.\nAn empty object indicates that the schedule is not available for booking." + }, + { + "name": "calendarConference", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.CalendarConference" + } + ], + "doc": "A conference created for the schedule. This is used when a participant is added to a schedule." + }, + { + "name": "capacity", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Maximum number of participants that can be added to the schedule's sessions.\nMust be at most `1` for schedule whose availability is affected by another schedule. E.g, appointment schedules of the Wix Bookings app." + }, + { + "name": "conferenceProvider", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.ConferenceProvider" + } + ], + "doc": "Conferencing Provider. A schedule with a conferencing provider will use to provider information to create a conference on the provider's system when a session is created on the schedule or on one of its linked schedule's." + }, + { + "name": "created", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "Schedule creation date." + }, + { + "name": "externalCalendarOverrides", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.ExternalCalendarOverrides" + } + ], + "doc": "Title and description values to override session defaults when syncing to an external calendar.\nLearn more about [syncing calendars](https://support.wix.com/en/article/wix-bookings-important-information-about-syncing-google-calendars-with-wix-bookings)." + }, + { + "name": "inheritedFields", + "readOnly": true, + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Fields which were inherited from the Business Info page under Settings in the Dashboard." + }, + { + "name": "intervals", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.RecurringInterval" + } + ] + } + } + ], + "doc": "Specifies the intervals for the sessions calculation. Optional. e.g. when creating class service you can add\npattern for recurring intervals, these intervals can be returned as schedule's sessions or available slots if\nthere are no other availability calculation constraints and the capacity is bigger then the current total number of sessions' participants." + }, + { + "name": "location", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.Location" + } + ], + "doc": "Default location for the schedule's sessions." + }, + { + "name": "participants", + "readOnly": true, + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.Participant" + } + ] + } + } + ], + "doc": "Participants currently registered to sessions in this schedule.\nParticipants who are registered in the schedule are automatically registered to any session that is created for the schedule." + }, + { + "name": "rate", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.Rate" + } + ], + "doc": "Price options offered when booking this schedule's slots. Default is no rate." + }, + { + "name": "scheduleOwnerId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the schedule's owner entity. This may be a resource ID or a service ID." + }, + { + "name": "status", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Schedule status." + }, + { + "name": "tags", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Tags for grouping schedules. These tags are the default tags for the schedule's sessions.\nThe Wix Bookings app uses the following predefined tags to set schedule type: `\"INDIVIDUAL\"`, `\"GROUP\"`, and `\"COURSE\"`. Once the schedule type is set using these tags, you cannot update it. In addition to the app's tags, you can create and update your own tags." + }, + { + "name": "timeZone", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + }, + { + "name": "title", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Default title for the schedule's sessions. Maximum length: 6000 characters." + }, + { + "name": "totalNumberOfParticipants", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Number of participants registered to sessions in this schedule, calculated as the sum of the party sizes." + }, + { + "name": "updated", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "Schedule last update date." + }, + { + "name": "version", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Schedule version number, updated each time the schedule is updated." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ScheduleCancelled", + "members": [ + { + "name": "oldSchedule", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.Schedule" + } + ], + "doc": "" + }, + { + "name": "participantNotification", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.ParticipantNotification" + } + ], + "doc": "Whether to notify participants about the change and an optional custom message" + }, + { + "name": "schedule", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.Schedule" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ScheduleCreated", + "members": [ + { + "name": "schedule", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.Schedule" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ScheduleNotification", + "members": [ + { + "name": "availabilityPolicyUpdated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.AvailabilityPolicyUpdated" + } + ], + "doc": "" + }, + { + "name": "instanceId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + }, + { + "name": "intervalSplit", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.IntervalSplit" + } + ], + "doc": "" + }, + { + "name": "migrationEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.MigrationEvent" + } + ], + "doc": "supported only for schedule migration apis." + }, + { + "name": "multipleSessionsCreated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.MultipleSessionsCreated" + } + ], + "doc": "supported only for schedule migration apis." + }, + { + "name": "notifyParticipants", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether to notify participants about changed sessions. deprecated, use participant_notification" + }, + { + "name": "preserveFutureSessionsWithParticipants", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "" + }, + { + "name": "recurringSessionSplit", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.RecurringSessionSplit" + } + ], + "doc": "" + }, + { + "name": "scheduleCancelled", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.ScheduleCancelled" + } + ], + "doc": "" + }, + { + "name": "scheduleCreated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.ScheduleCreated" + } + ], + "doc": "" + }, + { + "name": "scheduleUnassignedFromUser", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.ScheduleUnassignedFromUser" + } + ], + "doc": "Inspect `schedule.scheduleOwnerUserId` on `scheduleUpdated` instead." + }, + { + "name": "scheduleUpdated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.ScheduleUpdated" + } + ], + "doc": "" + }, + { + "name": "sessionCancelled", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.SessionCancelled" + } + ], + "doc": "" + }, + { + "name": "sessionCreated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.SessionCreated" + } + ], + "doc": "" + }, + { + "name": "sessionUpdated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.SessionUpdated" + } + ], + "doc": "" + }, + { + "name": "siteProperties", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.SitePropertiesOnScheduleCreation" + } + ], + "doc": "site properties. Optional. Given in create schedule notification." + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfScheduleNotificationEventOneOf", + "members": [ + "availabilityPolicyUpdated", + "intervalSplit", + "migrationEvent", + "multipleSessionsCreated", + "recurringSessionSplit", + "scheduleCancelled", + "scheduleCreated", + "scheduleUnassignedFromUser", + "scheduleUpdated", + "sessionCancelled", + "sessionCreated", + "sessionUpdated" + ] + } + ] + }, + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ScheduleNotificationEventOneOf", + "members": [ + { + "name": "availabilityPolicyUpdated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.AvailabilityPolicyUpdated" + } + ], + "doc": "" + }, + { + "name": "intervalSplit", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.IntervalSplit" + } + ], + "doc": "" + }, + { + "name": "migrationEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.MigrationEvent" + } + ], + "doc": "supported only for schedule migration apis." + }, + { + "name": "multipleSessionsCreated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.MultipleSessionsCreated" + } + ], + "doc": "supported only for schedule migration apis." + }, + { + "name": "recurringSessionSplit", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.RecurringSessionSplit" + } + ], + "doc": "" + }, + { + "name": "scheduleCancelled", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.ScheduleCancelled" + } + ], + "doc": "" + }, + { + "name": "scheduleCreated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.ScheduleCreated" + } + ], + "doc": "" + }, + { + "name": "scheduleUnassignedFromUser", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.ScheduleUnassignedFromUser" + } + ], + "doc": "Inspect `schedule.scheduleOwnerUserId` on `scheduleUpdated` instead." + }, + { + "name": "scheduleUpdated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.ScheduleUpdated" + } + ], + "doc": "" + }, + { + "name": "sessionCancelled", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.SessionCancelled" + } + ], + "doc": "" + }, + { + "name": "sessionCreated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.SessionCreated" + } + ], + "doc": "" + }, + { + "name": "sessionUpdated", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.SessionUpdated" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ScheduleUnassignedFromUser", + "members": [ + { + "name": "schedule", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.Schedule" + } + ], + "doc": "The schedule that was unassigned from the user." + }, + { + "name": "userId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The Wix user id." + } + ], + "docs": { + "description": [ + "Schedule unassigned from user." + ] + } + }, + { + "name": "ScheduleUpdated", + "members": [ + { + "name": "newSchedule", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.Schedule" + } + ], + "doc": "The new schedule after the update." + }, + { + "name": "oldSchedule", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.Schedule" + } + ], + "doc": "The old schedule before the update." + }, + { + "name": "participantNotification", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.ParticipantNotification" + } + ], + "doc": "Whether to notify participants about the change and an optional custom message" + }, + { + "name": "recurringSessions", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.RecurringSessionsUpdated" + } + ], + "doc": "Recurring sessions updated event. If this field is given, the reason for the schedule updated event was\nupdating at least one of the given schedule's recurring sessions.\nThis event is triggered by create/update/delete recurring session apis." + }, + { + "name": "triggeredByAnonymizeRequest", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether this notification was created as a result of an anonymization request, such as GDPR.\nAn anonymized participant will have the following details:\nname = \"deleted\"\nphone = \"deleted\"\nemail = \"deleted@deleted.com\"" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ScheduleWithSessions", + "members": [ + { + "name": "schedule", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.Schedule" + } + ], + "doc": "" + }, + { + "name": "sessions", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.Session" + } + ] + } + } + ], + "doc": "" + }, + { + "name": "siteProperties", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.SitePropertiesOnScheduleCreation" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Session", + "members": [ + { + "name": "_id", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Session ID." + }, + { + "name": "affectedSchedules", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.LinkedSchedule" + } + ] + } + } + ], + "doc": "An object specifying a list of schedules and the way each schedule's availability is affected by the session. For example, the schedule of an instructor is affected by sessions of the class that they instruct.\nThe array is inherited from the schedule and can be overridden even if the session is a recurring session." + }, + { + "name": "calendarConference", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.CalendarConference" + } + ], + "doc": "A conference created for the session according to the details set in the schedule's conference provider information.\nIf the session is a recurring session, this field is inherited from the schedule." + }, + { + "name": "capacity", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Maximum number of participants that can be added to the session. Defaults to the schedule capacity.\nThe value is inherited from the schedule and can be overridden unless the session is a recurring session." + }, + { + "name": "end", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.CalendarDateTime" + } + ], + "doc": "An object specifying the end date and time of the session. The `end` time must be after the `start` time and be same type as `start`.\nIf the session is a recurring session, `end` must contain a `localDateTime`." + }, + { + "name": "externalCalendarOverrides", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.ExternalCalendarOverrides" + } + ], + "doc": "Title and description values to override session defaults when syncing to an external calendar.\nLearn more about [syncing calendars](https://support.wix.com/en/article/wix-bookings-important-information-about-syncing-google-calendars-with-wix-bookings).\nThe value is inherited from the schedule and can be overridden unless the session is a recurring session." + }, + { + "name": "inheritedFields", + "readOnly": true, + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "A list of properties for which values were inherited from the schedule.\nThis does not include participants that were inherited from the schedule." + }, + { + "name": "instanceOfRecurrence", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "A string representing a recurrence rule (RRULE) if the session is an instance of a recurrence pattern.\nEmpty when the session is not an instance of a recurrence rule, or if the session defines a recurrence pattern, and `recurrence` is not empty." + }, + { + "name": "location", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.Location" + } + ], + "doc": "An object describing the location where the session takes place.\nDefaults to the schedule location.\nFor single sessions, `session.location.businessLocation` can only be provided for locations that are defined in the schedule using `schedule.location` or `schedule.availability.locations`." + }, + { + "name": "notes", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Additional information about the session.\nNotes are not supported for recurring sessions." + }, + { + "name": "originalStart", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "Original start date and time of the session in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601#Coordinated_Universal_Time_(UTC)) format." + }, + { + "name": "participants", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.Participant" + } + ] + } + } + ], + "doc": "List of participants booked for the session.\nThe list includes participants who have registered for this specific session, and participants who have registered for a schedule that includes this session.\nIf the session is a recurring session, this field must be empty." + }, + { + "name": "rate", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.Rate" + } + ], + "doc": "The price options offered for the session. Defaults to the schedule rate.\nThe value is inherited from the schedule and can be overridden unless the session is a recurring session." + }, + { + "name": "recurrence", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "A string representing a recurrence rule (RRULE) for a recurring session, as defined in [iCalendar RFC 5545](https://icalendar.org/iCalendar-RFC-5545/3-3-10-recurrence-rule.html).\nIf the session is an instance of a recurrence pattern, the `instanceOfRecurrence` property will be contain the recurrence rule and this property will be empty.\nThe RRULE defines a rule for repeating a session.\nSupported parameters are:\n\n|Keyword|Description|Supported values|\n|--|--|---|\n|`FREQ`|The frequency at which the session is recurs. Required.|`WEEKLY`|\n|`INTERVAL`|How often, in terms of `FREQ`, the session recurs. Default is 1. Optional.|\n|`UNTIL`|The UTC end date and time of the recurrence. Optional.|\n|`BYDAY`|Day of the week when the event should recur. Required.|One of: `MO`, `TU`, `WE`, `TH`, `FR`, `SA`, `SU`|\n\n\nFor example, a session that repeats every second week on a Monday until January 7, 2022 at 8 AM:\n`\"FREQ=WEEKLY;INTERVAL=2;BYDAY=MO;UNTIL=20220107T080000Z\"`\n\n\n" + }, + { + "name": "recurringIntervalId", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Recurring interval ID. Defined when a session will be a recurring session. read-only. Optional.\nFor exmaple, when creating a class service with recurring sessions, you add a recurrence rule to create recurring sessions.\nThis field is omitted for single sessions or instances of recurring sessions.\nSpecified when the session was originally generated from a schedule recurring interval.\nDeprecated. Use `recurringSessionId`." + }, + { + "name": "recurringSessionId", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The ID of the recurring session if this session is an instance of a recurrence. Use this ID to update the recurrence and all of the instances." + }, + { + "name": "scheduleId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the schedule that the session belongs to." + }, + { + "name": "scheduleOwnerId", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the resource or service that the session's schedule belongs to." + }, + { + "name": "start", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.CalendarDateTime" + } + ], + "doc": "An object specifying the start date and time of the session. If the session is a recurring session, `start` must contain a `localDateTime`." + }, + { + "name": "status", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Session status.\n" + }, + { + "name": "tags", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Tags for the session.\nThe value is inherited from the schedule and can be overridden unless the session is a recurring session." + }, + { + "name": "timeReservedAfter", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Time reserved after the session end time, derived from the schedule availability constraints and the time between slots. Read-only.\nIf the session is a recurring session, this field must be empty." + }, + { + "name": "title", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Session title.\nThe value is inherited from the schedule and can be overridden unless the session is a recurring session." + }, + { + "name": "totalNumberOfParticipants", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "The number of participants booked for the session. Read-only.\nCalculated as the sum of the party sizes." + }, + { + "name": "type", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Session type.\n" + }, + { + "name": "version", + "readOnly": true, + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.SessionVersion" + } + ], + "doc": "The session version.\nComposed by the schedule, session and participants versions." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "SessionCancelled", + "members": [ + { + "name": "participantNotification", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.ParticipantNotification" + } + ], + "doc": "Whether to notify participants about the change and an optional custom message" + }, + { + "name": "session", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.Session" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "SessionCreated", + "members": [ + { + "name": "session", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.Session" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "SessionUpdated", + "members": [ + { + "name": "newSession", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.Session" + } + ], + "doc": "" + }, + { + "name": "oldSession", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.Session" + } + ], + "doc": "" + }, + { + "name": "participantNotification", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.ParticipantNotification" + } + ], + "doc": "Whether to notify participants about the change and an optional custom message" + }, + { + "name": "triggeredByAnonymizeRequest", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether this notification was created as a result of an anonymization request, such as GDPR.\nAn anonymized participant will have the following details:\nname = \"deleted\"\nphone = \"deleted\"\nemail = \"deleted@deleted.com\"" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "SessionVersion", + "members": [ + { + "name": "number", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Incremental version number, which is updated on each change to the session or on changes affecting the session." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "SitePropertiesOnScheduleCreation", + "members": [ + { + "name": "timeZone", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The global time zone value." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "SpecialHourPeriod", + "members": [ + { + "name": "comment", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Additional info about the exception. For example, \"We close earlier on New Year's Eve.\"" + }, + { + "name": "endDate", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "End date and time of the exception in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format and [Coordinated Universal Time (UTC)](https://en.wikipedia.org/wiki/Coordinated_Universal_Time)." + }, + { + "name": "isClosed", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the business is closed (or the service is not available) during the exception.\n\nDefault: `true`.\n" + }, + { + "name": "startDate", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Start date and time of the exception in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format and [Coordinated Universal Time (UTC)](https://en.wikipedia.org/wiki/Coordinated_Universal_Time)." + } + ], + "docs": { + "description": [ + "Exception to the business's regular hours. The business can be open or closed during the exception." + ] + } + }, + { + "name": "SplitInterval", + "members": [ + { + "name": "sameAsDuration", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the slot duration is used as the split interval value.\nIf `same_as_duration` is `true`, the `value_in_minutes` is the sum of the first duration in\n`schedule.availabilityConstraints.SlotDurations` field, and `schedule.availabilityConstraints.TimeBetweenSlots` field." + }, + { + "name": "valueInMinutes", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Number of minutes between available slots' start times when `same_as_duration` is `false`." + } + ], + "docs": { + "description": [ + "The time between available slots' start times. For example, For 5 minute slots, 3:00, 3:05, 3:15 etc. For 1 hour slots, 3:00, 4:00, 5:00 etc." + ] + } + }, + { + "name": "StaffData", + "members": [ + { + "name": "refreshToken", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + }, + { + "name": "resourceId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + }, + { + "name": "syncRequestEmail", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "StreetAddress", + "members": [ + { + "name": "apt", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Apartment number." + }, + { + "name": "name", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Street name." + }, + { + "name": "number", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Street number." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Subdivision", + "members": [ + { + "name": "code", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Subdivision code. Usually state, region, prefecture or province code, according to [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2)." + }, + { + "name": "name", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Subdivision full name." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "TimePeriod", + "members": [ + { + "name": "closeDay", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Day of the week the period ends on." + }, + { + "name": "closeTime", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Time the period ends in 24-hour [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) extended format. Valid values are `00:00` to `24:00`, where `24:00` represents\nmidnight at the end of the specified day.\n\n__Note:__ If `openDay` and `closeDay` specify the same day of the week `closeTime` must be later than `openTime`.\n" + }, + { + "name": "openDay", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Day of the week the period starts on." + }, + { + "name": "openTime", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Time the period starts in 24-hour [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) extended format. Valid values are `00:00` to `24:00`, where `24:00` represents\nmidnight at the end of the specified day." + } + ], + "docs": { + "description": [ + "Weekly recurring time periods when the business is regularly open or the service is available." + ] + } + }, + { + "name": "UpdateSyncConfigOptions", + "members": [ + { + "name": "fieldMask", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Optional list of fields to update. If provided, only the specified fields are updated." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "UpdateSyncConfigRequest", + "members": [ + { + "name": "connectionId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the external calendar connection to update." + }, + { + "name": "fieldMask", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Optional list of fields to update. If provided, only the specified fields are updated." + }, + { + "name": "syncConfig", + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.ConnectionSyncConfig" + } + ], + "doc": "Updated sync configuration details." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "UpdateSyncConfigResponse", + "members": [ + { + "name": "connection", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.ExternalCalendars.Connection" + } + ], + "doc": "Connection with updated sync configuration." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Version", + "members": [ + { + "name": "participantsVersion", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Participants version number, updated each time the schedule participants are updated." + }, + { + "name": "scheduleVersion", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Schedule version number, updated each time the schedule is updated." + } + ], + "docs": { + "description": [ + "" + ] + } + } + ] +} diff --git a/wix-bookings-v2/wix-bookings-v2/ExternalCalendars/guides/Introduction.md b/wix-bookings-v2/wix-bookings-v2/ExternalCalendars/guides/Introduction.md new file mode 100644 index 0000000000..506fa0c1b5 --- /dev/null +++ b/wix-bookings-v2/wix-bookings-v2/ExternalCalendars/guides/Introduction.md @@ -0,0 +1,52 @@ +--- +title: Introduction +--- + +# About the External Calendars API + + +  + +

+ Developer Preview +
+ APIs in
Developer Preview are subject to change and are not intended for use in production.
Send us your suggestions for improving this API. Your feedback is valuable to us. +
+ +  + + +The External Calendars API enables you to connect and sync a Wix site with external calendars. + +With External Calendars, you can: + ++ Establish a connection between a Wix site and an external calendar account. ++ Import events to a Wix site from a connected external calendar. ++ Export events from a Wix site's calendar to a connected external calendar. ++ Retrieve information about calendars belonging to an external calendar account. ++ Retrieve information about support for external calendar providers. + +The External Calendars API provides built-in support for Google, Microsoft, and Apple calendars. Integration with additional external calendars can be enabled by installing a calendar integration app from the Wix App Market. + +## Before you begin + +It’s important to note the following points before starting to code: + ++ External calendar providers have different requirements for authentication. Use [`listProviders()`](#listProviders) to find out whether to connect with a provider using [`connectByOAuth()`](#connectByOAuth) or [`connectByCredentials()`](#connectByCredentials). ++ A connection’s `syncConfig` property contains settings for the external calendar connection, including whether importing and/or exporting of calendar events is enabled. +* Only site collaborators with [Bookings roles](https://support.wix.com/en/article/roles-permissions-overview) can book or edit their bookings. You can override the permissions with the [`elevate()`](https://www.wix.com/velo/reference/wix-auth/elevate) function. + + +## Terminology + ++ **External calendar**: A calender hosted by a third-party calendar service. ++ **External calendar provider**: The third-party service providing an external calendar. For example: Google, Apple, or Microsoft. ++ **External calendar connection**: A linkage established between a Wix site’s calendar and one or more external calendars, to enable importing and/or exporting calendar events. ++ **Event**: A single session or recurring session instance that appears in a specific block of time in a calendar, such as an appointment or class. ++ **Schedule**: Collection of all sessions that belong to the same class, course, appointment, or resource in a Wix site's calendar. + +To use the External Calendars API, import `{ externalCalendars }` from the `wix-bookings.v2` module: + +```javascript +import { externalCalendars } from 'wix-bookings.v2'; +``` \ No newline at end of file From c1ee85a36f80b16d003a63c2ecad796df85b078a Mon Sep 17 00:00:00 2001 From: TWSingleSource <116091643+TWSingleSource@users.noreply.github.com> Date: Tue, 28 Mar 2023 11:09:28 +0300 Subject: [PATCH 13/45] Add linkable ids to the wix data error codes Co-authored-by: Wix Tech Writers Co-authored-by: Wix Docs Feds --- .github/workflows/menuEditorSync.yaml | 44 +++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 .github/workflows/menuEditorSync.yaml diff --git a/.github/workflows/menuEditorSync.yaml b/.github/workflows/menuEditorSync.yaml new file mode 100644 index 0000000000..026781355a --- /dev/null +++ b/.github/workflows/menuEditorSync.yaml @@ -0,0 +1,44 @@ +name : build_dev_preview + +on: + schedule: + - cron: '0 8 * * *' + +jobs: + build-dev-preview: + if: github.event.pull_request.merged == true + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + ref: master + - uses: actions/setup-node@v3 + with: + node-version: '18.x' + - name: Build Dev Preview List + run : | + npm install get-all-files + npm install node-fetch + git config user.email "adamfri@wix.com" + git config user.name "Adam Friedmann" + git checkout -b menu-editor-sync + node scripts/buildDevPreviewList.mjs + git add guides/developer-preview.md + DIFF=$(git status --porcelain) + if [[ "$DIFF" == *"developer-preview.md"* ]]; then + git commit -m "New dev preview list - menu editor change" + git push --set-upstream origin menu-editor-sync --force + echo "changes_pushed=yes" >> $GITHUB_ENV + echo "branch_name=menu-editor-sync" >> $GITHUB_ENV + fi + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - uses: slackapi/slack-github-action@v1.23.0 + if: ${{ env.changes_pushed == 'yes' }} + with: + payload: | + { + "branch_name" : "${{ env.branch_name }}" + } + env: + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} From b26ecf1ad5be7c9965d66fb1eafc51fce74e4c6a Mon Sep 17 00:00:00 2001 From: wix-docs-feds <87931637+wix-docs-feds@users.noreply.github.com> Date: Mon, 10 Apr 2023 12:30:46 +0300 Subject: [PATCH 14/45] intro fix Co-authored-by: christopherbWIX Co-authored-by: christopherbWIX <116498462+christopherbWIX@users.noreply.github.com> --- .../ExtendedBookings/guides/Introduction.md | 34 + .../guides/Supported Filters.md | 56 + .../wix-bookings-v2/Pricing.service.json | 1838 +++++++ .../Pricing/guides/Introduction.md | 46 + .../wix-bookings-v2/guides/Terminology.md | 94 + wix-loyalty.v2/metadata.json | 7 + wix-marketing-tags.v2/metadata.json | 7 + wix-media-v2/wix-media-v2.service.json | 44 + wix-media-v2/wix-media-v2/Events.service.json | 3749 +++++++++++++++ .../Events/guides/events-intro.md | 41 + wix-media-v2/wix-media-v2/Files.service.json | 4259 +++++++++++++++++ .../wix-media-v2/Files/guides/files-intro.md | 36 + .../wix-media-v2/Folders.service.json | 1575 ++++++ .../Folders/guides/folders-intro.md | 35 + .../wix-media-v2/guides/media-intro.md | 83 + .../guides/resumable-upload-api.md | 127 + .../wix-media-v2/guides/upload-api.md | 97 + wix-media.v2/metadata.json | 7 + 18 files changed, 12135 insertions(+) create mode 100644 wix-bookings-v2/wix-bookings-v2/ExtendedBookings/guides/Introduction.md create mode 100644 wix-bookings-v2/wix-bookings-v2/ExtendedBookings/guides/Supported Filters.md create mode 100644 wix-bookings-v2/wix-bookings-v2/Pricing.service.json create mode 100644 wix-bookings-v2/wix-bookings-v2/Pricing/guides/Introduction.md create mode 100644 wix-bookings-v2/wix-bookings-v2/guides/Terminology.md create mode 100644 wix-loyalty.v2/metadata.json create mode 100644 wix-marketing-tags.v2/metadata.json create mode 100644 wix-media-v2/wix-media-v2.service.json create mode 100644 wix-media-v2/wix-media-v2/Events.service.json create mode 100644 wix-media-v2/wix-media-v2/Events/guides/events-intro.md create mode 100644 wix-media-v2/wix-media-v2/Files.service.json create mode 100644 wix-media-v2/wix-media-v2/Files/guides/files-intro.md create mode 100644 wix-media-v2/wix-media-v2/Folders.service.json create mode 100644 wix-media-v2/wix-media-v2/Folders/guides/folders-intro.md create mode 100644 wix-media-v2/wix-media-v2/guides/media-intro.md create mode 100644 wix-media-v2/wix-media-v2/guides/resumable-upload-api.md create mode 100644 wix-media-v2/wix-media-v2/guides/upload-api.md create mode 100644 wix-media.v2/metadata.json diff --git a/wix-bookings-v2/wix-bookings-v2/ExtendedBookings/guides/Introduction.md b/wix-bookings-v2/wix-bookings-v2/ExtendedBookings/guides/Introduction.md new file mode 100644 index 0000000000..c1dca9de02 --- /dev/null +++ b/wix-bookings-v2/wix-bookings-v2/ExtendedBookings/guides/Introduction.md @@ -0,0 +1,34 @@ +# About the Wix Bookings Extended Bookings API + +  + +
+ Developer Preview +
+ APIs in Developer Preview are subject to change and are not intended for use in production.
Send us your suggestions for improving this API. Your feedback is valuable to us.
+
+ +  + + + +With the Wix Bookings Extended Bookings API, you can retrieve bookings for a site's services. + In addition to retrieving information about bookings, you also retrieve additional extended information, such as whether the booking can be refunded or rescheduled, and attendance for the booking. + + + ## Before You Begin + + Before using any `extendedBookings` functions, make sure to [install Wix Bookings](https://support.wix.com/en/article/adding-wix-bookings-to-your-site) on your site. + + +To use the Wix Bookings Extended Bookings V2 API, import `{ extendedBookings }` from the `wix-bookings.v2` module: + +```javascript +import { extendedBookings } from 'wix-bookings.v2'; +``` + +## Terminology + +For a glossary of terms, see [Terminology](https://www.wix.com/velo/reference/wix-bookings-v2/terminology) diff --git a/wix-bookings-v2/wix-bookings-v2/ExtendedBookings/guides/Supported Filters.md b/wix-bookings-v2/wix-bookings-v2/ExtendedBookings/guides/Supported Filters.md new file mode 100644 index 0000000000..8f1fb38343 --- /dev/null +++ b/wix-bookings-v2/wix-bookings-v2/ExtendedBookings/guides/Supported Filters.md @@ -0,0 +1,56 @@ +# Supported Filters + + +[`queryExtendedBookings()`](#queryExtendedBookings) runs with these defaults: + ++ sorted by `id` in `ASC` order ++ cursorPaging.limit is `50` + +`query.fields` and `query.fieldsets` aren't supported for this endpoint. + +The following table shows field support for filters for the booking object: + + +| Field | Supported Filters | +|-----------------------------------------------------------------------------| --------------------------------------------- | +| id | `eq`, `ne`, `in` | +| bookedEntity.item.slot.sessionId | `eq`, `ne`, `in` | +| bookedEntity.item.slot.serviceId | `eq`, `ne`, `in` | +| bookedEntity.item.slot.scheduleId | `eq`, `ne`, `in` | +| bookedEntity.item.slot.resource.id | `eq`, `ne`, `in` | +| bookedEntity.item.slot.location.id | `eq`, `ne`, `in` | +| bookedEntity.item.slot.location.locationType | `eq`, `ne`, `in` | +| bookedEntity.item.schedule.scheduleId | `eq`, `ne`, `in` | +| bookedEntity.item.schedule.serviceId | `eq`, `ne`, `in` | +| bookedEntity.item.schedule.location.id | `eq`, `ne`, `in` | +| bookedEntity.item.schedule.location.locationType | `eq`, `ne`, `in` | +| bookedEntity.tags | `hasSome`, `hasAll` | +| contactDetails.contactId | `eq`, `ne`, `in` | +| status | `eq`, `ne`, `in` | +| paymentStatus | `eq`, `ne`, `in` | +| selectedPaymentOption | `eq`, `ne`, `in` | +| createdDate | `eq`, `ne`, `gt`, `gte`, `lt`, `lte`, `in`, `nin` | +| externalUserId | `eq`, `ne`, `in` | +| createdBy.contactId | `eq`, `ne`, `in` | +| createdBy.id.appId | `eq`, `ne`, `in` | +| createdBy.id.wixUserId | `eq`, `ne`, `in` | +| createdBy.id.memberId | `eq`, `ne`, `in` | +| createdBy.id.anonymousVisitorId | `eq`, `ne`, `in` | +| startDate | `eq`, `ne`, `gt`, `gte`, `lt`, `lte`, `in`, `nin` | +| endDate | `eq`, `ne`, `gt`, `gte`, `lt`, `lte`, `in`, `nin` | +| updatedDate | `eq`, `ne`, `gt`, `gte`, `lt`, `lte`, `in`, `nin` | +| doubleBooked | `eq`, `ne` | +| participantsInfo.type.totalParticipants.value | `eq`, `ne`, `gt`, `gte`, `lt`, `lte`, `in`, `nin` | +| participantsInfo.type.participantsChoices.serviceChoices.choices.optionId | `hasSome`, `hasAll` | +| participantsInfo.type.participantsChoices.serviceChoices.choices.choice.custom.value | `hasSome`, `hasAll` | + + +You can only specify a filter only once per query. If a filter is provided +more than once, only the first occurrence affects the returned bookings. + +When using filters for dates, you must use [UTC time](https://en.wikipedia.org/wiki/Coordinated_Universal_Time). + +Bookings belonging to a schedule don't have a `sessionId`. Therefore you +must use the `sessionId` filter that isn't part of the `query` object to +filter bookings for courses. + diff --git a/wix-bookings-v2/wix-bookings-v2/Pricing.service.json b/wix-bookings-v2/wix-bookings-v2/Pricing.service.json new file mode 100644 index 0000000000..468585f695 --- /dev/null +++ b/wix-bookings-v2/wix-bookings-v2/Pricing.service.json @@ -0,0 +1,1838 @@ +{ + "name": "Pricing", + "memberOf": "wix-bookings-v2", + "mixes": [], + "callbacks": [], + "extra": {}, + "clientId": "wix-bookings.v2-price_info", + "docs": {}, + "relatedGuides": [], + "properties": [], + "operations": [ + { + "name": "calculatePrice", + "params": [ + { + "name": "booking", + "type": [ + { + "referenceType": "wix-bookings-v2.Pricing.Booking" + } + ], + "doc": "Booking to calculate the price for.", + "required": true + } + ], + "requiredFields": [ + "booking" + ], + "ret": { + "type": [ + { + "complexType": { + "nativeType": "Promise", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Pricing.CalculatePriceResponse" + } + ] + } + } + ], + "doc": null + }, + "docs": { + "summary": "Calculates the base price of a booking.", + "description": [ + "You can call [`calculatePrice()`](https://www.wix.com/velo/reference/wix-bookings-v2/pricing/calculateprice) after a booking is created. The returned calculated price includes information about each line\nitem's price and the booking's total price.\n\nYou can use [`previewPrice()`](https://www.wix.com/velo/reference/wix-bookings-v2/pricing/previewprice) to get the base price\nbefore a booking is created.\n\nThe calculated price is the base price that will be used as a basis for charging the customer.\nDuring checkout, additional taxes\nand fees might be added to this base price.\n\n## Calculating the price\n\nWix Bookings has its own default pricing logic for calculating the price. When\nusing Wix Bookings' default pricing logic, you must pass the `serviceId` in the `slot`\nor `schedule` object to [`calculatePrice()`](https://www.wix.com/velo/reference/wix-bookings-v2/pricing/calculateprice).\n\nAlternatively you can customize the pricing logic using the\n[Bookings Pricing Integration REST SPI](https://dev.wix.com/api/rest/wix-bookings/pricing-integration-spi).\nIf you integrate with a pricing provider, the customized pricing logic becomes\nthe default logic. This means that, if the Pricing Integration SPI is implemented,\nwhen calling `calculatePrice()`,\nthe customized logic is used instead." + ], + "examples": [ + { + "title": "calculatePrice example", + "body": [ + "import { pricing } from 'wix-bookings.v2';", + " ", + " async function calculatePrice(booking) {", + " try {", + " const result = await pricing.calculatePrice(booking);", + "", + " return result;", + " } catch (error) {", + " console.error(error);", + " // Handle the error", + " }", + " }", + " " + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "previewPrice", + "params": [ + { + "name": "bookingLineItems", + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Pricing.BookingLineItem" + } + ] + } + } + ], + "doc": "List of line items to preview the price for.", + "required": true + } + ], + "requiredFields": [ + "bookingLineItems" + ], + "ret": { + "type": [ + { + "complexType": { + "nativeType": "Promise", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Pricing.PreviewPriceResponse" + } + ] + } + } + ], + "doc": null + }, + "docs": { + "summary": "Previews the base price for a set of line items belonging to the same service\nbefore a potential booking is actually created.", + "description": [ + "The returned price preview information about each line\nitem's price and sums up each line item's price.\n\nThe previewed price is not the actual price that will be used to charge the customer.\n`Preview Price` only estimates the base price by adding up the price\nof each line item before\nthe booking is actually created.\n\nUse [`Calculate Price`](https://www.wix.com/velo/reference/wix-bookings-v2/pricing/calculateprice) to get the base price\nafter the booking is created.\n\nPassing line items that belong to different services results in an error.\n\n## Calculating the previewed price\n\nWix Bookings has its own default pricing logic for previewing the price. You must\npass the `serviceId` in the `slot`\nor `schedule` object to [`previewPrice()`].\n\nYou cannot call `previewPrice()` if you have customized Bookings pricing logic using the\n[Bookings Pricing Integration REST SPI](https://dev.wix.com/api/rest/wix-bookings/pricing-integration-spi). Calling `previewPrice` if custom pricing\nlogic has been implemented for the site results in an error." + ], + "examples": [ + { + "title": "previewPrice example", + "body": [ + "import { pricing } from 'wix-bookings.v2';", + " ", + " async function previewPrice(bookingLineItems) {", + " try {", + " const result = await pricing.previewPrice(bookingLineItems);", + "", + " return result;", + " } catch (error) {", + " console.error(error);", + " // Handle the error", + " }", + " }", + " " + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + } + ], + "messages": [ + { + "name": "Address", + "members": [ + { + "name": "addressLine", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Main address line, usually street and number, as free text." + }, + { + "name": "addressLine2", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Free text providing more detailed address info. Usually contains Apt, Suite, and Floor." + }, + { + "name": "city", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "City name." + }, + { + "name": "country", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Country code." + }, + { + "name": "countryFullname", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Country full name." + }, + { + "name": "formattedAddress", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "A string containing the full address of this location." + }, + { + "name": "geocode", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Pricing.AddressLocation" + } + ], + "doc": "Coordinates of the physical address." + }, + { + "name": "hint", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Free text to help find the address." + }, + { + "name": "postalCode", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Zip/postal code." + }, + { + "name": "streetAddress", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Pricing.StreetAddress" + } + ], + "doc": "Street name, number and apartment number." + }, + { + "name": "subdivision", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Subdivision. Usually state, region, prefecture or province code, according to [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2)." + }, + { + "name": "subdivisions", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Pricing.Subdivision" + } + ] + } + } + ], + "doc": "Multi-level subdivisions from top to bottom." + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfAddressStreetOneOf", + "members": [ + "addressLine", + "streetAddress" + ] + } + ] + }, + "docs": { + "description": [ + "Physical address" + ] + } + }, + { + "name": "AddressLocation", + "members": [ + { + "name": "latitude", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Address latitude." + }, + { + "name": "longitude", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Address longitude." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "AddressStreetOneOf", + "members": [ + { + "name": "addressLine", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Main address line, usually street and number, as free text." + }, + { + "name": "streetAddress", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Pricing.StreetAddress" + } + ], + "doc": "Street name, number and apartment number." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "BookedEntity", + "members": [ + { + "name": "schedule", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Pricing.BookedSchedule" + } + ], + "doc": "The booked schedule. The booking is automatically assigned to the schedule's sessions." + }, + { + "name": "slot", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Pricing.BookedSlot" + } + ], + "doc": "The booked slot, once booked becomes a session, The booking is automatically assigned to the session if it already exists, or creates a session if one doesn't already exist." + }, + { + "name": "tags", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "List of tags for the booking.\nSystem-assigned tags for sessions and schedules are:\n+ \"INDIVIDUAL\" Appointments, including appointments with more than 1 participant.\n+ \"GROUP\" Individual classes.\n+ \"COURSE\" Courses." + }, + { + "name": "title", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Session title at the time of booking." + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfBookedEntityItemOneOf", + "members": [ + "schedule", + "slot" + ] + } + ] + }, + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "BookedEntityItemOneOf", + "members": [ + { + "name": "schedule", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Pricing.BookedSchedule" + } + ], + "doc": "The booked schedule. The booking is automatically assigned to the schedule's sessions." + }, + { + "name": "slot", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Pricing.BookedSlot" + } + ], + "doc": "The booked slot, once booked becomes a session, The booking is automatically assigned to the session if it already exists, or creates a session if one doesn't already exist." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "BookedResource", + "members": [ + { + "name": "_id", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Booked resource ID." + }, + { + "name": "email", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Resource's email at the time of booking." + }, + { + "name": "name", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Resource's name at the time of booking." + }, + { + "name": "scheduleId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Resource's schedule ID." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "BookedSchedule", + "members": [ + { + "name": "firstSessionStart", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The start time of the first session in [RFC 3339](https://www.rfc-editor.org/rfc/rfc3339)\nformat. Required." + }, + { + "name": "lastSessionEnd", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The end time of the last session in [RFC 3339](https://www.rfc-editor.org/rfc/rfc3339)\nformat. Required." + }, + { + "name": "location", + "readOnly": true, + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Pricing.Location" + } + ], + "doc": "Location where the schedule's sessions take place. Read only." + }, + { + "name": "scheduleId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Schedule ID." + }, + { + "name": "serviceId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Booked service ID." + }, + { + "name": "timezone", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The timezone according to which the slot was shown to the user when booking, and should be shown in future." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "BookedSlot", + "members": [ + { + "name": "endDate", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The end time of this slot in [RFC 3339](https://www.rfc-editor.org/rfc/rfc3339)\nformat." + }, + { + "name": "location", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Pricing.Location" + } + ], + "doc": "Location where the slot's session takes place." + }, + { + "name": "resource", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Pricing.BookedResource" + } + ], + "doc": "The resource assigned to the slot." + }, + { + "name": "scheduleId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Schedule ID. Required." + }, + { + "name": "serviceId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Service ID." + }, + { + "name": "sessionId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the underlying session when session is a single session or generated from a recurring session.\nIf `sessionId` is defined in the `Create Booking` request, the `startDate`, `endDate`, `timezone`, `resource`, and `location` fields are ignored and populated from the existing session's information." + }, + { + "name": "startDate", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The start time of this slot in [RFC 3339](https://www.rfc-editor.org/rfc/rfc3339)\nformat." + }, + { + "name": "timezone", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The timezone according to which the slot was shown to the user when booking, and should be shown in future." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Booking", + "members": [ + { + "name": "_createdDate", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "Date and time the booking was created." + }, + { + "name": "_id", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Booking ID." + }, + { + "name": "_updatedDate", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "Date and time the booking was updated." + }, + { + "name": "additionalFields", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Pricing.CustomFormField" + } + ] + } + } + ], + "doc": "Additional custom fields submitted with the booking form." + }, + { + "name": "bookedEntity", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Pricing.BookedEntity" + } + ], + "doc": "An object describing the slot or schedule that was booked." + }, + { + "name": "contactDetails", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Pricing.ContactDetails" + } + ], + "doc": "Contact details of the site visitor or member making the booking." + }, + { + "name": "createdBy", + "readOnly": true, + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Pricing.IdentificationData" + } + ], + "doc": "ID of the creator of the Booking.\nIf `appId` and another ID are present, the other ID takes precedence." + }, + { + "name": "doubleBooked", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether this booking overlaps another existing confirmed booking. Returned when: `true`" + }, + { + "name": "endDate", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "The end date of this booking. For a slot, this is the end date of the slot. For a schedule, this is the end date of the last session." + }, + { + "name": "extendedFields", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Pricing.ExtendedFields" + } + ], + "doc": "Additional custom fields. This includes fields managed by Wix, by 3rd-party apps, and by the site.\n\nEmpty fields are not returned.\n" + }, + { + "name": "externalUserId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "External ID provided by the client app on creation." + }, + { + "name": "participantsChoices", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Pricing.ParticipantChoices" + } + ], + "doc": "Information about the booked service choices and participants.\nAvailable only when the booking includes multiple service variants." + }, + { + "name": "paymentStatus", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Payment status.\nOne of:\n- `\"NOT_PAID\"` The booking is not paid for.\n- `\"PAID\"` The booking is fully paid.\n- `\"PARTIALLY_PAID\"` The booking is partially paid.\n- `\"REFUNDED\"` The booking is refunded." + }, + { + "name": "revision", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Revision number to be used when updating, rescheduling, or cancelling the booking. Revision number, which increments by 1 each time the booking is updated, rescheduled, or canceled. To prevent conflicting changes,the current revision must be passed when updating the booking." + }, + { + "name": "selectedPaymentOption", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Selected payment option.\n\nSupported values: `\"OFFLINE\"`, `\"ONLINE\"`, `\"MEMBERSHIP\"`, `\"MEMBERSHIP_OFFLINE\"`.\n\nOne of the payment options offered by the service, or another option if `skipSelectedPaymentOptionValidation` is `true`.\nWhen undefined, the payment option is resolved by the service configuration on checkout.\n" + }, + { + "name": "startDate", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "The start date of this booking. For a slot, this is the start date of the slot. For a schedule, this is the start date of the first session." + }, + { + "name": "status", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Booking status.\nOne of:\n- `\"CREATED\"` - The booking was created.\n- `\"UPDATED\"` - The booking was updated.\n- `\"CONFIRMED\"` - The booking was confirmed and appears on the bookings calendar. A booking can be manually confirmed using the [`confirmOrDecline()`](https://www.wix.com/velo/reference/wix-bookings-v2/bookings/confirmordeclinebooking) API. A booking can be automatically confirmed when the following requirements are met:\n + The service is configured as automatically confirmed.\n + The system invoked the eCommerce checkout API and created an order.\n- `\"CANCELED\"` - The booking has been canceled and synced to the bookings calendar.\nThe booking can be canceled using [`cancelBooking()`](https://www.wix.com/velo/reference/wix-bookings-v2/bookings/cancelbooking) API.\n- `\"PENDING\"` - The booking is waiting to be confirmed or declined by the owner and the booking is synced to the bookings calendar.\nBookings can be manually set as `PENDING` using the `setAsPending()` API, by those with Manage Booking Status permissions scopes.\nBookings can be automatically set as `PENDING` when the following requirements are met:\n + The service is configured as manually confirmed.\n + Invoking the eCommerce checkout API and an order has been created.\n- `\"WAITING_LIST\"` - The booking is on a waiting list.\n- `\"DECLINED\"` - The booking was declined by the owner and synced to the Bookings calendar. Bookings can be manually declined using the [`declineBooking()`](https://www.wix.com/velo/reference/wix-bookings-v2/bookings/declinebooking) API by those with Manage Booking Status permission scopes. Bookings can be automatically declined when one of the following requirements are met:\n + Invoking the `eCommerce checkout` API and the order declined event has been sent.\n + Invoking the `eCommerce checkout` API and order approved event has been sent, but the booking is offline and the booking causes a double booking." + }, + { + "name": "totalParticipants", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Total number of participants. Available only when the booking includes a single service variant." + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfBookingParticipantsInfoOneOf", + "members": [ + "participantsChoices", + "totalParticipants" + ] + } + ] + }, + "docs": { + "description": [ + "The booking object, version 2." + ] + } + }, + { + "name": "BookingLineItem", + "members": [ + { + "name": "choices", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Pricing.ServiceChoice" + } + ] + } + } + ], + "doc": "Custom choices. Choices are specific values for an option the customer can choose to book.\nFor example, the option `ageGroup` may have these choices: `child`, `student`, `adult`, and `senior`.\nEach choice may have a different price." + }, + { + "name": "numberOfParticipants", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Number of participants for the line item." + }, + { + "name": "pricePerParticipant", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Price per participant for the line item." + }, + { + "name": "resourceId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Resource ID. Required for services of type appointment or class." + }, + { + "name": "serviceId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Service ID.\n\nRequired when not using Wix Booking's default pricing logic.\n" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "BookingParticipantsInfoOneOf", + "members": [ + { + "name": "participantsChoices", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Pricing.ParticipantChoices" + } + ], + "doc": "Information about the booked service choices and participants.\nAvailable only when the booking includes multiple service variants." + }, + { + "name": "totalParticipants", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Total number of participants. Available only when the booking includes a single service variant." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "BookingSource", + "members": [ + { + "name": "actor", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Actor that created this booking.\n" + }, + { + "name": "appDefId", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Wix site ID of the application that created the booking." + }, + { + "name": "appName", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Name of the application that created the booking, as saved in Wix Developers Center at the time of booking." + }, + { + "name": "platform", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Platform from which a booking was created\n" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "CalculatePriceRequest", + "members": [ + { + "name": "booking", + "type": [ + { + "referenceType": "wix-bookings-v2.Pricing.Booking" + } + ], + "doc": "Booking to calculate the price for." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "CalculatePriceResponse", + "members": [ + { + "name": "priceInfo", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Pricing.PriceInfo" + } + ], + "doc": "Information about each line item's price and the actual total base price." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ContactDetails", + "members": [ + { + "name": "contactId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Contact's ID." + }, + { + "name": "countryCode", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Contact's country in [ISO 3166-1 alpha-2 code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format." + }, + { + "name": "email", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Contact's email, used to create a new contact or get existing one from the [Contacts API](https://www.wix.com/velo/reference/wix-crm/contacts). Used to validate coupon usage limitations per contact. If not passed, the coupon usage limitation will not be enforced. (Coupon usage limitation validation is not supported yet)." + }, + { + "name": "firstName", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Contact's first name. When populated from a standard booking form, this property corresponds to the **Name** field." + }, + { + "name": "fullAddress", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Pricing.Address" + } + ], + "doc": "Contact's full address." + }, + { + "name": "lastName", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Contact's last name." + }, + { + "name": "phone", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Contact's phone number." + }, + { + "name": "timeZone", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Contact's time zone." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "CustomFormField", + "members": [ + { + "name": "_id", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the form field as defined in the form." + }, + { + "name": "label", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Form field's label at the time of submission." + }, + { + "name": "value", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Value that was submitted for this field." + }, + { + "name": "valueType", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Form field value's type at the time of submission.\n\nSupported values: `\"SHORT_TEXT\"`, `\"LONG_TEXT\"`, `\"CHECK_BOX\"`\n" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ExtendedFields", + "members": [ + { + "name": "namespaces", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Record", + "typeParams": [ + { + "nativeType": "string" + }, + { + "nativeType": "Object" + } + ] + } + } + ], + "doc": "Data Extensions extended fields expressed as a set of key-value pairs:\n\n`key:value`\n\n+ `key` is the namespace, type `string`.\n+ `value` is the data of the extended fields data, type `struct`.\n" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "FlowControlSettings", + "members": [ + { + "name": "skipAvailabilityValidation", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "When true, skips availability checking and allows booking.\nRequires BOOKINGS.OVERRIDE_AVAILABILITY permissions." + }, + { + "name": "skipBusinessConfirmation", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "When true, allows booking a confirmation-required service without requiring confirmation.\nRequires BOOKINGS.IGNORE_BOOKING_POLICY permissions." + }, + { + "name": "skipSelectedPaymentOptionValidation", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "When true, skips selected payment option checking as defined in `selectedPaymentOption` field\nand allows booking.\nRequires BOOKINGS.MANAGE_PAYMENTS permissions." + }, + { + "name": "withRefund", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "When true, refunds the booking's payment when the booking is canceled." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "IdentificationData", + "members": [ + { + "name": "anonymousVisitorId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of a site visitor that has not logged in to the site." + }, + { + "name": "appId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of an app." + }, + { + "name": "contactId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of of a contact in the site's [CRM by Ascend](https://www.wix.com/ascend/crm) system." + }, + { + "name": "memberId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of a site visitor that has logged in to the site." + }, + { + "name": "wixUserId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of a Wix user (site owner, contributor, etc.)." + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfIdentificationDataIdOneOf", + "members": [ + "anonymousVisitorId", + "appId", + "memberId", + "wixUserId" + ] + } + ] + }, + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "IdentificationDataIdOneOf", + "members": [ + { + "name": "anonymousVisitorId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of a site visitor that has not logged in to the site." + }, + { + "name": "appId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of an app." + }, + { + "name": "memberId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of a site visitor that has logged in to the site." + }, + { + "name": "wixUserId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of a Wix user (site owner, contributor, etc.)." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Location", + "members": [ + { + "name": "_id", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Business location ID. Available only for locations that are business locations,\nmeaning the `location_type` is `\"OWNER_BUSINESS\"`." + }, + { + "name": "formattedAddress", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The full address of this location." + }, + { + "name": "locationType", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Location type.\n\n- `\"OWNER_BUSINESS\"`: The business address, as set in the site’s general settings.\n- `\"OWNER_CUSTOM\"`: The address as set when creating the service.\n- `\"CUSTOM\"`: The address as set for the individual session.\n" + }, + { + "name": "name", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Location name." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ParticipantChoices", + "members": [ + { + "name": "serviceChoices", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Pricing.ServiceChoices" + } + ] + } + } + ], + "doc": "Information about the booked service choices. Includes the number of participants." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ParticipantNotification", + "members": [ + { + "name": "message", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Custom message to send to the participants about the changes to the booking." + }, + { + "name": "notifyParticipants", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether to send the message about the changes to the customer.\n\nDefault: `false`\n" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "PreviewPriceRequest", + "members": [ + { + "name": "bookingLineItems", + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Pricing.BookingLineItem" + } + ] + } + } + ], + "doc": "List of line items to preview the price for." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "PreviewPriceResponse", + "members": [ + { + "name": "priceInfo", + "optional": true, + "type": [ + { + "referenceType": "wix-bookings-v2.Pricing.PriceInfo" + } + ], + "doc": "Information about each line item's price and the estimated total price based on the line items." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "PriceInfo", + "members": [ + { + "name": "bookingLineItems", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Pricing.BookingLineItem" + } + ] + } + } + ], + "doc": "List of line items, including the number of participants and the price per participant." + }, + { + "name": "calculatedPrice", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Calculated total price. Available only when the\nservice's\nprice has been set up as a numerical value in the\n`schedule.rate.labeledPriceOptions` object." + }, + { + "name": "deposit", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Total deposit the customer must pay when booking the service.\n\nAvailable when: The service includes a deposit.\n" + }, + { + "name": "priceDescription", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Description of the total price. Available only when the\nservice's\nprice has been set up as a text value in the\n`schedule.rate.priceText` property." + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfPriceInfoTotalPriceOneOf", + "members": [ + "calculatedPrice", + "priceDescription" + ] + } + ] + }, + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "PriceInfoTotalPriceOneOf", + "members": [ + { + "name": "calculatedPrice", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Calculated total price. Available only when the\n[service](https://dev.wix.com/api/rest/wix-bookings/services/service/create-service)'s\nprice has been set up as a numerical value in the\n[`schedule.rate.labeledPriceOptions`](https://dev.wix.com/api/rest/wix-bookings/schedules-and-sessions/schedule/schedule-object) object." + }, + { + "name": "priceDescription", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Description of the total price. Available only when the\n[service](https://dev.wix.com/api/rest/wix-bookings/services/service/create-service)'s\nprice has been set up as a text value in the\n[`schedule.rate.priceText`](https://dev.wix.com/api/rest/wix-bookings/schedules-and-sessions/schedule/schedule-object) property." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ServiceChoice", + "members": [ + { + "name": "custom", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Value for one of the choices in the `CustomServiceOption.choices` list.\nChoices are specific values for an option the customer can choose to book. For example,\nthe option `ageGroup` may have these choices: `child`, `student`, `adult`, and `senior`.\nEach choice may have a different price." + }, + { + "name": "optionId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the corresponding option for the choice. For example, the choice `child`\ncould correspond to the option `ageGroup`. In this case, `optionId` is the ID\nfor the `ageGroup` option." + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfServiceChoiceChoiceOneOf", + "members": [ + "custom" + ] + } + ] + }, + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ServiceChoiceChoiceOneOf", + "members": [ + { + "name": "custom", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Value for one of the choices in the `CustomServiceOption.choices` list.\nChoices are specific values for an option the customer can choose to book. For example,\nthe option `ageGroup` may have these choices: `child`, `student`, `adult`, and `senior`.\nEach choice may have a different price." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ServiceChoices", + "members": [ + { + "name": "choices", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-bookings-v2.Pricing.ServiceChoice" + } + ] + } + } + ], + "doc": "Service choices for these participants." + }, + { + "name": "numberOfParticipants", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Number of participants for this variant." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "StreetAddress", + "members": [ + { + "name": "apt", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Apartment number." + }, + { + "name": "name", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Street name." + }, + { + "name": "number", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Street number." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Subdivision", + "members": [ + { + "name": "code", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Subdivision code. Usually state, region, prefecture or province code, according to [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2)." + }, + { + "name": "name", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Subdivision full name." + } + ], + "docs": { + "description": [ + "" + ] + } + } + ] +} diff --git a/wix-bookings-v2/wix-bookings-v2/Pricing/guides/Introduction.md b/wix-bookings-v2/wix-bookings-v2/Pricing/guides/Introduction.md new file mode 100644 index 0000000000..b82a598c82 --- /dev/null +++ b/wix-bookings-v2/wix-bookings-v2/Pricing/guides/Introduction.md @@ -0,0 +1,46 @@ +# About the Wix Bookings Pricing API + +  +
+ Developer Preview +
+ APIs in Developer Preview are subject to change and are not intended for use in production.
Send us your suggestions for improving this API. Your feedback is valuable to us.
+
+  + +> **Note:** This module is [universal](/api-overview/api-versions#universal-modules). +> Functions in this module can run on both the backend and frontend, +> unless specified otherwise. + + +With the Wix Bookings Pricing API, you can preview and calculate the +price of a booking. + ++ The [`previewPrice()`](wix-bookings-v2/pricing/previewprice) function lets you retrieve information about how much a customer would have to pay for a booking's line items before the actual booking has been created. ++ The [`calculatePrice()`](wix-bookings-v2/pricing/calculateprice) function determines the base price of a booking. + +The price of the booking can be fixed, free, or varied. With [varied pricing](https://support.wix.com/en/article/wix-bookings-creating-a-course#step-2-set-the-price-and-payment-options-for-the-course), site owners can offer different prices for the same service based on their customers' choices. ++ Site owners can set up basic varied pricing options in the site's dashboard. ++ You can use the [Wix Bookings Service Options and Variants APIs](wix-bookings-v2/service-options-and-variants) to set up more robust pricing options. + + +## Terminology + +For a comprehensive glossary of Wix Bookings terms, see [Terminology](wix-bookings-v2/terminology). + + +## Before You Begin + + ++ You can only preview the price for line items belonging to the same + service. + ++ If using the + [Wix Bookings Pricing Provider REST SPI](https://dev.wix.com/api/rest/wix-bookings/pricing-integration-spi) to set up your own + custom logic for varied pricing, the [previewPrice()](wix-bookings-v2/pricing/previewprice) function is not supported and an error is issued. + ++ To use the Bookings Pricing API, import `{ pricing }` from the `wix-bookings.v2` module in your Velo code: + + ```javascript + import { pricing } from 'wix-bookings.v2'; + ``` \ No newline at end of file diff --git a/wix-bookings-v2/wix-bookings-v2/guides/Terminology.md b/wix-bookings-v2/wix-bookings-v2/guides/Terminology.md new file mode 100644 index 0000000000..b49e6cf295 --- /dev/null +++ b/wix-bookings-v2/wix-bookings-v2/guides/Terminology.md @@ -0,0 +1,94 @@ + +# Terminology + ++ __Availability__: Free time on a schedule that customers can book. ++ __Booking__: Information about the service that the customer has booked. + Includes details about the time, location, participants, and price. ++ __Bookings Policy__: Terms the business wants to enforce when + customers try to book a service. For example, how far in advance customers + may book a service or until what point before the start of a session + customers can cancel. ++ __Booking Status__: Information about the booking's life cycle. + + `CREATED`: The booking has been created, but doesn't yet appear in the + business calendar. + You can create bookings with [Create Booking()](#createbooking) + + `PENDING`: The booking is waiting to be confirmed or declined by the + site owner and is displayed in the business calendar. + Bookings are automatically set as `PENDING` when an eCommerce order related to the booking has been created. + + `CONFIRMED`: The site owner has confirmed the booking and it appears in + the business calendar. + You can confirm your bookings in one of the following ways: + + __Automatically__. Bookings are automatically confirmed when the + service + is configured to do so and the order is approved during the checkout process. An automatic confirmation includes checking availability. + + __Manually__. You can manually confirm a booking using + [Confirm Or Decline Booking()](#confirmordeclinebooking). + slot's or schedule's availability. + + `WAITING_LIST`: The booking is on a waiting list. + + `DECLINED`: The booking has been declined by the site owner. + You can decline your bookings in one of the following ways: + + __Manually__. You can manually decline a booking with + [Decline Booking()](#declineBooking). + + __Automatically__.Bookings are automatically declined when an eCommerce order has been + declined or a double booking happened for free bookings. + + `CANCELED`: The booking has been canceled by the site owner or the customer. + Cancel bookings with [Cancel Booking()](#cancelBooking). ++ __Calendar__: General overview about the availability and bookings of the + business, including its services and resources. Manage your appointments, classes + and courses on the calendar. ++ __Double booked__: + A double booking can happen in case of 2 or more simultaneous eCommerce checkout + processes or if the site owner manually accepts bookings that exceed the + service's capacity limit. + + When a double booking happens for paying customers, the `doubleBooked` + boolean is set to `true` for the second booking and the owner is notified. + They must then manually resolve the situation. + + When a double booking happens for free services, the second + booking's status is set to `DECLINED` while the first booking is retained. ++ __Deposit__: Amount the customer must pay immediately when checking out the + booking. ++ __Locked Sessions__: Sessions that customers cannot book due to business reasons, such + as the session being full and having a waitlist, or because an administrator + wants to manually screen each customer before adding a customer to a session. ++ __Member__: Someone who is a registered member in the Wix site and has a + login. ++ __Merchant__: The business that offers services that the public (customers) can book. The merchant's business is on a Wix site. ++ __Pricing Provider__: A 3rd-party app that implements custom logic for determining the price of a booking. ++ __Resource__: Business asset like a staff member, room, or equipment that's + needed to provide a service. ++ __Service__: Business offering. For example, a fitness studio may offer a + 1-hour yoga class, a 45 minute HIIT training session, and a 30 minute 1-on-1 + personal training. Learn more about [services](https://support.wix.com/en/article/creating-the-right-booking-service-for-your-business). + + __Appointments__: Appointments take place whenever a customer books a specific + time slot. For example, your hair salon may be open for business from 9:00 AM + to 7:00 PM and a customer can book a session at any available time during the day. + + __Classes__: Classes can be scheduled on different days, at different times, + with different resources, such as staff members. Customers can sign up for single sessions + or a class's recurring sessions. For example, a language school offers a beginner's Spanish + class every Monday at 8:00 PM. Clients can join the session they want and don't have to commit + to attending all sessions. + + __Courses__: A limited number of sessions for the same service that starts and ends + on a particular day. Customers sign up for the entire course and not one session. For example, + a 12-session introductory course to Pilates, starting on February 1st and + ending on March 17th. ++ __Schedule__: A collection of all sessions that belong to the same class, course, + appointment, or resource. Schedules also comprise available slots that can still be booked. + + __Session__: An _occupied_ period of time in a schedule. Sessions are the + building blocks of appointments, classes, and courses. Each of these types of + services comprise sessions. The collection of related sessions for a service represent the + service's schedule. + + __Slot__: An _available_ period of time in a schedule that can be booked by a + customer. While this includes existing sessions that are available for + booking, it can also represent a period of time that can be booked based on + the availability of a resource, such as a barber with appointments of 30 + minutes each that are open for booking every weekday between 8:00 - 17:00. + These slots are calculated according to the constraints of the schedule. ++ __Variant__: Unique variation of the service. Each service variant may have + a different price. ++ __Visitor__: Anyone who isn't registered as a member or hasn't logged in to + the Wix site. If a visitor creates a booking they're added as a contact. ++ __[Wix Pricing Plans](https://support.wix.com/en/article/about-pricing-plans)__: + A pre-paid bundle of services or a membership that provides access to certain + services. ++ __Wix Site Owner__: The person managing the merchant's Wix site. + diff --git a/wix-loyalty.v2/metadata.json b/wix-loyalty.v2/metadata.json new file mode 100644 index 0000000000..28d90c791f --- /dev/null +++ b/wix-loyalty.v2/metadata.json @@ -0,0 +1,7 @@ +{ + "name": "@wix/wix-loyalty.v2", + "fingerprint": "95488b6591724e22374f2e49c7c5e461c56769963b1ddb90204f6834", + "groupId": "com.wixpress.velo-autogen", + "artifactId": "wix-loyalty-v2-velo-autogen", + "module": "wix-loyalty.v2" +} diff --git a/wix-marketing-tags.v2/metadata.json b/wix-marketing-tags.v2/metadata.json new file mode 100644 index 0000000000..5c7ace5111 --- /dev/null +++ b/wix-marketing-tags.v2/metadata.json @@ -0,0 +1,7 @@ +{ + "name": "@wix/wix-marketing-tags.v2", + "fingerprint": "95e985239570b27a000dbc69f81563184c53f6c18be8e0a671d0fe7a", + "groupId": "com.wixpress.velo-autogen", + "artifactId": "wix-marketing-tags-v2-velo-autogen", + "module": "wix-marketing-tags.v2" +} diff --git a/wix-media-v2/wix-media-v2.service.json b/wix-media-v2/wix-media-v2.service.json new file mode 100644 index 0000000000..53a1dd7ad5 --- /dev/null +++ b/wix-media-v2/wix-media-v2.service.json @@ -0,0 +1,44 @@ +{ + "name": "wix-media-v2", + "displayName": "wix-media.v2", + "mixes": [], + "callbacks": [], + "extra": {}, + "clientId": "wix-media.v2", + "docs": {}, + "relatedGuides": [], + "properties": [ + { + "name": "files", + "type": [ + { + "referenceType": "wix-media-v2.Files" + } + ], + "docs": { + "summary": "", + "links": [], + "examples": [], + "extra": {} + }, + "hidden": true + }, + { + "name": "folders", + "type": [ + { + "referenceType": "wix-media-v2.Folders" + } + ], + "docs": { + "summary": "", + "links": [], + "examples": [], + "extra": {} + }, + "hidden": true + } + ], + "operations": [], + "messages": [] +} diff --git a/wix-media-v2/wix-media-v2/Events.service.json b/wix-media-v2/wix-media-v2/Events.service.json new file mode 100644 index 0000000000..93c577e1d7 --- /dev/null +++ b/wix-media-v2/wix-media-v2/Events.service.json @@ -0,0 +1,3749 @@ +{ + "name": "Events", + "memberOf": "wix-media-v2", + "mixes": [], + "callbacks": [], + "extra": {}, + "clientId": "wix-media.v2-events", + "docs": {}, + "relatedGuides": [], + "properties": [], + "operations": [ + { + "name": "onFileDescriptorDeleted", + "params": [ + { + "name": "event", + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FileDescriptorFileDescriptorDeleted", + "displayName": "FileDescriptorDeleted" + } + ], + "doc": "", + "required": false + } + ], + "requiredFields": [], + "ret": { + "type": [ + { + "nativeType": "void" + } + ], + "doc": null + }, + "docs": { + "summary": "Triggered when a file is deleted.", + "description": [ + "If the `movedToTrash` property in the event object `true`, the file was moved to the Media Manager's trash bin. If the `movedToTrash` property in the event object is `false`, the file was permanently deleted." + ], + "examples": [ + { + "title": "onFileDescriptorDeleted example", + "body": [ + "", + " export function wixMediaSiteMedia_onFileDescriptorDeleted(event) {", + " const eventId = event.metadata.id", + " const entityId = event.entity._id;", + " }", + "", + " " + ] + } + ] + }, + "isVeloEvent": true, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "onFileDescriptorFileFailed", + "params": [ + { + "name": "event", + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FileDescriptorFileDescriptorFileFailed", + "displayName": "FileDescriptorFileFailed" + } + ], + "doc": "", + "required": false + } + ], + "requiredFields": [], + "ret": { + "type": [ + { + "nativeType": "void" + } + ], + "doc": null + }, + "docs": { + "summary": "Triggered when a file fails during essential post-upload processing.", + "description": [], + "examples": [ + { + "title": "onFileDescriptorFileFailed example", + "body": [ + "", + " export function wixMediaSiteMedia_onFileDescriptorFileFailed(event) {", + " const eventId = event.metadata.id", + " const entityId = event.data.fileDescriptor._id;", + " }", + "", + " " + ] + } + ] + }, + "isVeloEvent": true, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "onFileDescriptorFileReady", + "params": [ + { + "name": "event", + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FileDescriptorFileDescriptorFileReady", + "displayName": "FileDescriptorFileReady" + } + ], + "doc": "", + "required": false + } + ], + "requiredFields": [], + "ret": { + "type": [ + { + "nativeType": "void" + } + ], + "doc": null + }, + "docs": { + "summary": "Triggered when a file is ready to be used, after any post-upload processing.", + "description": [ + "This event is also triggred when a file is restored from the Media Manager's trash bin." + ], + "examples": [ + { + "title": "onFileDescriptorFileReady example", + "body": [ + "", + " export function wixMediaSiteMedia_onFileDescriptorFileReady(event) {", + " const eventId = event.metadata.id", + " const entityId = event.data.fileDescriptor._id;", + " }", + "", + " " + ] + } + ] + }, + "isVeloEvent": true, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "onFileDescriptorUpdated", + "params": [ + { + "name": "event", + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FileDescriptorFileDescriptorUpdated", + "displayName": "FileDescriptorUpdated" + } + ], + "doc": "", + "required": false + } + ], + "requiredFields": [], + "ret": { + "type": [ + { + "nativeType": "void" + } + ], + "doc": null + }, + "docs": { + "summary": "Triggered when a file is updated, including when a file is moved to a different folder.", + "description": [], + "examples": [ + { + "title": "onFileDescriptorUpdated example", + "body": [ + "", + " export function wixMediaSiteMedia_onFileDescriptorUpdated(event) {", + " const eventId = event.metadata.id", + " const entityId = event.entity._id;", + " }", + "", + " " + ] + } + ] + }, + "isVeloEvent": true, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "onFolderCreated", + "params": [ + { + "name": "event", + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FolderFolderCreated", + "displayName": "FolderCreated" + } + ], + "doc": "", + "required": false + } + ], + "requiredFields": [], + "ret": { + "type": [ + { + "nativeType": "void" + } + ], + "doc": null + }, + "docs": { + "summary": "Triggered when a folder is created.", + "description": [ + "This event is also triggred when a folder is restored from the Media Manager's trash bin." + ], + "examples": [ + { + "title": "onFolderCreated example", + "body": [ + "", + " export function wixMediaSiteMedia_onFolderCreated(event) {", + " const eventId = event.metadata.id", + " const entityId = event.entity._id;", + " }", + "", + " " + ] + } + ] + }, + "isVeloEvent": true, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "onFolderDeleted", + "params": [ + { + "name": "event", + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FolderFolderDeleted", + "displayName": "FolderDeleted" + } + ], + "doc": "", + "required": false + } + ], + "requiredFields": [], + "ret": { + "type": [ + { + "nativeType": "void" + } + ], + "doc": null + }, + "docs": { + "summary": "Triggered when a folder is deleted.", + "description": [ + "If the `movedToTrash` property in the event object is `true`, the folder was moved to the Media Manager's trash bin. If the `movedToTrash` property in the event object is `false`, the folder was permanently deleted." + ], + "examples": [ + { + "title": "onFolderDeleted example", + "body": [ + "", + " export function wixMediaSiteMedia_onFolderDeleted(event) {", + " const eventId = event.metadata.id", + " const entityId = event.entity._id;", + " }", + "", + " " + ] + } + ] + }, + "isVeloEvent": true, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "onFolderUpdated", + "params": [ + { + "name": "event", + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FolderFolderUpdated", + "displayName": "FolderUpdated" + } + ], + "doc": "", + "required": false + } + ], + "requiredFields": [], + "ret": { + "type": [ + { + "nativeType": "void" + } + ], + "doc": null + }, + "docs": { + "summary": "Triggered when a folder is updated, including when a folder is moved to a different parent folder.", + "description": [], + "examples": [ + { + "title": "onFolderUpdated example", + "body": [ + "", + " export function wixMediaSiteMedia_onFolderUpdated(event) {", + " const eventId = event.metadata.id", + " const entityId = event.entity._id;", + " }", + "", + " " + ] + } + ] + }, + "isVeloEvent": true, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + } + ], + "messages": [ + { + "name": "mediaSiteMediaV1FileDescriptorArchive", + "members": [ + { + "name": "_id", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "WixMedia ID." + }, + { + "name": "filename", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Archive filename." + }, + { + "name": "sizeInBytes", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Archive size in bytes." + }, + { + "name": "url", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Archive URL." + }, + { + "name": "urlExpirationDate", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "Archive URL expiration date (when relevant)." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FileDescriptorAudioV2", + "members": [ + { + "name": "_id", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "WixMedia ID." + }, + { + "name": "assets", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Audio formats available for this file." + }, + { + "name": "bitrate", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Audio bitrate. Optional." + }, + { + "name": "duration", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Audio duration in seconds. Optional." + }, + { + "name": "format", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Audio format. Optional." + }, + { + "name": "sizeInBytes", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Audio size in bytes. Optional." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FileDescriptorBackendEventMetadata", + "members": [ + { + "name": "entityId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the entity associated with the event." + }, + { + "name": "eventTime", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Event timestamp." + }, + { + "name": "id", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Event ID." + }, + { + "name": "triggeredByAnonymizeRequest", + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the event was triggered as a result of a privacy regulation application (for example, [GDPR](https://support.wix.com/en/article/gdpr-frequently-asked-questions)). For advanced users." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FileDescriptorBulkDeleteFilesRequest", + "members": [ + { + "name": "fileIds", + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "IDs of the files to move to the Media Manager's trash bin." + }, + { + "name": "permanent", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the specified files are permanently deleted.
\nDefault: `false`" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FileDescriptorBulkDeleteFilesResponse", + "members": [], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FileDescriptorBulkImportFilesRequest", + "members": [ + { + "name": "importFileRequests", + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FileDescriptorImportFileRequest", + "displayName": "ImportFileRequest" + } + ] + } + } + ], + "doc": "Information about the files to import." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FileDescriptorBulkImportFilesResponse", + "members": [ + { + "name": "files", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FileDescriptorFileDescriptor", + "displayName": "FileDescriptor" + } + ] + } + } + ], + "doc": "Information about the imported files." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FileDescriptorBulkRestoreFilesFromTrashBinRequest", + "members": [ + { + "name": "fileIds", + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "IDs of the files to restore from the Media Manager's trash bin." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FileDescriptorBulkRestoreFilesFromTrashBinResponse", + "members": [], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FileDescriptorColor", + "members": [ + { + "name": "hex", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "HEX color." + }, + { + "name": "rgb", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FileDescriptorColorRgb", + "displayName": "ColorRGB" + } + ], + "doc": "RGB color." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FileDescriptorColorRgb", + "members": [ + { + "name": "b", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Blue channel." + }, + { + "name": "g", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Green channel." + }, + { + "name": "r", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Red channel." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FileDescriptorColors", + "members": [ + { + "name": "palette", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FileDescriptorColor", + "displayName": "Color" + } + ] + } + } + ], + "doc": "Color palette of the image." + }, + { + "name": "prominent", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FileDescriptorColor", + "displayName": "Color" + } + ], + "doc": "Main color of the image." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FileDescriptorCursorPaging", + "members": [ + { + "name": "cursor", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Pointer to the next or previous page in the list of results.\n\nYou can get the relevant cursor token\nfrom the `pagingMetadata` object in the previous call's response.\nNot relevant for the first request.\n" + }, + { + "name": "limit", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Number of items to load." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FileDescriptorCursors", + "members": [ + { + "name": "next", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Cursor pointing to next page in the list of results." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FileDescriptorDownloadUrl", + "members": [ + { + "name": "assetKey", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Key for downloading a different asset (format and quality) of a file.\nDefault: `src`, key representing the original file's format and quality." + }, + { + "name": "url", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The file download URL." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FileDescriptorExternalInfo", + "members": [ + { + "name": "externalIds", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "External IDs to pass in the [File Ready](https://dev.wix.com/api/rest/media/media-manager/files/file-ready-domain-event) or [File Failed](https://dev.wix.com/api/rest/media/media-manager/files/file-failed-domain-event) events." + }, + { + "name": "origin", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "External information to pass in the [File Ready](https://dev.wix.com/api/rest/media/media-manager/files/file-ready-domain-event) or [File Failed](https://dev.wix.com/api/rest/media/media-manager/files/file-failed-domain-event) events." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FileDescriptorFaceRecognition", + "members": [ + { + "name": "confidence", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "The accuracy percentage of the face recognition. The likelihood that a face is detected." + }, + { + "name": "height", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Face pixel height." + }, + { + "name": "width", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Face pixel width." + }, + { + "name": "x", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Top left x pixel coordinate of the face." + }, + { + "name": "y", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Top left y pixel coordinate of the face." + } + ], + "docs": { + "description": [ + "Using this object you can crop images while centering on faces\n------------------------\n| |\n| x,y |\n| *-------- |\n| | . . | |\n| | | | height |\n| | \\ / | |\n| | | |\n| --------- |\n| width |\n| |\n|______________________|" + ] + } + }, + { + "name": "mediaSiteMediaV1FileDescriptorFileDescriptor", + "members": [ + { + "name": "_createdDate", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "Date and time the file was created." + }, + { + "name": "_id", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "File ID. Generated when a file is uploaded to the Media Manager." + }, + { + "name": "_updatedDate", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "Date and time the file was updated." + }, + { + "name": "displayName", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "File name as it appears in the Media Manager." + }, + { + "name": "hash", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "File hash." + }, + { + "name": "labels", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Labels assigned to media files that describe and categorize them. Provided by the user, or generated by [Google Vision API](https://cloud.google.com/vision/docs/drag-and-drop) for images." + }, + { + "name": "media", + "readOnly": true, + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FileDescriptorFileMedia", + "displayName": "FileMedia" + } + ], + "doc": "Media file content." + }, + { + "name": "mediaType", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Media file type." + }, + { + "name": "operationStatus", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Status of the file that was uploaded.\n* `FAILED`: The file failed to upload, for example, during media post processing.\n* `READY`: The file uploaded, finished all processing, and is ready for use.\n* `PENDING`: The file is processing and the URLs are not yet available. This response is returned when importing a file." + }, + { + "name": "parentFolderId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the file's parent folder." + }, + { + "name": "private", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the link to the uploaded file is public or private. Private links require a token." + }, + { + "name": "siteId", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The Wix site ID where the media file is stored." + }, + { + "name": "sizeInBytes", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Size of the uploaded file in bytes." + }, + { + "name": "sourceUrl", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "URL where the file was uploaded from." + }, + { + "name": "state", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "State of the file." + }, + { + "name": "thumbnailUrl", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "URL of the file's thumbnail." + }, + { + "name": "url", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Static URL of the file." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FileDescriptorFileDescriptorDeleted", + "members": [ + { + "name": "metadata", + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FileDescriptorBackendEventMetadata", + "displayName": "BackendEventMetadata" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FileDescriptorFileDescriptorFileFailed", + "members": [ + { + "name": "data", + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FileDescriptorFileFailed", + "displayName": "FileFailed" + } + ], + "doc": "" + }, + { + "name": "metadata", + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FileDescriptorBackendEventMetadata", + "displayName": "BackendEventMetadata" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FileDescriptorFileDescriptorFileReady", + "members": [ + { + "name": "data", + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FileDescriptorFileReady", + "displayName": "FileReady" + } + ], + "doc": "" + }, + { + "name": "metadata", + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FileDescriptorBackendEventMetadata", + "displayName": "BackendEventMetadata" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FileDescriptorFileDescriptorUpdated", + "members": [ + { + "name": "entity", + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FileDescriptorFileDescriptor", + "displayName": "FileDescriptor" + } + ], + "doc": "" + }, + { + "name": "metadata", + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FileDescriptorBackendEventMetadata", + "displayName": "BackendEventMetadata" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FileDescriptorFileFailed", + "members": [ + { + "name": "externalInfo", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FileDescriptorExternalInfo", + "displayName": "ExternalInfo" + } + ], + "doc": "External information passed in the file import or upload." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FileDescriptorFileMedia", + "members": [ + { + "name": "archive", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FileDescriptorArchive", + "displayName": "Archive" + } + ], + "doc": "Information about the archive." + }, + { + "name": "audio", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FileDescriptorAudioV2", + "displayName": "AudioV2" + } + ], + "doc": "Information about the audio." + }, + { + "name": "document", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Information about the document." + }, + { + "name": "image", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FileDescriptorImageMedia", + "displayName": "ImageMedia" + } + ], + "doc": "Information about the image." + }, + { + "name": "model3d", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FileDescriptorModel3D", + "displayName": "Model3D" + } + ], + "doc": "Information about the 3D Model." + }, + { + "name": "vector", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FileDescriptorImageMedia", + "displayName": "ImageMedia" + } + ], + "doc": "Information about the vector." + }, + { + "name": "video", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Information about the video." + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfFileMediaMediaOneOf", + "members": [ + "archive", + "audio", + "document", + "image", + "model3d", + "vector", + "video" + ] + } + ] + }, + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FileDescriptorFileMediaMediaOneOf", + "members": [ + { + "name": "archive", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FileDescriptorArchive", + "displayName": "Archive" + } + ], + "doc": "Information about the archive." + }, + { + "name": "audio", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FileDescriptorAudioV2", + "displayName": "AudioV2" + } + ], + "doc": "Information about the audio." + }, + { + "name": "document", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Information about the document." + }, + { + "name": "image", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FileDescriptorImageMedia", + "displayName": "ImageMedia" + } + ], + "doc": "Information about the image." + }, + { + "name": "model3d", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FileDescriptorModel3D", + "displayName": "Model3D" + } + ], + "doc": "Information about the 3D Model." + }, + { + "name": "vector", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FileDescriptorImageMedia", + "displayName": "ImageMedia" + } + ], + "doc": "Information about the vector." + }, + { + "name": "video", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Information about the video." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FileDescriptorFileReady", + "members": [ + { + "name": "externalInfo", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FileDescriptorExternalInfo", + "displayName": "ExternalInfo" + } + ], + "doc": "External information passed in the file import or upload." + }, + { + "name": "file", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FileDescriptorFileDescriptor", + "displayName": "FileDescriptor" + } + ], + "doc": "File entity that is ready with full information" + }, + { + "name": "triggeredByUndelete", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "The File was restored from the trash-bin" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FileDescriptorGenerateFileDownloadUrlRequest", + "members": [ + { + "name": "assetKeys", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Keys for downloading different assets (format and quality) of a file.\nDefault: `src`, key representing the original file's format and quality." + }, + { + "name": "downloadFileName", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Temporary file name used to identify the file type. For example, a file named \"myFile.jpeg\" identifies as an \"image/jpeg\" file type.
\n\n**Note:** The name that appears in the Media Manager is taken from the `filename` query parameter in the upload request.\n" + }, + { + "name": "expirationInMinutes", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "The time that it takes in minutes for the download URL to expire.
\nDefault: `600`.
\nLimit: `525600` (1 year)." + }, + { + "name": "expirationRedirectUrl", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The redirect URL for when the temporary download URL with a token expires.
\nDefault: A 403 Forbidden response page." + }, + { + "name": "fileId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "File ID." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FileDescriptorGenerateFileDownloadUrlResponse", + "members": [ + { + "name": "downloadUrls", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FileDescriptorDownloadUrl", + "displayName": "DownloadUrl" + } + ] + } + } + ], + "doc": "URL for downloading a specific file in the Media Manager." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FileDescriptorGenerateFileResumableUploadUrlRequest", + "members": [ + { + "name": "fileName", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Temporary file name used to identify the file type. For example, a file named \"myFile.jpeg\" identifies as an \"image/jpeg\" file type.\n
**Note:** The name that appears in the Media Manager is taken from the `filename` query parameter in the upload request." + }, + { + "name": "labels", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Labels assigned to media files that describe and categorize them. Provided by the user, or generated by [Google Vision API](https://cloud.google.com/vision/docs/drag-and-drop) for images." + }, + { + "name": "mimeType", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "File mime type." + }, + { + "name": "parentFolderId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the file's parent folder.
\nDefault: `media-root`." + }, + { + "name": "private", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the link to the imported file is public or private. See `Private Files` in terminology." + }, + { + "name": "sizeInBytes", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "File size in bytes." + }, + { + "name": "uploadProtocol", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The upload protocol to use for implementing the resumable upload." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FileDescriptorGenerateFileResumableUploadUrlResponse", + "members": [ + { + "name": "uploadProtocol", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The upload protocol to use for implementing the resumable upload." + }, + { + "name": "uploadToken", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Single-use upload token." + }, + { + "name": "uploadUrl", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The URL for uploading a file to the Media Manager." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FileDescriptorGenerateFileUploadUrlRequest", + "members": [ + { + "name": "externalInfo", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FileDescriptorExternalInfo", + "displayName": "ExternalInfo" + } + ], + "doc": "A place to map an external entity to an uploaded file in the Wix Media Manager." + }, + { + "name": "fileName", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Temporary file name used to identify the file type. For example, a file named \"myFile.jpeg\" identifies as an \"image/jpeg\" file type.\n
**Note:** The name that appears in the Media Manager is taken from the `filename` query parameter in the upload request." + }, + { + "name": "labels", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Labels assigned to media files that describe and categorize them. Provided by the user, or generated by [Google Vision API](https://cloud.google.com/vision/docs/drag-and-drop) for images." + }, + { + "name": "mimeType", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "File mime type." + }, + { + "name": "parentFolderId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the file's parent folder.
\nDefault: `media-root`." + }, + { + "name": "private", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the link to the uploaded file is public or private. See `Private Files` in terminology." + }, + { + "name": "sizeInBytes", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "File size in bytes." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FileDescriptorGenerateFileUploadUrlResponse", + "members": [ + { + "name": "uploadUrl", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The URL for uploading a file to the Media Manager." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FileDescriptorGenerateFilesDownloadUrlRequest", + "members": [ + { + "name": "fileIds", + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "IDs of the files to download." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FileDescriptorGenerateFilesDownloadUrlResponse", + "members": [ + { + "name": "downloadUrl", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "URL for downloading the compressed file containing the specified files in the Media Manager." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FileDescriptorGenerateVideoStreamingUrlRequest", + "members": [ + { + "name": "fileId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "File ID." + }, + { + "name": "format", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Video stream format." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FileDescriptorGenerateVideoStreamingUrlResponse", + "members": [ + { + "name": "downloadUrl", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FileDescriptorDownloadUrl", + "displayName": "DownloadUrl" + } + ], + "doc": "URL for streaming a specific file in the Media Manager." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FileDescriptorGenerateWebSocketTokenRequest", + "members": [], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FileDescriptorGenerateWebSocketTokenResponse", + "members": [ + { + "name": "token", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The web socket token for the identity in the request" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FileDescriptorGetFileDescriptorRequest", + "members": [ + { + "name": "fileId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "File ID." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FileDescriptorGetFileDescriptorResponse", + "members": [ + { + "name": "file", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FileDescriptorFileDescriptor", + "displayName": "FileDescriptor" + } + ], + "doc": "Information about the file." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FileDescriptorGetFileDescriptorsRequest", + "members": [ + { + "name": "fileIds", + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "File IDs." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FileDescriptorGetFileDescriptorsResponse", + "members": [ + { + "name": "files", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FileDescriptorFileDescriptor", + "displayName": "FileDescriptor" + } + ] + } + } + ], + "doc": "Information about the requested files." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FileDescriptorImageMedia", + "members": [ + { + "name": "colors", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FileDescriptorColors", + "displayName": "Colors" + } + ], + "doc": "Image colors." + }, + { + "name": "faces", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FileDescriptorFaceRecognition", + "displayName": "FaceRecognition" + } + ] + } + } + ], + "doc": "Information about faces in the image. Use to crop images without cutting out faces." + }, + { + "name": "image", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Image data." + }, + { + "name": "previewImage", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Information about the image preview.\nYou can use this to display a preview for private images." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FileDescriptorImportFileRequest", + "members": [ + { + "name": "displayName", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "File name that appears in the Media Manager." + }, + { + "name": "externalInfo", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FileDescriptorExternalInfo", + "displayName": "ExternalInfo" + } + ], + "doc": "A place to map an external entity to an imported file in the Wix Media Manager." + }, + { + "name": "labels", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Labels assigned to media files that describe and categorize them. Provided by the user, or generated by [Google Vision API](https://cloud.google.com/vision/docs/drag-and-drop) for images." + }, + { + "name": "mediaType", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Media type of the file to import." + }, + { + "name": "mimeType", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "File mime type." + }, + { + "name": "parentFolderId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the file's parent folder.
\nDefault: `media-root`." + }, + { + "name": "private", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the link to the imported file is public or private." + }, + { + "name": "url", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Publicly accessible external file URL." + }, + { + "name": "urlHeaders", + "optional": true, + "type": [ + { + "nativeType": "Object" + } + ], + "doc": "Optional headers that should be sent with the external URL." + }, + { + "name": "urlParams", + "optional": true, + "type": [ + { + "nativeType": "Object" + } + ], + "doc": "Optional parameters that should be sent with the external URL." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FileDescriptorImportFileResponse", + "members": [ + { + "name": "file", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FileDescriptorFileDescriptor", + "displayName": "FileDescriptor" + } + ], + "doc": "Information about the imported file." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FileDescriptorListDeletedFilesRequest", + "members": [ + { + "name": "mediaTypes", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "File media type." + }, + { + "name": "paging", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FileDescriptorCursorPaging", + "displayName": "CursorPaging" + } + ], + "doc": "Cursor and paging information." + }, + { + "name": "parentFolderId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the file's parent folder.
\nDefault: `media-root`." + }, + { + "name": "private", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the link to the imported file is public or private." + }, + { + "name": "sort", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FileDescriptorSorting", + "displayName": "Sorting" + } + ], + "doc": "Field name and order to sort by. One of:
\n* `displayName`\n* `updatedDate`\nDefault: `updatedDate` in `desc` order." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FileDescriptorListDeletedFilesResponse", + "members": [ + { + "name": "files", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FileDescriptorFileDescriptor", + "displayName": "FileDescriptor" + } + ] + } + } + ], + "doc": "List of files in the Media Manager's trash bin." + }, + { + "name": "nextCursor", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FileDescriptorPagingMetadataV2", + "displayName": "PagingMetadataV2" + } + ], + "doc": "The next cursor if it exists." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FileDescriptorListFilesRequest", + "members": [ + { + "name": "mediaTypes", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "File media type." + }, + { + "name": "paging", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FileDescriptorCursorPaging", + "displayName": "CursorPaging" + } + ], + "doc": "Cursor and paging information." + }, + { + "name": "parentFolderId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the file's parent folder.
\nDefault:`media-root`." + }, + { + "name": "private", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the link to the imported file is public or private." + }, + { + "name": "sort", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FileDescriptorSorting", + "displayName": "Sorting" + } + ], + "doc": "Field name and order to sort by. One of:
\n* `displayName`\n* `updatedDate`\nDefault: `updatedDate` in `desc` order." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FileDescriptorListFilesResponse", + "members": [ + { + "name": "files", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FileDescriptorFileDescriptor", + "displayName": "FileDescriptor" + } + ] + } + } + ], + "doc": "List of files in the Media Manager." + }, + { + "name": "nextCursor", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FileDescriptorPagingMetadataV2", + "displayName": "PagingMetadataV2" + } + ], + "doc": "The next cursor if it exists." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FileDescriptorModel3D", + "members": [ + { + "name": "_id", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "WixMedia 3D ID." + }, + { + "name": "altText", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "3D alt text." + }, + { + "name": "filename", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "3D filename." + }, + { + "name": "sizeInBytes", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "3D size in bytes." + }, + { + "name": "thumbnail", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "3D thumbnail Image" + }, + { + "name": "url", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "3D URL." + }, + { + "name": "urlExpirationDate", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "3D URL expiration date (when relevant)." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FileDescriptorPagingMetadataV2", + "members": [ + { + "name": "cursors", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FileDescriptorCursors", + "displayName": "Cursors" + } + ], + "doc": "Cursors to navigate through the result pages using `next` and `prev`. Returned if cursor paging is used." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FileDescriptorSearchFilesRequest", + "members": [ + { + "name": "mediaTypes", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "File media type." + }, + { + "name": "paging", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FileDescriptorCursorPaging", + "displayName": "CursorPaging" + } + ], + "doc": "Cursor and paging information." + }, + { + "name": "private", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the link to the imported file is public or private." + }, + { + "name": "rootFolder", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "A root folder in the media manager to search in.
\nDefault: `MEDIA_ROOT`." + }, + { + "name": "search", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Term to search for. Possible terms include the value of a file's\n`displayName`, `mimeType`, and `label`.
\nFor example, if a file's label is cat, the search term is 'cat'." + }, + { + "name": "sort", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FileDescriptorSorting", + "displayName": "Sorting" + } + ], + "doc": "Field name and order to sort by. One of:
\n* `displayName`\n* `updatedDate`\nDefault: `updatedDate` in `desc` order." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FileDescriptorSearchFilesResponse", + "members": [ + { + "name": "files", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FileDescriptorFileDescriptor", + "displayName": "FileDescriptor" + } + ] + } + } + ], + "doc": "Files matching the query." + }, + { + "name": "nextCursor", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FileDescriptorPagingMetadataV2", + "displayName": "PagingMetadataV2" + } + ], + "doc": "The next cursor if it exists." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FileDescriptorSorting", + "members": [ + { + "name": "fieldName", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Name of the field to sort by." + }, + { + "name": "order", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Sort order." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FileDescriptorUpdateFileDescriptorRequest", + "members": [ + { + "name": "file", + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FileDescriptorFileDescriptor", + "displayName": "FileDescriptor" + } + ], + "doc": "The file to update." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FileDescriptorUpdateFileDescriptorResponse", + "members": [ + { + "name": "file", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FileDescriptorFileDescriptor", + "displayName": "FileDescriptor" + } + ], + "doc": "Information about the updated file." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FileDescriptorUpdateFileRequest", + "members": [ + { + "name": "displayName", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "File name that appears in the Media Manager." + }, + { + "name": "fileId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the file to update." + }, + { + "name": "labels", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Labels assigned to media files that describe and categorize them. Provided by the user, or generated by [Google Vision API](https://cloud.google.com/vision/docs/drag-and-drop) for images." + }, + { + "name": "parentFolderId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the file's parent folder.
\nDefault: `media-root`." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FileDescriptorUpdateFileResponse", + "members": [ + { + "name": "file", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FileDescriptorFileDescriptor", + "displayName": "FileDescriptor" + } + ], + "doc": "Information about the updated file." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FileDescriptorVideoResolution", + "members": [ + { + "name": "format", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Video format\nPossible values: ['144p.mp4' '144p.webm' '240p.mp4' '240p.webm' '360p.mp4' '360p.webm' '480p.mp4' '480p.webm'\n'720p.mp4' '720p.webm' '1080p.mp4' '1080p.webm' ]" + }, + { + "name": "height", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Video height." + }, + { + "name": "url", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Video URL." + }, + { + "name": "width", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Video width." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FolderBackendEventMetadata", + "members": [ + { + "name": "entityId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the entity associated with the event." + }, + { + "name": "eventTime", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Event timestamp." + }, + { + "name": "id", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Event ID." + }, + { + "name": "triggeredByAnonymizeRequest", + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the event was triggered as a result of a privacy regulation application (for example, [GDPR](https://support.wix.com/en/article/gdpr-frequently-asked-questions)). For advanced users." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FolderBulkDeleteFoldersRequest", + "members": [ + { + "name": "folderIds", + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "IDs of the folders to move to the Media Manager's trash bin." + }, + { + "name": "permanent", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the specified folders are permanently deleted.
\nDefault: `false`" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FolderBulkDeleteFoldersResponse", + "members": [], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FolderBulkRestoreFoldersFromTrashBinRequest", + "members": [ + { + "name": "folderIds", + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "IDs of the folders to restore from the Media Manager's trash bin." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FolderBulkRestoreFoldersFromTrashBinResponse", + "members": [], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FolderCreateFolderRequest", + "members": [ + { + "name": "displayName", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Folder name that appears in the Media Manager." + }, + { + "name": "parentFolderId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the folder's parent folder." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FolderCreateFolderResponse", + "members": [ + { + "name": "folder", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FolderFolder", + "displayName": "Folder" + } + ], + "doc": "Information about the newly created folder." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FolderCursorPaging", + "members": [ + { + "name": "cursor", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Pointer to the next or previous page in the list of results.\n\nYou can get the relevant cursor token\nfrom the `pagingMetadata` object in the previous call's response.\nNot relevant for the first request.\n" + }, + { + "name": "limit", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Number of items to load." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FolderCursors", + "members": [ + { + "name": "next", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Cursor pointing to next page in the list of results." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FolderFolder", + "members": [ + { + "name": "_createdDate", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "Date the folder was created." + }, + { + "name": "_id", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Folder ID. Generated when a folder is created in the Media Manager." + }, + { + "name": "_updatedDate", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "Date the folder was updated." + }, + { + "name": "displayName", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Folder name as it appears in the Media Manager." + }, + { + "name": "parentFolderId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the folder's parent folder.
Default: `media-root` folder." + }, + { + "name": "state", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "State of the folder." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FolderFolderCreated", + "members": [ + { + "name": "entity", + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FolderFolder", + "displayName": "Folder" + } + ], + "doc": "" + }, + { + "name": "metadata", + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FolderBackendEventMetadata", + "displayName": "BackendEventMetadata" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FolderFolderDeleted", + "members": [ + { + "name": "metadata", + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FolderBackendEventMetadata", + "displayName": "BackendEventMetadata" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FolderFolderUpdated", + "members": [ + { + "name": "entity", + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FolderFolder", + "displayName": "Folder" + } + ], + "doc": "" + }, + { + "name": "metadata", + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FolderBackendEventMetadata", + "displayName": "BackendEventMetadata" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FolderGenerateFolderDownloadUrlRequest", + "members": [ + { + "name": "folderId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Folder ID." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FolderGenerateFolderDownloadUrlResponse", + "members": [ + { + "name": "downloadUrl", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "URL for downloading a specific folder in the Media Manager." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FolderGetFolderRequest", + "members": [ + { + "name": "folderId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Folder ID." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FolderGetFolderResponse", + "members": [ + { + "name": "folder", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FolderFolder", + "displayName": "Folder" + } + ], + "doc": "Information about the folder." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FolderListDeletedFoldersRequest", + "members": [ + { + "name": "paging", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FolderCursorPaging", + "displayName": "CursorPaging" + } + ], + "doc": "Cursor and paging information." + }, + { + "name": "parentFolderId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the folder's parent folder." + }, + { + "name": "sort", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FolderSorting", + "displayName": "Sorting" + } + ], + "doc": "Field name and order to sort by. One of:
\n* `displayName`\n* `updatedDate`\nDefault: `updatedDate` in `desc` order." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FolderListDeletedFoldersResponse", + "members": [ + { + "name": "folders", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FolderFolder", + "displayName": "Folder" + } + ] + } + } + ], + "doc": "List of folders in the Media Manager's trash bin." + }, + { + "name": "nextCursor", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FolderPagingMetadataV2", + "displayName": "PagingMetadataV2" + } + ], + "doc": "The next cursor if it exists." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FolderListFoldersRequest", + "members": [ + { + "name": "paging", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FolderCursorPaging", + "displayName": "CursorPaging" + } + ], + "doc": "Cursor and paging information." + }, + { + "name": "parentFolderId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the folder's parent folder.\n
Default: `media-root` folder." + }, + { + "name": "sort", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FolderSorting", + "displayName": "Sorting" + } + ], + "doc": "Field name and order to sort by. One of:
\n* `displayName`\n* `updatedDate`\nDefault: `updatedDate` in `desc` order." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FolderListFoldersResponse", + "members": [ + { + "name": "folders", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FolderFolder", + "displayName": "Folder" + } + ] + } + } + ], + "doc": "Information about the folders in the requested folder." + }, + { + "name": "nextCursor", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FolderPagingMetadataV2", + "displayName": "PagingMetadataV2" + } + ], + "doc": "The next cursor if it exists." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FolderPagingMetadataV2", + "members": [ + { + "name": "cursors", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FolderCursors", + "displayName": "Cursors" + } + ], + "doc": "Cursors to navigate through the result pages using `next` and `prev`. Returned if cursor paging is used." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FolderSearchFoldersRequest", + "members": [ + { + "name": "paging", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FolderCursorPaging", + "displayName": "CursorPaging" + } + ], + "doc": "Cursor and paging information." + }, + { + "name": "rootFolder", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "A root folder in the media manager to search in.
\nDefault: `MEDIA_ROOT`." + }, + { + "name": "search", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Term to search for, such as the value of a folder's `displayName`.
\nFor example, if a folder's `displayName` is 'my-videos-folder', the search term is 'my-videos-folder'." + }, + { + "name": "sort", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FolderSorting", + "displayName": "Sorting" + } + ], + "doc": "Field name and order to sort by. One of:
\n* `displayName`\n* `updatedDate`\nDefault: `updatedDate` in `desc` order." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FolderSearchFoldersResponse", + "members": [ + { + "name": "folders", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FolderFolder", + "displayName": "Folder" + } + ] + } + } + ], + "doc": "Information about the folders in the requested folder." + }, + { + "name": "nextCursor", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FolderPagingMetadataV2", + "displayName": "PagingMetadataV2" + } + ], + "doc": "The next cursor if it exists." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FolderSorting", + "members": [ + { + "name": "fieldName", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Name of the field to sort by." + }, + { + "name": "order", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Sort order." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FolderUpdateFolderRequest", + "members": [ + { + "name": "displayName", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Folder name that appears in the Media Manager." + }, + { + "name": "folder", + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FolderFolder", + "displayName": "Folder" + } + ], + "doc": "The folder to update." + }, + { + "name": "folderId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the folder to update." + }, + { + "name": "parentFolderId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the folder's parent folder." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "mediaSiteMediaV1FolderUpdateFolderResponse", + "members": [ + { + "name": "folder", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Events.mediaSiteMediaV1FolderFolder", + "displayName": "Folder" + } + ], + "doc": "Information about the updated folder." + } + ], + "docs": { + "description": [ + "" + ] + } + } + ] +} diff --git a/wix-media-v2/wix-media-v2/Events/guides/events-intro.md b/wix-media-v2/wix-media-v2/Events/guides/events-intro.md new file mode 100644 index 0000000000..e1d364c5bf --- /dev/null +++ b/wix-media-v2/wix-media-v2/Events/guides/events-intro.md @@ -0,0 +1,41 @@ +--- +title: Introduction +--- + +# Introduction + +  + +
+ Developer Preview +
+ APIs in Developer Preview are subject to change and are not intended for use in production.
Send us your suggestions for improving this API. Your feedback is valuable to us.
+
+ +  + + +Wix Media events are triggered on your site's backend when certain events occur in your media manager. +You can write event handlers that react to these events. Event handler functions receive data +that corresponds to the event that was fired. Use event handlers to create custom responses +to media events. + +To add a Wix Media event handler, add an **events.js** file to the **Backend** section of your site +if one does not already exists. All event handler functions for your site are defined in this +file. + + +> **Notes:** +> - This module is [universal](/api-overview/api-versions#universal-modules). Functions in this module can run on both the backend and frontend, unless specified otherwise. +> - Backend events don't work when previewing your site. + + +Event handler functions are defined using the following pattern: +```javascript +export function _(event) {} +``` + +For example, an event handler that handles the creation of a category looks like: +```javascript +export function wixMedia_onFileDescriptorUpdated(event) {} +``` \ No newline at end of file diff --git a/wix-media-v2/wix-media-v2/Files.service.json b/wix-media-v2/wix-media-v2/Files.service.json new file mode 100644 index 0000000000..3706f1559a --- /dev/null +++ b/wix-media-v2/wix-media-v2/Files.service.json @@ -0,0 +1,4259 @@ +{ + "name": "Files", + "memberOf": "wix-media-v2", + "mixes": [], + "callbacks": [], + "extra": {}, + "clientId": "wix-media.v2-file_descriptor", + "docs": {}, + "relatedGuides": [], + "properties": [], + "operations": [ + { + "name": "bulkDeleteFiles", + "params": [ + { + "name": "fileIds", + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "IDs of the files to move to the Media Manager's trash bin.", + "required": true + }, + { + "name": "options", + "type": [ + { + "referenceType": "wix-media-v2.Files.BulkDeleteFilesOptions" + } + ], + "doc": "Options to use when deleting files.\n", + "required": false + } + ], + "requiredFields": [ + "fileIds" + ], + "ret": { + "type": [ + { + "complexType": { + "nativeType": "Promise", + "typeParams": [ + { + "nativeType": "void" + } + ] + } + } + ], + "doc": null + }, + "docs": { + "summary": "Deletes the specified files from the Media Manager.", + "description": [ + "The deleted files are moved to the Media Manager's trash bin (`TRASH-ROOT` folder) unless permanently deleted. To permanently delete files, pass the `permanent` parameter with the value `true`. Permanently deleting files isn't reversible, so make sure that these files aren't being used in a site or in any other way as the files will no longer be accessible.\n\nNote the following:\n* The specified files can be from different folders.\n* Moving multiple files at once is an asynchronous action, and may take time for the changes to appear in the Media Manager.\n* Attempting to delete files that are already in the trash bin doesn't result in an error.\n* If your site contains deleted media files, the deleted media files still appear on your site as the files are still in the Media Manager (in the trash bin).\n* You can use the [Bulk Restore Files From Trash Bin](https://www.wix.com/velo/reference/wix-media-v2/files/bulkrestorefilesfromtrashbin) endpoint to restore files from the Media Manager's trash bin.\n\n\n>**Note:** This function is restricted and only runs if you elevate permissions using the [`wix-auth.elevate()`](https://www.wix.com/velo/reference/wix-auth/elevate) function." + ], + "examples": [ + { + "title": "bulkDeleteFiles example", + "body": [ + "import { files } from 'wix-media.v2';", + " ", + " async function bulkDeleteFiles(fileIds, options) {", + " try {", + " const result = await files.bulkDeleteFiles(fileIds, options);", + "", + " return result;", + " } catch (error) {", + " console.error(error);", + " // Handle the error", + " }", + " }", + " " + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "bulkImportFiles", + "params": [ + { + "name": "importFileRequests", + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-media-v2.Files.ImportFileRequest" + } + ] + } + } + ], + "doc": "Information about the files to import.", + "required": true + } + ], + "requiredFields": [ + "importFileRequests", + "importFileRequests.url" + ], + "ret": { + "type": [ + { + "complexType": { + "nativeType": "Promise", + "typeParams": [ + { + "referenceType": "wix-media-v2.Files.BulkImportFilesResponse" + } + ] + } + } + ], + "doc": null + }, + "docs": { + "summary": "Imports a bulk of files to the Media Manager using external urls.", + "description": [ + "Returns information about the imported files. Use the `parentFolderId` parameter to specify in which folder you want each file to be imported to.\nIf no folder is specified, the file is imported to the `media-root` folder.\n\nTo import files, you need to provide one of the following:\n1. Pass each file's [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) in the `mimeType` parameter of the request. For example, `'image/png'`.\n2. Pass each file's name and extension. For example, `'my-image.png'`.\n3. If you don't know a file's extension or MIME type, pass its [media type](https://support.wix.com/en/article/wix-media-supported-media-file-types-and-file-sizes) in the `mediaType` parameter of the request. For example, `'IMAGE'`. Note that this option only works if the server hosting the media allows a 'HEAD' request.\n\n>**Notes:**\n> - This function is restricted and only runs if you elevate permissions using the [`wix-auth.elevate()`](https://www.wix.com/velo/reference/wix-auth/elevate) function.\n> - The `media` property isn't returned in the `files` response object." + ], + "examples": [ + { + "title": "bulkImportFiles example", + "body": [ + "import { files } from 'wix-media.v2';", + " ", + " async function bulkImportFiles(importFileRequests) {", + " try {", + " const result = await files.bulkImportFiles(importFileRequests);", + "", + " return result;", + " } catch (error) {", + " console.error(error);", + " // Handle the error", + " }", + " }", + " " + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "bulkRestoreFilesFromTrashBin", + "params": [ + { + "name": "fileIds", + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "IDs of the files to restore from the Media Manager's trash bin.", + "required": true + } + ], + "requiredFields": [ + "fileIds" + ], + "ret": { + "type": [ + { + "complexType": { + "nativeType": "Promise", + "typeParams": [ + { + "nativeType": "void" + } + ] + } + } + ], + "doc": null + }, + "docs": { + "summary": "Restores the specified files from the Media Manager's trash bin, and moves them to their original locations in the Media Manager.\n>**Note:** This function is restricted and only runs if you elevate permissions using the [`wix-auth.elevate()`](https://www.wix.com/velo/reference/wix-auth/elevate) function.", + "description": [], + "examples": [ + { + "title": "bulkRestoreFilesFromTrashBin example", + "body": [ + "import { files } from 'wix-media.v2';", + " ", + " async function bulkRestoreFilesFromTrashBin(fileIds) {", + " try {", + " const result = await files.bulkRestoreFilesFromTrashBin(fileIds);", + "", + " return result;", + " } catch (error) {", + " console.error(error);", + " // Handle the error", + " }", + " }", + " " + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "generateFileDownloadUrl", + "params": [ + { + "name": "fileId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "File ID.", + "required": true + }, + { + "name": "options", + "type": [ + { + "referenceType": "wix-media-v2.Files.GenerateFileDownloadUrlOptions" + } + ], + "doc": "Options to use when generating a file's download URL.\n", + "required": false + } + ], + "requiredFields": [ + "fileId" + ], + "ret": { + "type": [ + { + "complexType": { + "nativeType": "Promise", + "typeParams": [ + { + "referenceType": "wix-media-v2.Files.GenerateFileDownloadUrlResponse" + } + ] + } + } + ], + "doc": null + }, + "docs": { + "summary": "Generates one or more temporary URLs for downloading a specific file in the Media Manager.", + "description": [ + "To download different assets of the file, use the `assetKeys` parameter which generates a download URL for each asset.\nIf no `assetKey` is specified, it defaults to `src`, which generates one download URL in the original file's format and quality.\n\nUse this endpoint to grant external clients access to a private media file. Use the `expirationInMinutes` parameter to set the URL expiration time, and the `expirationRedirectUrl` parameter to add a redirect url when the URL expires.\n\n>**Note:** This function is restricted and only runs if you elevate permissions using the [`wix-auth.elevate()`](https://www.wix.com/velo/reference/wix-auth/elevate) function." + ], + "examples": [ + { + "title": "generateFileDownloadUrl example", + "body": [ + "import { files } from 'wix-media.v2';", + " ", + " async function generateFileDownloadUrl(fileId, options) {", + " try {", + " const result = await files.generateFileDownloadUrl(fileId, options);", + "", + " return result;", + " } catch (error) {", + " console.error(error);", + " // Handle the error", + " }", + " }", + " " + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "generateFileResumableUploadUrl", + "params": [ + { + "name": "mimeType", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "File mime type.", + "required": true + }, + { + "name": "options", + "type": [ + { + "referenceType": "wix-media-v2.Files.GenerateFileResumableUploadUrlOptions" + } + ], + "doc": "Options to use when generating a resumable upload URL.\n", + "required": false + } + ], + "requiredFields": [ + "mimeType" + ], + "ret": { + "type": [ + { + "complexType": { + "nativeType": "Promise", + "typeParams": [ + { + "referenceType": "wix-media-v2.Files.GenerateFileResumableUploadUrlResponse" + } + ] + } + } + ], + "doc": null + }, + "docs": { + "summary": "Generates a resumable upload URL to allow external clients to easily upload large files over 10MB to the Media Manager.", + "description": [ + "With the resumable upload URL, any interruptions in the upload process pauses the file upload, and resumes the file upload process after the interruption. The resumable upload URL is also helpful when network connection is poor.\n\nTo learn how external clients can use the generated upload URL in the response to upload large files to the Media Manager, see the [Resumable Upload API](https://www.wix.com/velo/reference/wix-media-v2/resumable-upload-api) article.\n\n>**Note:** This function is restricted and only runs if you elevate permissions using the [`wix-auth.elevate()`](https://www.wix.com/velo/reference/wix-auth/elevate) function." + ], + "examples": [ + { + "title": "generateFileResumableUploadUrl example", + "body": [ + "import { files } from 'wix-media.v2';", + " ", + " async function generateFileResumableUploadUrl(mimeType, options) {", + " try {", + " const result = await files.generateFileResumableUploadUrl(mimeType, options);", + "", + " return result;", + " } catch (error) {", + " console.error(error);", + " // Handle the error", + " }", + " }", + " " + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "generateFileUploadUrl", + "params": [ + { + "name": "mimeType", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "File mime type.", + "required": true + }, + { + "name": "options", + "type": [ + { + "referenceType": "wix-media-v2.Files.GenerateFileUploadUrlOptions" + } + ], + "doc": "Options to use when generating a file's upload URL.\n", + "required": false + } + ], + "requiredFields": [ + "mimeType" + ], + "ret": { + "type": [ + { + "complexType": { + "nativeType": "Promise", + "typeParams": [ + { + "referenceType": "wix-media-v2.Files.GenerateFileUploadUrlResponse" + } + ] + } + } + ], + "doc": null + }, + "docs": { + "summary": "Generates an upload URL to allow external clients to upload a file to the Media Manager.", + "description": [ + "To learn how external clients can use the generated upload URL in the response to upload a file to the Media Manager, see the [Upload API](https://www.wix.com/velo/reference/wix-media-v2/upload-api).\n> **Notes:**\n> - This function is restricted and only runs if you elevate permissions using the [`wix-auth.elevate()`](https://www.wix.com/velo/reference/wix-auth/elevate) function.\n> - Any interruption in the upload process stops the file upload. For files larger than 10MB, or when network connection is poor, use the [Generate File Resumable Upload Url](https://www.wix.com/velo/reference/wix-media-v2/files/generatefileresumableuploadurl) instead. With the resumable upload URL, any interruption in the upload process pauses the file upload, and resumes the file upload process after the interruption." + ], + "examples": [ + { + "title": "generateFileUploadUrl example", + "body": [ + "import { files } from 'wix-media.v2';", + " ", + " async function generateFileUploadUrl(mimeType, options) {", + " try {", + " const result = await files.generateFileUploadUrl(mimeType, options);", + "", + " return result;", + " } catch (error) {", + " console.error(error);", + " // Handle the error", + " }", + " }", + " " + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "generateFilesDownloadUrl", + "params": [ + { + "name": "fileIds", + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "IDs of the files to download.", + "required": true + } + ], + "requiredFields": [ + "fileIds" + ], + "ret": { + "type": [ + { + "complexType": { + "nativeType": "Promise", + "typeParams": [ + { + "referenceType": "wix-media-v2.Files.GenerateFilesDownloadUrlResponse" + } + ] + } + } + ], + "doc": null + }, + "docs": { + "summary": "Generates a URL for downloading a compressed file containing specific files in the Media Manager.", + "description": [ + "The compressed file can contain up to 1000 files.\n\n>**Note:** This function is restricted and only runs if you elevate permissions using the [`wix-auth.elevate()`](https://www.wix.com/velo/reference/wix-auth/elevate) function." + ], + "examples": [ + { + "title": "generateFilesDownloadUrl example", + "body": [ + "import { files } from 'wix-media.v2';", + " ", + " async function generateFilesDownloadUrl(fileIds) {", + " try {", + " const result = await files.generateFilesDownloadUrl(fileIds);", + "", + " return result;", + " } catch (error) {", + " console.error(error);", + " // Handle the error", + " }", + " }", + " " + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "generateVideoStreamingUrl", + "params": [ + { + "name": "fileId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "File ID.", + "required": true + }, + { + "name": "options", + "type": [ + { + "referenceType": "wix-media-v2.Files.GenerateVideoStreamingUrlOptions" + } + ], + "doc": "Options to use when generating a video file's streaming URL.\n", + "required": false + } + ], + "requiredFields": [ + "fileId" + ], + "ret": { + "type": [ + { + "complexType": { + "nativeType": "Promise", + "typeParams": [ + { + "referenceType": "wix-media-v2.Files.GenerateVideoStreamingUrlResponse" + } + ] + } + } + ], + "doc": null + }, + "docs": { + "summary": "Generates a URL for streaming a specific video file in the Media Manager.", + "description": [ + "To stream different assets of the file, use the `assetKeys` parameter which generates a video streaming URL for each asset. If no assetKey is specified, it defaults to `src`, which generates one video streaming URL in the original file's format and quality.\n\n>**Note:** This function is restricted and only runs if you elevate permissions using the [`wix-auth.elevate()`](https://www.wix.com/velo/reference/wix-auth/elevate) function." + ], + "examples": [ + { + "title": "generateVideoStreamingUrl example", + "body": [ + "import { files } from 'wix-media.v2';", + " ", + " async function generateVideoStreamingUrl(fileId, options) {", + " try {", + " const result = await files.generateVideoStreamingUrl(fileId, options);", + "", + " return result;", + " } catch (error) {", + " console.error(error);", + " // Handle the error", + " }", + " }", + " " + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "getFileDescriptor", + "params": [ + { + "name": "fileId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "File ID.", + "required": true + } + ], + "requiredFields": [ + "fileId" + ], + "ret": { + "type": [ + { + "complexType": { + "nativeType": "Promise", + "typeParams": [ + { + "referenceType": "wix-media-v2.Files.GetFileDescriptorResponse" + } + ] + } + } + ], + "doc": null + }, + "docs": { + "summary": "Gets information about a specific file in the Media Manager.\n>**Note:** This function is restricted and only runs if you elevate permissions using the [`wix-auth.elevate()`](https://www.wix.com/velo/reference/wix-auth/elevate) function.", + "description": [], + "examples": [ + { + "title": "getFileDescriptor example", + "body": [ + "import { files } from 'wix-media.v2';", + " ", + " async function getFileDescriptor(fileId) {", + " try {", + " const result = await files.getFileDescriptor(fileId);", + "", + " return result;", + " } catch (error) {", + " console.error(error);", + " // Handle the error", + " }", + " }", + " " + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "getFileDescriptors", + "params": [ + { + "name": "fileIds", + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "File IDs.", + "required": true + } + ], + "requiredFields": [ + "fileIds" + ], + "ret": { + "type": [ + { + "complexType": { + "nativeType": "Promise", + "typeParams": [ + { + "referenceType": "wix-media-v2.Files.GetFileDescriptorsResponse" + } + ] + } + } + ], + "doc": null + }, + "docs": { + "summary": "Gets information about the specified files in the Media Manager.\n>**Note:** This function is restricted and only runs if you elevate permissions using the [`wix-auth.elevate()`](https://www.wix.com/velo/reference/wix-auth/elevate) function.", + "description": [], + "examples": [ + { + "title": "getFileDescriptors example", + "body": [ + "import { files } from 'wix-media.v2';", + " ", + " async function getFileDescriptors(fileIds) {", + " try {", + " const result = await files.getFileDescriptors(fileIds);", + "", + " return result;", + " } catch (error) {", + " console.error(error);", + " // Handle the error", + " }", + " }", + " " + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "importFile", + "params": [ + { + "name": "url", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Publicly accessible external file URL.", + "required": true + }, + { + "name": "options", + "type": [ + { + "referenceType": "wix-media-v2.Files.ImportFileOptions" + } + ], + "doc": "Options to use when importing a single file.\n", + "required": false + } + ], + "requiredFields": [ + "url" + ], + "ret": { + "type": [ + { + "complexType": { + "nativeType": "Promise", + "typeParams": [ + { + "referenceType": "wix-media-v2.Files.ImportFileResponse" + } + ] + } + } + ], + "doc": null + }, + "docs": { + "summary": "Imports a file to the Media Manager using an external url.", + "description": [ + "This function returns information about the imported file.\nUse the `parentFolderId` parameter to specify which folder you want the file to be imported to.\nIf no folder is specified, the file is imported to the `media-root` folder.\n\nTo import a file, you need to provide one of the following:\n1. Pass the file's [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) in the `mimeType` parameter of the request. For example, `'image/png'`.\n2. Pass the file's name and extension. For example, `'my-image.png'`.\n3. If you don't know the file's extension or MIME type, pass its [media type](https://support.wix.com/en/article/wix-media-supported-media-file-types-and-file-sizes) in the `mediaType` parameter of the request. For example, `'IMAGE'`. Note that this option only works if the server hosting the media allows a 'HEAD' request.\n\n>**Notes:**\n> - This function is restricted and only runs if you elevate permissions using the [`wix-auth.elevate()`](https://www.wix.com/velo/reference/wix-auth/elevate) function.\n> - The `media` property isn't returned in the `files` response object.\n" + ], + "examples": [ + { + "title": "importFile example", + "body": [ + "import { files } from 'wix-media.v2';", + " ", + " async function importFile(url, options) {", + " try {", + " const result = await files.importFile(url, options);", + "", + " return result;", + " } catch (error) {", + " console.error(error);", + " // Handle the error", + " }", + " }", + " " + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "listDeletedFiles", + "params": [ + { + "name": "options", + "type": [ + { + "referenceType": "wix-media-v2.Files.ListDeletedFilesOptions" + } + ], + "doc": "Options to use when listing deleted files from the trash bin.\n", + "required": false + } + ], + "requiredFields": [], + "ret": { + "type": [ + { + "complexType": { + "nativeType": "Promise", + "typeParams": [ + { + "referenceType": "wix-media-v2.Files.ListDeletedFilesResponse" + } + ] + } + } + ], + "doc": null + }, + "docs": { + "summary": "Retrieves a list of files in the Media Manager's trash bin.\n>**Notes:**\n> - This function is restricted and only runs if you elevate permissions using the [`wix-auth.elevate()`](https://www.wix.com/velo/reference/wix-auth/elevate) function.\n> - The Media Manager's trash bin (`TRASH-ROOT` folder) only contains temporarily deleted files, not permanently deleted files.", + "description": [], + "examples": [ + { + "title": "listDeletedFiles example", + "body": [ + "import { files } from 'wix-media.v2';", + " ", + " async function listDeletedFiles(options) {", + " try {", + " const result = await files.listDeletedFiles(options);", + "", + " return result;", + " } catch (error) {", + " console.error(error);", + " // Handle the error", + " }", + " }", + " " + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "listFiles", + "params": [ + { + "name": "options", + "type": [ + { + "referenceType": "wix-media-v2.Files.ListFilesOptions" + } + ], + "doc": "Options to use when listing media files.\n", + "required": false + } + ], + "requiredFields": [], + "ret": { + "type": [ + { + "complexType": { + "nativeType": "Promise", + "typeParams": [ + { + "referenceType": "wix-media-v2.Files.ListFilesResponse" + } + ] + } + } + ], + "doc": null + }, + "docs": { + "summary": "Retrieves a list of files in the Media Manager.", + "description": [ + "To retrieve a list of files within a specific folder in the Media Manager, pass the folder's ID in the `parentFolderId` parameter. If no folder is specified, the endpoint retrieves the list of files in the root folder of the Media Manager.\n\n>**Note:** This function is restricted and only runs if you elevate permissions using the [`wix-auth.elevate()`](https://www.wix.com/velo/reference/wix-auth/elevate) function." + ], + "examples": [ + { + "title": "listFiles example", + "body": [ + "import { files } from 'wix-media.v2';", + " ", + " async function listFiles(options) {", + " try {", + " const result = await files.listFiles(options);", + "", + " return result;", + " } catch (error) {", + " console.error(error);", + " // Handle the error", + " }", + " }", + " " + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "searchFiles", + "params": [ + { + "name": "options", + "type": [ + { + "referenceType": "wix-media-v2.Files.SearchFilesOptions" + } + ], + "doc": "Options to specify which folders to search.\n", + "required": false + } + ], + "requiredFields": [], + "ret": { + "type": [ + { + "complexType": { + "nativeType": "Promise", + "typeParams": [ + { + "referenceType": "wix-media-v2.Files.SearchFilesResponse" + } + ] + } + } + ], + "doc": null + }, + "docs": { + "summary": "Searches all folders in the Media Manager and returns a list of files that match the terms specified in the optional parameters.", + "description": [ + "If no parameters are specified, the endpoint returns all files in the `MEDIA_ROOT` folder.\n\n>**Note:** This function is restricted and only runs if you elevate permissions using the [`wix-auth.elevate()`](https://www.wix.com/velo/reference/wix-auth/elevate) function." + ], + "examples": [ + { + "title": "searchFiles example", + "body": [ + "import { files } from 'wix-media.v2';", + " ", + " async function searchFiles(options) {", + " try {", + " const result = await files.searchFiles(options);", + "", + " return result;", + " } catch (error) {", + " console.error(error);", + " // Handle the error", + " }", + " }", + " " + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "updateFileDescriptor", + "params": [ + { + "name": "_id", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "File ID. Generated when a file is uploaded to the Media Manager.", + "required": true + }, + { + "name": "file", + "type": [ + { + "referenceType": "wix-media-v2.Files.UpdateFileDescriptorFile" + } + ], + "doc": "", + "required": true + } + ], + "requiredFields": [ + "_id", + "file" + ], + "ret": { + "type": [ + { + "complexType": { + "nativeType": "Promise", + "typeParams": [ + { + "referenceType": "wix-media-v2.Files.UpdateFileDescriptorResponse" + } + ] + } + } + ], + "doc": null + }, + "docs": { + "summary": "Updates a file.
", + "description": [ + "You can use the `parentFolderId` parameter to move a file from its current folder to a different folder." + ], + "examples": [ + { + "title": "updateFileDescriptor example", + "body": [ + "import { files } from 'wix-media.v2';", + " ", + " async function updateFileDescriptor(id, file, options) {", + " try {", + " const result = await files.updateFileDescriptor(id, file, options);", + "", + " return result;", + " } catch (error) {", + " console.error(error);", + " // Handle the error", + " }", + " }", + " " + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + } + ], + "messages": [ + { + "name": "Archive", + "members": [ + { + "name": "_id", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "WixMedia ID." + }, + { + "name": "filename", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Archive filename." + }, + { + "name": "sizeInBytes", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Archive size in bytes." + }, + { + "name": "url", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Archive URL." + }, + { + "name": "urlExpirationDate", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "Archive URL expiration date (when relevant)." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "AudioV2", + "members": [ + { + "name": "_id", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "WixMedia ID." + }, + { + "name": "assets", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Audio formats available for this file." + }, + { + "name": "bitrate", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Audio bitrate. Optional." + }, + { + "name": "duration", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Audio duration in seconds. Optional." + }, + { + "name": "format", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Audio format. Optional." + }, + { + "name": "sizeInBytes", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Audio size in bytes. Optional." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "BulkDeleteFilesOptions", + "members": [ + { + "name": "permanent", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the specified files are permanently deleted.
\nDefault: `false`" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "BulkDeleteFilesRequest", + "members": [ + { + "name": "fileIds", + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "IDs of the files to move to the Media Manager's trash bin." + }, + { + "name": "permanent", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the specified files are permanently deleted.
\nDefault: `false`" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "BulkDeleteFilesResponse", + "members": [], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "BulkImportFilesRequest", + "members": [ + { + "name": "importFileRequests", + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-media-v2.Files.ImportFileRequest" + } + ] + } + } + ], + "doc": "Information about the files to import." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "BulkImportFilesResponse", + "members": [ + { + "name": "files", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-media-v2.Files.FileDescriptor" + } + ] + } + } + ], + "doc": "Information about the imported files." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "BulkRestoreFilesFromTrashBinRequest", + "members": [ + { + "name": "fileIds", + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "IDs of the files to restore from the Media Manager's trash bin." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "BulkRestoreFilesFromTrashBinResponse", + "members": [], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Color", + "members": [ + { + "name": "hex", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "HEX color." + }, + { + "name": "rgb", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Files.ColorRGB" + } + ], + "doc": "RGB color." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ColorRGB", + "members": [ + { + "name": "b", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Blue channel." + }, + { + "name": "g", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Green channel." + }, + { + "name": "r", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Red channel." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Colors", + "members": [ + { + "name": "palette", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-media-v2.Files.Color" + } + ] + } + } + ], + "doc": "Color palette of the image." + }, + { + "name": "prominent", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Files.Color" + } + ], + "doc": "Main color of the image." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "CursorPaging", + "members": [ + { + "name": "cursor", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Pointer to the next or previous page in the list of results.\n\nYou can get the relevant cursor token\nfrom the `pagingMetadata` object in the previous call's response.\nNot relevant for the first request.\n" + }, + { + "name": "limit", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Number of items to load." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Cursors", + "members": [ + { + "name": "next", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Cursor pointing to next page in the list of results." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "DownloadUrl", + "members": [ + { + "name": "assetKey", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Key for downloading a different asset (format and quality) of a file.\nDefault: `src`, key representing the original file's format and quality." + }, + { + "name": "url", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The file download URL." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ExternalInfo", + "members": [ + { + "name": "externalIds", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "External IDs to pass in the [File Ready](https://dev.wix.com/api/rest/media/media-manager/files/file-ready-domain-event) or [File Failed](https://dev.wix.com/api/rest/media/media-manager/files/file-failed-domain-event) events." + }, + { + "name": "origin", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "External information to pass in the [File Ready](https://dev.wix.com/api/rest/media/media-manager/files/file-ready-domain-event) or [File Failed](https://dev.wix.com/api/rest/media/media-manager/files/file-failed-domain-event) events." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "FaceRecognition", + "members": [ + { + "name": "confidence", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "The accuracy percentage of the face recognition. The likelihood that a face is detected." + }, + { + "name": "height", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Face pixel height." + }, + { + "name": "width", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Face pixel width." + }, + { + "name": "x", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Top left x pixel coordinate of the face." + }, + { + "name": "y", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Top left y pixel coordinate of the face." + } + ], + "docs": { + "description": [ + "Using this object you can crop images while centering on faces\n------------------------\n| |\n| x,y |\n| *-------- |\n| | . . | |\n| | | | height |\n| | \\ / | |\n| | | |\n| --------- |\n| width |\n| |\n|______________________|" + ] + } + }, + { + "name": "FileDescriptor", + "members": [ + { + "name": "_createdDate", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "Date and time the file was created." + }, + { + "name": "_id", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "File ID. Generated when a file is uploaded to the Media Manager." + }, + { + "name": "_updatedDate", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "Date and time the file was updated." + }, + { + "name": "displayName", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "File name as it appears in the Media Manager." + }, + { + "name": "hash", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "File hash." + }, + { + "name": "labels", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Labels assigned to media files that describe and categorize them. Provided by the user, or generated by [Google Vision API](https://cloud.google.com/vision/docs/drag-and-drop) for images." + }, + { + "name": "media", + "readOnly": true, + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Files.FileMedia" + } + ], + "doc": "Media file content." + }, + { + "name": "mediaType", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Media file type.\n\nSupported values: `\"IMAGE\"`, `\"VIDEO\"`, `\"AUDIO\"`, `\"DOCUMENT\"`, `\"VECTOR\"`, `\"ARCHIVE\"`, `\"MODEL3D\"`" + }, + { + "name": "operationStatus", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Status of the file that was uploaded.\n\nSupported values: `\"FAILED\"`, `\"READY\"`, `\"PENDING\"`\n* `FAILED`: The file failed to upload, for example, during media post processing.\n* `READY`: The file uploaded, finished all processing, and is ready for use.\n* `PENDING`: The file is processing and the URLs are not yet available. This response is returned when importing a file." + }, + { + "name": "parentFolderId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the file's parent folder." + }, + { + "name": "private", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the link to the uploaded file is public or private. Private links require a token." + }, + { + "name": "siteId", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The Wix site ID where the media file is stored." + }, + { + "name": "sizeInBytes", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Size of the uploaded file in bytes." + }, + { + "name": "sourceUrl", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "URL where the file was uploaded from." + }, + { + "name": "state", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "State of the file.\n\nSupported values: `\"OK\"`, `\"DELETED\"`" + }, + { + "name": "thumbnailUrl", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "URL of the file's thumbnail." + }, + { + "name": "url", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Static URL of the file." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "FileFailed", + "members": [ + { + "name": "externalInfo", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Files.ExternalInfo" + } + ], + "doc": "External information passed in the file import or upload." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "FileMedia", + "members": [ + { + "name": "archive", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Files.Archive" + } + ], + "doc": "Information about the archive." + }, + { + "name": "audio", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Files.AudioV2" + } + ], + "doc": "Information about the audio." + }, + { + "name": "document", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Information about the document." + }, + { + "name": "image", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Files.ImageMedia" + } + ], + "doc": "Information about the image." + }, + { + "name": "model3d", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Files.Model3D" + } + ], + "doc": "Information about the 3D Model." + }, + { + "name": "vector", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Files.ImageMedia" + } + ], + "doc": "Information about the vector." + }, + { + "name": "video", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Information about the video." + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfFileMediaMediaOneOf", + "members": [ + "archive", + "audio", + "document", + "image", + "model3d", + "vector", + "video" + ] + } + ] + }, + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "FileMediaMediaOneOf", + "members": [ + { + "name": "archive", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Files.Archive" + } + ], + "doc": "Information about the archive." + }, + { + "name": "audio", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Files.AudioV2" + } + ], + "doc": "Information about the audio." + }, + { + "name": "document", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Information about the document." + }, + { + "name": "image", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Files.ImageMedia" + } + ], + "doc": "Information about the image." + }, + { + "name": "model3d", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Files.Model3D" + } + ], + "doc": "Information about the 3D Model." + }, + { + "name": "vector", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Files.ImageMedia" + } + ], + "doc": "Information about the vector." + }, + { + "name": "video", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Information about the video." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "FileReady", + "members": [ + { + "name": "externalInfo", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Files.ExternalInfo" + } + ], + "doc": "External information passed in the file import or upload." + }, + { + "name": "file", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Files.FileDescriptor" + } + ], + "doc": "File entity that is ready with full information" + }, + { + "name": "triggeredByUndelete", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "The File was restored from the trash-bin" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "GenerateFileDownloadUrlOptions", + "members": [ + { + "name": "assetKeys", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Keys for downloading different assets (format and quality) of a file.\nDefault: `src`, key representing the original file's format and quality." + }, + { + "name": "downloadFileName", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Temporary file name used to identify the file type. For example, a file named \"myFile.jpeg\" identifies as an \"image/jpeg\" file type.
\n\n**Note:** The name that appears in the Media Manager is taken from the `filename` query parameter in the upload request.\n" + }, + { + "name": "expirationInMinutes", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "The time that it takes in minutes for the download URL to expire.
\nDefault: `600`.
\nLimit: `525600` (1 year)." + }, + { + "name": "expirationRedirectUrl", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The redirect URL for when the temporary download URL with a token expires.
\nDefault: A 403 Forbidden response page." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "GenerateFileDownloadUrlRequest", + "members": [ + { + "name": "assetKeys", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Keys for downloading different assets (format and quality) of a file.\nDefault: `src`, key representing the original file's format and quality." + }, + { + "name": "downloadFileName", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Temporary file name used to identify the file type. For example, a file named \"myFile.jpeg\" identifies as an \"image/jpeg\" file type.
\n\n**Note:** The name that appears in the Media Manager is taken from the `filename` query parameter in the upload request.\n" + }, + { + "name": "expirationInMinutes", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "The time that it takes in minutes for the download URL to expire.
\nDefault: `600`.
\nLimit: `525600` (1 year)." + }, + { + "name": "expirationRedirectUrl", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The redirect URL for when the temporary download URL with a token expires.
\nDefault: A 403 Forbidden response page." + }, + { + "name": "fileId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "File ID." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "GenerateFileDownloadUrlResponse", + "members": [ + { + "name": "downloadUrls", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-media-v2.Files.DownloadUrl" + } + ] + } + } + ], + "doc": "URL for downloading a specific file in the Media Manager." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "GenerateFileResumableUploadUrlOptions", + "members": [ + { + "name": "fileName", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Temporary file name used to identify the file type. For example, a file named \"myFile.jpeg\" identifies as an \"image/jpeg\" file type.\n
**Note:** The name that appears in the Media Manager is taken from the `filename` query parameter in the upload request." + }, + { + "name": "labels", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Labels assigned to media files that describe and categorize them. Provided by the user, or generated by [Google Vision API](https://cloud.google.com/vision/docs/drag-and-drop) for images." + }, + { + "name": "parentFolderId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the file's parent folder.
\nDefault: `media-root`." + }, + { + "name": "private", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the link to the imported file is public or private. See `Private Files` in terminology." + }, + { + "name": "sizeInBytes", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "File size in bytes." + }, + { + "name": "uploadProtocol", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The upload protocol to use for implementing the resumable upload.\n\nSupported values: `\"TUS\"`\n" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "GenerateFileResumableUploadUrlRequest", + "members": [ + { + "name": "fileName", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Temporary file name used to identify the file type. For example, a file named \"myFile.jpeg\" identifies as an \"image/jpeg\" file type.\n
**Note:** The name that appears in the Media Manager is taken from the `filename` query parameter in the upload request." + }, + { + "name": "labels", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Labels assigned to media files that describe and categorize them. Provided by the user, or generated by [Google Vision API](https://cloud.google.com/vision/docs/drag-and-drop) for images." + }, + { + "name": "mimeType", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "File mime type." + }, + { + "name": "parentFolderId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the file's parent folder.
\nDefault: `media-root`." + }, + { + "name": "private", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the link to the imported file is public or private. See `Private Files` in terminology." + }, + { + "name": "sizeInBytes", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "File size in bytes." + }, + { + "name": "uploadProtocol", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The upload protocol to use for implementing the resumable upload." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "GenerateFileResumableUploadUrlResponse", + "members": [ + { + "name": "uploadProtocol", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The upload protocol to use for implementing the resumable upload.\n\nSupported values: `\"TUS\"`\n" + }, + { + "name": "uploadToken", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Single-use upload token." + }, + { + "name": "uploadUrl", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The URL for uploading a file to the Media Manager." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "GenerateFileUploadUrlOptions", + "members": [ + { + "name": "externalInfo", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Files.ExternalInfo" + } + ], + "doc": "A place to map an external entity to an uploaded file in the Wix Media Manager." + }, + { + "name": "fileName", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Temporary file name used to identify the file type. For example, a file named \"myFile.jpeg\" identifies as an \"image/jpeg\" file type.\n
**Note:** The name that appears in the Media Manager is taken from the `filename` query parameter in the upload request." + }, + { + "name": "labels", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Labels assigned to media files that describe and categorize them. Provided by the user, or generated by [Google Vision API](https://cloud.google.com/vision/docs/drag-and-drop) for images." + }, + { + "name": "parentFolderId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the file's parent folder.
\nDefault: `media-root`." + }, + { + "name": "private", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the link to the uploaded file is public or private. See `Private Files` in terminology." + }, + { + "name": "sizeInBytes", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "File size in bytes." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "GenerateFileUploadUrlRequest", + "members": [ + { + "name": "externalInfo", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Files.ExternalInfo" + } + ], + "doc": "A place to map an external entity to an uploaded file in the Wix Media Manager." + }, + { + "name": "fileName", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Temporary file name used to identify the file type. For example, a file named \"myFile.jpeg\" identifies as an \"image/jpeg\" file type.\n
**Note:** The name that appears in the Media Manager is taken from the `filename` query parameter in the upload request." + }, + { + "name": "labels", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Labels assigned to media files that describe and categorize them. Provided by the user, or generated by [Google Vision API](https://cloud.google.com/vision/docs/drag-and-drop) for images." + }, + { + "name": "mimeType", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "File mime type." + }, + { + "name": "parentFolderId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the file's parent folder.
\nDefault: `media-root`." + }, + { + "name": "private", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the link to the uploaded file is public or private. See `Private Files` in terminology." + }, + { + "name": "sizeInBytes", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "File size in bytes." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "GenerateFileUploadUrlResponse", + "members": [ + { + "name": "uploadUrl", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The URL for uploading a file to the Media Manager." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "GenerateFilesDownloadUrlRequest", + "members": [ + { + "name": "fileIds", + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "IDs of the files to download." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "GenerateFilesDownloadUrlResponse", + "members": [ + { + "name": "downloadUrl", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "URL for downloading the compressed file containing the specified files in the Media Manager." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "GenerateVideoStreamingUrlOptions", + "members": [ + { + "name": "format", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Video stream format.\n\nSupported values: `\"UNKNOWN\"`, `\"HLS\"`, `\"DASH\"`\n\n\n" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "GenerateVideoStreamingUrlRequest", + "members": [ + { + "name": "fileId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "File ID." + }, + { + "name": "format", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Video stream format." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "GenerateVideoStreamingUrlResponse", + "members": [ + { + "name": "downloadUrl", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Files.DownloadUrl" + } + ], + "doc": "URL for streaming a specific file in the Media Manager." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "GenerateWebSocketTokenRequest", + "members": [], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "GenerateWebSocketTokenResponse", + "members": [ + { + "name": "token", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The web socket token for the identity in the request" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "GetFileDescriptorRequest", + "members": [ + { + "name": "fileId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "File ID." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "GetFileDescriptorResponse", + "members": [ + { + "name": "file", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Files.FileDescriptor" + } + ], + "doc": "Information about the file." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "GetFileDescriptorsRequest", + "members": [ + { + "name": "fileIds", + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "File IDs." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "GetFileDescriptorsResponse", + "members": [ + { + "name": "files", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-media-v2.Files.FileDescriptor" + } + ] + } + } + ], + "doc": "Information about the requested files." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ImageMedia", + "members": [ + { + "name": "colors", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Files.Colors" + } + ], + "doc": "Image colors." + }, + { + "name": "faces", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-media-v2.Files.FaceRecognition" + } + ] + } + } + ], + "doc": "Information about faces in the image. Use to crop images without cutting out faces." + }, + { + "name": "image", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Image data." + }, + { + "name": "previewImage", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Information about the image preview.\nYou can use this to display a preview for private images." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ImportFileOptions", + "members": [ + { + "name": "displayName", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "File name that appears in the Media Manager." + }, + { + "name": "externalInfo", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Files.ExternalInfo" + } + ], + "doc": "A place to map an external entity to an imported file in the Wix Media Manager." + }, + { + "name": "labels", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Labels assigned to media files that describe and categorize them. Provided by the user, or generated by [Google Vision API](https://cloud.google.com/vision/docs/drag-and-drop) for images." + }, + { + "name": "mediaType", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Media type of the file to import.\n\nSupported values: `\"IMAGE\"`, `\"VIDEO\"`, `\"AUDIO\"`, `\"DOCUMENT\"`, `\"VECTOR\"`, `\"ARCHIVE\"`, `\"MODEL3D\"`\n" + }, + { + "name": "mimeType", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "File mime type." + }, + { + "name": "parentFolderId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the file's parent folder.
\nDefault: `media-root`." + }, + { + "name": "private", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the link to the imported file is public or private." + }, + { + "name": "urlHeaders", + "optional": true, + "type": [ + { + "nativeType": "Object" + } + ], + "doc": "Optional headers that should be sent with the external URL." + }, + { + "name": "urlParams", + "optional": true, + "type": [ + { + "nativeType": "Object" + } + ], + "doc": "Optional parameters that should be sent with the external URL." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ImportFileRequest", + "members": [ + { + "name": "displayName", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "File name that appears in the Media Manager." + }, + { + "name": "externalInfo", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Files.ExternalInfo" + } + ], + "doc": "A place to map an external entity to an imported file in the Wix Media Manager." + }, + { + "name": "labels", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Labels assigned to media files that describe and categorize them. Provided by the user, or generated by [Google Vision API](https://cloud.google.com/vision/docs/drag-and-drop) for images." + }, + { + "name": "mediaType", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Media type of the file to import.\n\nSupported values: `\"IMAGE\"`, `\"VIDEO\"`, `\"AUDIO\"`, `\"DOCUMENT\"`, `\"VECTOR\"`, `\"ARCHIVE\"`, `\"MODEL3D\"`\n" + }, + { + "name": "mimeType", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "File mime type." + }, + { + "name": "parentFolderId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the file's parent folder.
\nDefault: `media-root`." + }, + { + "name": "private", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the link to the imported file is public or private." + }, + { + "name": "url", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Publicly accessible external file URL." + }, + { + "name": "urlHeaders", + "optional": true, + "type": [ + { + "nativeType": "Object" + } + ], + "doc": "Optional headers that should be sent with the external URL." + }, + { + "name": "urlParams", + "optional": true, + "type": [ + { + "nativeType": "Object" + } + ], + "doc": "Optional parameters that should be sent with the external URL." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ImportFileResponse", + "members": [ + { + "name": "file", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Files.FileDescriptor" + } + ], + "doc": "Information about the imported file." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ListDeletedFilesOptions", + "members": [ + { + "name": "mediaTypes", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Media file type.\n\nSupported values: `\"IMAGE\"`, `\"VIDEO\"`, `\"AUDIO\"`, `\"DOCUMENT\"`, `\"VECTOR\"`, `\"ARCHIVE\"`, `\"MODEL3D\"`\n" + }, + { + "name": "paging", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Files.CursorPaging" + } + ], + "doc": "Cursor and paging information." + }, + { + "name": "parentFolderId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the file's parent folder.
\nDefault: `media-root`." + }, + { + "name": "private", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the link to the imported file is public or private." + }, + { + "name": "sort", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Files.Sorting" + } + ], + "doc": "Field name and order to sort by. One of:
\n* `displayName`\n* `updatedDate`\nDefault: `updatedDate` in `desc` order." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ListDeletedFilesRequest", + "members": [ + { + "name": "mediaTypes", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "File media type." + }, + { + "name": "paging", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Files.CursorPaging" + } + ], + "doc": "Cursor and paging information." + }, + { + "name": "parentFolderId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the file's parent folder.
\nDefault: `media-root`." + }, + { + "name": "private", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the link to the imported file is public or private." + }, + { + "name": "sort", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Files.Sorting" + } + ], + "doc": "Field name and order to sort by. One of:
\n* `displayName`\n* `updatedDate`\nDefault: `updatedDate` in `desc` order." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ListDeletedFilesResponse", + "members": [ + { + "name": "files", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-media-v2.Files.FileDescriptor" + } + ] + } + } + ], + "doc": "List of files in the Media Manager's trash bin." + }, + { + "name": "nextCursor", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Files.PagingMetadataV2" + } + ], + "doc": "The next cursor if it exists." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ListFilesOptions", + "members": [ + { + "name": "mediaTypes", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Media file type.\n\nSupported values: `\"IMAGE\"`, `\"VIDEO\"`, `\"AUDIO\"`, `\"DOCUMENT\"`, `\"VECTOR\"`, `\"ARCHIVE\"`, `\"MODEL3D\"`\n" + }, + { + "name": "paging", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Files.CursorPaging" + } + ], + "doc": "Cursor and paging information." + }, + { + "name": "parentFolderId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the file's parent folder.
\nDefault:`media-root`." + }, + { + "name": "private", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the link to the imported file is public or private." + }, + { + "name": "sort", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Files.Sorting" + } + ], + "doc": "Field name and order to sort by. One of:
\n* `displayName`\n* `updatedDate`\nDefault: `updatedDate` in `desc` order." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ListFilesRequest", + "members": [ + { + "name": "mediaTypes", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "File media type." + }, + { + "name": "paging", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Files.CursorPaging" + } + ], + "doc": "Cursor and paging information." + }, + { + "name": "parentFolderId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the file's parent folder.
\nDefault:`media-root`." + }, + { + "name": "private", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the link to the imported file is public or private." + }, + { + "name": "sort", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Files.Sorting" + } + ], + "doc": "Field name and order to sort by. One of:
\n* `displayName`\n* `updatedDate`\nDefault: `updatedDate` in `desc` order." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ListFilesResponse", + "members": [ + { + "name": "files", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-media-v2.Files.FileDescriptor" + } + ] + } + } + ], + "doc": "List of files in the Media Manager." + }, + { + "name": "nextCursor", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Files.PagingMetadataV2" + } + ], + "doc": "The next cursor if it exists." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Model3D", + "members": [ + { + "name": "_id", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "WixMedia 3D ID." + }, + { + "name": "altText", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "3D alt text." + }, + { + "name": "filename", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "3D filename." + }, + { + "name": "sizeInBytes", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "3D size in bytes." + }, + { + "name": "thumbnail", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "3D thumbnail Image" + }, + { + "name": "url", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "3D URL." + }, + { + "name": "urlExpirationDate", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "3D URL expiration date (when relevant)." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "PagingMetadataV2", + "members": [ + { + "name": "cursors", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Files.Cursors" + } + ], + "doc": "Cursors to navigate through the result pages using `next` and `prev`. Returned if cursor paging is used." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "SearchFilesOptions", + "members": [ + { + "name": "mediaTypes", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Media file type.\n\nSupported values: `\"IMAGE\"`, `\"VIDEO\"`, `\"AUDIO\"`, `\"DOCUMENT\"`, `\"VECTOR\"`, `\"ARCHIVE\"`, `\"MODEL3D\"`\n" + }, + { + "name": "paging", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Files.CursorPaging" + } + ], + "doc": "Cursor and paging information." + }, + { + "name": "private", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the link to the imported file is public or private." + }, + { + "name": "rootFolder", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "A root folder in the media manager to search in.
\nDefault: `MEDIA_ROOT`." + }, + { + "name": "search", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Term to search for. Possible terms include the value of a file's\n`displayName`, `mimeType`, and `label`.
\nFor example, if a file's label is cat, the search term is 'cat'." + }, + { + "name": "sort", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Files.Sorting" + } + ], + "doc": "Field name and order to sort by. One of:
\n* `displayName`\n* `updatedDate`\nDefault: `updatedDate` in `desc` order." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "SearchFilesRequest", + "members": [ + { + "name": "mediaTypes", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "File media type." + }, + { + "name": "paging", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Files.CursorPaging" + } + ], + "doc": "Cursor and paging information." + }, + { + "name": "private", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the link to the imported file is public or private." + }, + { + "name": "rootFolder", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "A root folder in the media manager to search in.
\nDefault: `MEDIA_ROOT`." + }, + { + "name": "search", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Term to search for. Possible terms include the value of a file's\n`displayName`, `mimeType`, and `label`.
\nFor example, if a file's label is cat, the search term is 'cat'." + }, + { + "name": "sort", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Files.Sorting" + } + ], + "doc": "Field name and order to sort by. One of:
\n* `displayName`\n* `updatedDate`\nDefault: `updatedDate` in `desc` order." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "SearchFilesResponse", + "members": [ + { + "name": "files", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-media-v2.Files.FileDescriptor" + } + ] + } + } + ], + "doc": "Files matching the query." + }, + { + "name": "nextCursor", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Files.PagingMetadataV2" + } + ], + "doc": "The next cursor if it exists." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Sorting", + "members": [ + { + "name": "fieldName", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Name of the field to sort by." + }, + { + "name": "order", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Sort order\n\nSupported values: `\"ASC\"`, `\"DESC\"`\n" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "UpdateFileDescriptorFile", + "members": [ + { + "name": "_createdDate", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "Date and time the file was created." + }, + { + "name": "_id", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "File ID. Generated when a file is uploaded to the Media Manager." + }, + { + "name": "_updatedDate", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "Date and time the file was updated." + }, + { + "name": "displayName", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "File name as it appears in the Media Manager." + }, + { + "name": "hash", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "File hash." + }, + { + "name": "labels", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Labels assigned to media files that describe and categorize them. Provided by the user, or generated by [Google Vision API](https://cloud.google.com/vision/docs/drag-and-drop) for images." + }, + { + "name": "media", + "readOnly": true, + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Files.FileMedia" + } + ], + "doc": "Media file content." + }, + { + "name": "mediaType", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Media file type.\n\nSupported values: `\"IMAGE\"`, `\"VIDEO\"`, `\"AUDIO\"`, `\"DOCUMENT\"`, `\"VECTOR\"`, `\"ARCHIVE\"`, `\"MODEL3D\"`" + }, + { + "name": "operationStatus", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Status of the file that was uploaded.\n\nSupported values: `\"FAILED\"`, `\"READY\"`, `\"PENDING\"`\n* `FAILED`: The file failed to upload, for example, during media post processing.\n* `READY`: The file uploaded, finished all processing, and is ready for use.\n* `PENDING`: The file is processing and the URLs are not yet available. This response is returned when importing a file." + }, + { + "name": "parentFolderId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the file's parent folder." + }, + { + "name": "private", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the link to the uploaded file is public or private. Private links require a token." + }, + { + "name": "siteId", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "The Wix site ID where the media file is stored." + }, + { + "name": "sizeInBytes", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Size of the uploaded file in bytes." + }, + { + "name": "sourceUrl", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "URL where the file was uploaded from." + }, + { + "name": "state", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "State of the file.\n\nSupported values: `\"OK\"`, `\"DELETED\"`" + }, + { + "name": "thumbnailUrl", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "URL of the file's thumbnail." + }, + { + "name": "url", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Static URL of the file." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "UpdateFileDescriptorOptions", + "members": [], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "UpdateFileDescriptorRequest", + "members": [ + { + "name": "file", + "type": [ + { + "referenceType": "wix-media-v2.Files.FileDescriptor" + } + ], + "doc": "The file to update." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "UpdateFileDescriptorResponse", + "members": [ + { + "name": "file", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Files.FileDescriptor" + } + ], + "doc": "Information about the updated file." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "UpdateFileOptions", + "members": [ + { + "name": "displayName", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "File name that appears in the Media Manager." + }, + { + "name": "labels", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Labels assigned to media files that describe and categorize them. Provided by the user, or generated by [Google Vision API](https://cloud.google.com/vision/docs/drag-and-drop) for images." + }, + { + "name": "parentFolderId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the file's parent folder.
\nDefault: `media-root`." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "UpdateFileRequest", + "members": [ + { + "name": "displayName", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "File name that appears in the Media Manager." + }, + { + "name": "fileId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the file to update." + }, + { + "name": "labels", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "Labels assigned to media files that describe and categorize them. Provided by the user, or generated by [Google Vision API](https://cloud.google.com/vision/docs/drag-and-drop) for images." + }, + { + "name": "parentFolderId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the file's parent folder.
\nDefault: `media-root`." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "UpdateFileResponse", + "members": [ + { + "name": "file", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Files.FileDescriptor" + } + ], + "doc": "Information about the updated file." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "VideoResolution", + "members": [ + { + "name": "format", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Video format\nPossible values: ['144p.mp4' '144p.webm' '240p.mp4' '240p.webm' '360p.mp4' '360p.webm' '480p.mp4' '480p.webm'\n'720p.mp4' '720p.webm' '1080p.mp4' '1080p.webm' ]" + }, + { + "name": "height", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Video height." + }, + { + "name": "url", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Video URL." + }, + { + "name": "width", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Video width." + } + ], + "docs": { + "description": [ + "" + ] + } + } + ] +} diff --git a/wix-media-v2/wix-media-v2/Files/guides/files-intro.md b/wix-media-v2/wix-media-v2/Files/guides/files-intro.md new file mode 100644 index 0000000000..a34c930619 --- /dev/null +++ b/wix-media-v2/wix-media-v2/Files/guides/files-intro.md @@ -0,0 +1,36 @@ +--- +title: Introduction +--- + +# Introduction + +  + +
+ Developer Preview +
+ APIs in Developer Preview are subject to change and are not intended for use in production.
Send us your suggestions for improving this API. Your feedback is valuable to us.
+
+ +  + + +With the Files API you can: +* Manage files in the Media Manager. +* Generate temporary URLS for: + * Streaming video files from the Media Manager. + * Downloading files from the Media Manager. + + +Learn more [about the Media Manager](https://support.wix.com/en/article/wix-media-about-the-media-manager) and how to access it. + + +> **Note:** +> This module is [universal](/api-overview/api-versions#universal-modules). Functions in this module can run on both the backend and frontend, unless specified otherwise. + + +To use the Files API, import `{ files }` from the `wix-media.v2` module: + +```javascript +import { files } from 'wix-media.v2'; +``` \ No newline at end of file diff --git a/wix-media-v2/wix-media-v2/Folders.service.json b/wix-media-v2/wix-media-v2/Folders.service.json new file mode 100644 index 0000000000..40b396aa71 --- /dev/null +++ b/wix-media-v2/wix-media-v2/Folders.service.json @@ -0,0 +1,1575 @@ +{ + "name": "Folders", + "memberOf": "wix-media-v2", + "mixes": [], + "callbacks": [], + "extra": {}, + "clientId": "wix-media.v2-folder", + "docs": {}, + "relatedGuides": [], + "properties": [], + "operations": [ + { + "name": "bulkDeleteFolders", + "params": [ + { + "name": "folderIds", + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "IDs of the folders to move to the Media Manager's trash bin.", + "required": true + }, + { + "name": "options", + "type": [ + { + "referenceType": "wix-media-v2.Folders.BulkDeleteFoldersOptions" + } + ], + "doc": "Options to use when deleting folders.\n", + "required": false + } + ], + "requiredFields": [ + "folderIds" + ], + "ret": { + "type": [ + { + "complexType": { + "nativeType": "Promise", + "typeParams": [ + { + "nativeType": "void" + } + ] + } + } + ], + "doc": null + }, + "docs": { + "summary": "Temporarily deletes the specified folders from the Media Manager.", + "description": [ + "The deleted folders are moved to the Media Manager's `trash-root` folder (trash bin) unless permanently deleted. To permanently delete folders, pass the `permanent` parameter with the value `true`. Permanently deleting folders isn't reversible, so make sure that the files in these folders aren't being used in a site or in any other way as the files will no longer be accessible.\n\nNote the following:\n* When a folder is deleted, the files in that folder are deleted.\n* The specified folders can be from different parent folders.\n* Moving multiple folders at once is an asynchronous action, and may take time for the changes to appear in the Media Manager.\n* Attempting to delete folders that are already in the trash bin doesn't result in an error.\n* If your site contains files from a deleted media folder, the files still appear on your site as the deleted folder is still in the Media Manager (in the trash bin).\n* You can use the [Bulk Restore Folders From Trash Bin](https://www.wix.com/velo/reference/wix-media-v2/folders/bulkrestorefoldersfromtrashbin) endpoint to restore folders from the Media Manager's trash bin.\n\n>**Note:** This function is restricted and only runs if you elevate permissions using the [`wix-auth.elevate()`](https://www.wix.com/velo/reference/wix-auth/elevate) function." + ], + "examples": [ + { + "title": "bulkDeleteFolders example", + "body": [ + "import { folders } from 'wix-media.v2';", + " ", + " async function bulkDeleteFolders(folderIds, options) {", + " try {", + " const result = await folders.bulkDeleteFolders(folderIds, options);", + "", + " return result;", + " } catch (error) {", + " console.error(error);", + " // Handle the error", + " }", + " }", + " " + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "bulkRestoreFoldersFromTrashBin", + "params": [ + { + "name": "folderIds", + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "IDs of the folders to restore from the Media Manager's trash bin.", + "required": true + } + ], + "requiredFields": [ + "folderIds" + ], + "ret": { + "type": [ + { + "complexType": { + "nativeType": "Promise", + "typeParams": [ + { + "nativeType": "void" + } + ] + } + } + ], + "doc": null + }, + "docs": { + "summary": "Restores the specified folders from the Media Manager's trash bin, and moves them to their original locations in the Media Manager.\n>**Note:** This function is restricted and only runs if you elevate permissions using the [`wix-auth.elevate()`](https://www.wix.com/velo/reference/wix-auth/elevate) function.", + "description": [], + "examples": [ + { + "title": "bulkRestoreFoldersFromTrashBin example", + "body": [ + "import { folders } from 'wix-media.v2';", + " ", + " async function bulkRestoreFoldersFromTrashBin(folderIds) {", + " try {", + " const result = await folders.bulkRestoreFoldersFromTrashBin(folderIds);", + "", + " return result;", + " } catch (error) {", + " console.error(error);", + " // Handle the error", + " }", + " }", + " " + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "createFolder", + "params": [ + { + "name": "displayName", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Folder name that appears in the Media Manager.", + "required": true + }, + { + "name": "options", + "type": [ + { + "referenceType": "wix-media-v2.Folders.CreateFolderOptions" + } + ], + "doc": "Options for specifying where to create a folder.\n", + "required": false + } + ], + "requiredFields": [ + "displayName" + ], + "ret": { + "type": [ + { + "complexType": { + "nativeType": "Promise", + "typeParams": [ + { + "referenceType": "wix-media-v2.Folders.CreateFolderResponse" + } + ] + } + } + ], + "doc": null + }, + "docs": { + "summary": "Creates a new folder in the Media Manager.", + "description": [ + "Use the `parentFolderId` parameter to specify in which existing folder you want the new folder to be created.\nIf no folder is specified, the new folder is created in the `media-root` folder.\n>**Note:** This function is restricted and only runs if you elevate permissions using the [`wix-auth.elevate()`](https://www.wix.com/velo/reference/wix-auth/elevate) function." + ], + "examples": [ + { + "title": "createFolder example", + "body": [ + "import { folders } from 'wix-media.v2';", + " ", + " async function createFolder(displayName, options) {", + " try {", + " const result = await folders.createFolder(displayName, options);", + "", + " return result;", + " } catch (error) {", + " console.error(error);", + " // Handle the error", + " }", + " }", + " " + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "generateFolderDownloadUrl", + "params": [ + { + "name": "folderId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Folder ID.", + "required": true + } + ], + "requiredFields": [ + "folderId" + ], + "ret": { + "type": [ + { + "complexType": { + "nativeType": "Promise", + "typeParams": [ + { + "referenceType": "wix-media-v2.Folders.GenerateFolderDownloadUrlResponse" + } + ] + } + } + ], + "doc": null + }, + "docs": { + "summary": "Generates a URL for downloading a compressed file containing a specific folder in the Media Manager.", + "description": [ + "The compressed file can contain sub-folders, and up to 1000 files.\n\n>**Note:** This function is restricted and only runs if you elevate permissions using the [`wix-auth.elevate()`](https://www.wix.com/velo/reference/wix-auth/elevate) function." + ], + "examples": [ + { + "title": "generateFolderDownloadUrl example", + "body": [ + "import { folders } from 'wix-media.v2';", + " ", + " async function generateFolderDownloadUrl(folderId) {", + " try {", + " const result = await folders.generateFolderDownloadUrl(folderId);", + "", + " return result;", + " } catch (error) {", + " console.error(error);", + " // Handle the error", + " }", + " }", + " " + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "getFolder", + "params": [ + { + "name": "folderId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Folder ID.", + "required": true + } + ], + "requiredFields": [ + "folderId" + ], + "ret": { + "type": [ + { + "complexType": { + "nativeType": "Promise", + "typeParams": [ + { + "referenceType": "wix-media-v2.Folders.GetFolderResponse" + } + ] + } + } + ], + "doc": null + }, + "docs": { + "summary": "Gets information from a specific folder in the Media Manager.\n>**Note:** This function is restricted and only runs if you elevate permissions using the [`wix-auth.elevate()`](https://www.wix.com/velo/reference/wix-auth/elevate) function.", + "description": [], + "examples": [ + { + "title": "getFolder example", + "body": [ + "import { folders } from 'wix-media.v2';", + " ", + " async function getFolder(folderId) {", + " try {", + " const result = await folders.getFolder(folderId);", + "", + " return result;", + " } catch (error) {", + " console.error(error);", + " // Handle the error", + " }", + " }", + " " + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "listDeletedFolders", + "params": [ + { + "name": "options", + "type": [ + { + "referenceType": "wix-media-v2.Folders.ListDeletedFoldersOptions" + } + ], + "doc": "Options to use when listing deleted folders from the trash bin.\n", + "required": false + } + ], + "requiredFields": [], + "ret": { + "type": [ + { + "complexType": { + "nativeType": "Promise", + "typeParams": [ + { + "referenceType": "wix-media-v2.Folders.ListDeletedFoldersResponse" + } + ] + } + } + ], + "doc": null + }, + "docs": { + "summary": "Retrieves a list of deleted folders from the trash bin.\n>**Note:** This function is restricted and only runs if you elevate permissions using the [`wix-auth.elevate()`](https://www.wix.com/velo/reference/wix-auth/elevate) function.", + "description": [], + "examples": [ + { + "title": "listDeletedFolders example", + "body": [ + "import { folders } from 'wix-media.v2';", + " ", + " async function listDeletedFolders(options) {", + " try {", + " const result = await folders.listDeletedFolders(options);", + "", + " return result;", + " } catch (error) {", + " console.error(error);", + " // Handle the error", + " }", + " }", + " " + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "listFolders", + "params": [ + { + "name": "options", + "type": [ + { + "referenceType": "wix-media-v2.Folders.ListFoldersOptions" + } + ], + "doc": "Options to use when listing folders from the Media Manager.\n", + "required": false + } + ], + "requiredFields": [], + "ret": { + "type": [ + { + "complexType": { + "nativeType": "Promise", + "typeParams": [ + { + "referenceType": "wix-media-v2.Folders.ListFoldersResponse" + } + ] + } + } + ], + "doc": null + }, + "docs": { + "summary": "Retrieves a list of folders in the Media Manager.", + "description": [ + "To retrieve a list of folders within a specific folder in the Media Manager, pass the specific folder's ID in the `parentFolderId` parameter. If no folder is specified, the endpoint retrieves a list of folders within the root folder of the Media Manager.\n\n>**Note:** This function is restricted and only runs if you elevate permissions using the [`wix-auth.elevate()`](https://www.wix.com/velo/reference/wix-auth/elevate) function." + ], + "examples": [ + { + "title": "listFolders example", + "body": [ + "import { folders } from 'wix-media.v2';", + " ", + " async function listFolders(options) {", + " try {", + " const result = await folders.listFolders(options);", + "", + " return result;", + " } catch (error) {", + " console.error(error);", + " // Handle the error", + " }", + " }", + " " + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "searchFolders", + "params": [ + { + "name": "options", + "type": [ + { + "referenceType": "wix-media-v2.Folders.SearchFoldersOptions" + } + ], + "doc": "Options specifying which folders to search.\n", + "required": false + } + ], + "requiredFields": [], + "ret": { + "type": [ + { + "complexType": { + "nativeType": "Promise", + "typeParams": [ + { + "referenceType": "wix-media-v2.Folders.SearchFoldersResponse" + } + ] + } + } + ], + "doc": null + }, + "docs": { + "summary": "Searches the Media Manager and returns a list of folders that match the terms specified in the parameters.", + "description": [ + "If no parameters are specified, the endpoint returns all folders in the `MEDIA_ROOT` folder.\n\n>**Note:** This function is restricted and only runs if you elevate permissions using the [`wix-auth.elevate()`](https://www.wix.com/velo/reference/wix-auth/elevate) function." + ], + "examples": [ + { + "title": "searchFolders example", + "body": [ + "import { folders } from 'wix-media.v2';", + " ", + " async function searchFolders(options) {", + " try {", + " const result = await folders.searchFolders(options);", + "", + " return result;", + " } catch (error) {", + " console.error(error);", + " // Handle the error", + " }", + " }", + " " + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + }, + { + "name": "updateFolder", + "params": [ + { + "name": "_id", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Folder ID. Generated when a folder is created in the Media Manager.", + "required": true + }, + { + "name": "folder", + "type": [ + { + "referenceType": "wix-media-v2.Folders.UpdateFolder" + } + ], + "doc": "Folder to update.\n", + "required": true + } + ], + "requiredFields": [ + "_id", + "folder" + ], + "ret": { + "type": [ + { + "complexType": { + "nativeType": "Promise", + "typeParams": [ + { + "referenceType": "wix-media-v2.Folders.UpdateFolderResponse" + } + ] + } + } + ], + "doc": null + }, + "docs": { + "summary": "Updates a folder.", + "description": [ + "You can use the `parentFolderId` parameter to move a folder from its current parent folder to a different parent folder.\n\n>**Note:** This function is restricted and only runs if you elevate permissions using the [`wix-auth.elevate()`](https://www.wix.com/velo/reference/wix-auth/elevate) function." + ], + "examples": [ + { + "title": "updateFolder example", + "body": [ + "import { folders } from 'wix-media.v2';", + " ", + " async function updateFolder(id, folder, options) {", + " try {", + " const result = await folders.updateFolder(id, folder, options);", + "", + " return result;", + " } catch (error) {", + " console.error(error);", + " // Handle the error", + " }", + " }", + " " + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ] + } + ], + "messages": [ + { + "name": "BulkDeleteFoldersOptions", + "members": [ + { + "name": "permanent", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the specified folders are permanently deleted.
\nDefault: `false`" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "BulkDeleteFoldersRequest", + "members": [ + { + "name": "folderIds", + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "IDs of the folders to move to the Media Manager's trash bin." + }, + { + "name": "permanent", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the specified folders are permanently deleted.
\nDefault: `false`" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "BulkDeleteFoldersResponse", + "members": [], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "BulkRestoreFoldersFromTrashBinRequest", + "members": [ + { + "name": "folderIds", + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "nativeType": "string" + } + ] + } + } + ], + "doc": "IDs of the folders to restore from the Media Manager's trash bin." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "BulkRestoreFoldersFromTrashBinResponse", + "members": [], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "CreateFolderOptions", + "members": [ + { + "name": "parentFolderId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the folder's parent folder." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "CreateFolderRequest", + "members": [ + { + "name": "displayName", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Folder name that appears in the Media Manager." + }, + { + "name": "parentFolderId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the folder's parent folder." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "CreateFolderResponse", + "members": [ + { + "name": "folder", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Folders.Folder" + } + ], + "doc": "Information about the newly created folder." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "CursorPaging", + "members": [ + { + "name": "cursor", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Pointer to the next or previous page in the list of results.\n\nYou can get the relevant cursor token\nfrom the `pagingMetadata` object in the previous call's response.\nNot relevant for the first request.\n" + }, + { + "name": "limit", + "optional": true, + "type": [ + { + "nativeType": "number" + } + ], + "doc": "Number of items to load." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Cursors", + "members": [ + { + "name": "next", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Cursor pointing to next page in the list of results." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Folder", + "members": [ + { + "name": "_createdDate", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "Date the folder was created." + }, + { + "name": "_id", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Folder ID. Generated when a folder is created in the Media Manager." + }, + { + "name": "_updatedDate", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "Date the folder was updated." + }, + { + "name": "displayName", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Folder name as it appears in the Media Manager." + }, + { + "name": "parentFolderId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the folder's parent folder.
Default: `media-root` folder." + }, + { + "name": "state", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "State of the folder.\n\nSupported values: `\"OK\"`, `\"DELETED\"`." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "GenerateFolderDownloadUrlRequest", + "members": [ + { + "name": "folderId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Folder ID." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "GenerateFolderDownloadUrlResponse", + "members": [ + { + "name": "downloadUrl", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "URL for downloading a specific folder in the Media Manager." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "GetFolderRequest", + "members": [ + { + "name": "folderId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Folder ID." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "GetFolderResponse", + "members": [ + { + "name": "folder", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Folders.Folder" + } + ], + "doc": "Information about the folder." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ListDeletedFoldersOptions", + "members": [ + { + "name": "paging", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Folders.CursorPaging" + } + ], + "doc": "Cursor and paging information." + }, + { + "name": "parentFolderId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the folder's parent folder." + }, + { + "name": "sort", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Folders.Sorting" + } + ], + "doc": "Field name and order to sort by. One of:
\n* `displayName`\n* `updatedDate`\nDefault: `updatedDate` in `desc` order." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ListDeletedFoldersRequest", + "members": [ + { + "name": "paging", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Folders.CursorPaging" + } + ], + "doc": "Cursor and paging information." + }, + { + "name": "parentFolderId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the folder's parent folder." + }, + { + "name": "sort", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Folders.Sorting" + } + ], + "doc": "Field name and order to sort by. One of:
\n* `displayName`\n* `updatedDate`\nDefault: `updatedDate` in `desc` order." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ListDeletedFoldersResponse", + "members": [ + { + "name": "folders", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-media-v2.Folders.Folder" + } + ] + } + } + ], + "doc": "List of folders in the Media Manager's trash bin." + }, + { + "name": "nextCursor", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Folders.PagingMetadataV2" + } + ], + "doc": "The next cursor if it exists." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ListFoldersOptions", + "members": [ + { + "name": "paging", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Folders.CursorPaging" + } + ], + "doc": "Cursor and paging information." + }, + { + "name": "parentFolderId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the folder's parent folder.\n
Default: `media-root` folder." + }, + { + "name": "sort", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Folders.Sorting" + } + ], + "doc": "Field name and order to sort by. One of:
\n* `displayName`\n* `updatedDate`\nDefault: `updatedDate` in `desc` order." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ListFoldersRequest", + "members": [ + { + "name": "paging", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Folders.CursorPaging" + } + ], + "doc": "Cursor and paging information." + }, + { + "name": "parentFolderId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the folder's parent folder.\n
Default: `media-root` folder." + }, + { + "name": "sort", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Folders.Sorting" + } + ], + "doc": "Field name and order to sort by. One of:
\n* `displayName`\n* `updatedDate`\nDefault: `updatedDate` in `desc` order." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "ListFoldersResponse", + "members": [ + { + "name": "folders", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-media-v2.Folders.Folder" + } + ] + } + } + ], + "doc": "Information about the folders in the requested folder." + }, + { + "name": "nextCursor", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Folders.PagingMetadataV2" + } + ], + "doc": "The next cursor if it exists." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "PagingMetadataV2", + "members": [ + { + "name": "cursors", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Folders.Cursors" + } + ], + "doc": "Cursors to navigate through the result pages using `next` and `prev`. Returned if cursor paging is used." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "SearchFoldersOptions", + "members": [ + { + "name": "paging", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Folders.CursorPaging" + } + ], + "doc": "Cursor and paging information." + }, + { + "name": "rootFolder", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "A root folder in the media manager to search in.
\nDefault: `MEDIA_ROOT`." + }, + { + "name": "search", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Term to search for, such as the value of a folder's `displayName`.\n\nFor example, if a folder's `displayName` is 'my-videos-folder', the search term is `'my-videos-folder'`.\n" + }, + { + "name": "sort", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Folders.Sorting" + } + ], + "doc": "Field name and order to sort by. One of:
\n* `displayName`\n* `updatedDate`\nDefault: `updatedDate` in `desc` order." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "SearchFoldersRequest", + "members": [ + { + "name": "paging", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Folders.CursorPaging" + } + ], + "doc": "Cursor and paging information." + }, + { + "name": "rootFolder", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "A root folder in the media manager to search in.
\nDefault: `MEDIA_ROOT`." + }, + { + "name": "search", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Term to search for, such as the value of a folder's `displayName`.
\nFor example, if a folder's `displayName` is 'my-videos-folder', the search term is 'my-videos-folder'." + }, + { + "name": "sort", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Folders.Sorting" + } + ], + "doc": "Field name and order to sort by. One of:
\n* `displayName`\n* `updatedDate`\nDefault: `updatedDate` in `desc` order." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "SearchFoldersResponse", + "members": [ + { + "name": "folders", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-media-v2.Folders.Folder" + } + ] + } + } + ], + "doc": "Information about the folders in the requested folder." + }, + { + "name": "nextCursor", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Folders.PagingMetadataV2" + } + ], + "doc": "The next cursor if it exists." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Sorting", + "members": [ + { + "name": "fieldName", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Name of the field to sort by." + }, + { + "name": "order", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Sort order.\n\nSupported values: `\"ASC\"`, `\"DESC\"`\n" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "UpdateFolder", + "members": [ + { + "name": "_createdDate", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "Date the folder was created." + }, + { + "name": "_id", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Folder ID. Generated when a folder is created in the Media Manager." + }, + { + "name": "_updatedDate", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "Date the folder was updated." + }, + { + "name": "displayName", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Folder name as it appears in the Media Manager." + }, + { + "name": "parentFolderId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the folder's parent folder.
Default: `media-root` folder." + }, + { + "name": "state", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "State of the folder.\n\nSupported values: `\"OK\"`, `\"DELETED\"`." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "UpdateFolderOptions", + "members": [], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "UpdateFolderRequest", + "members": [ + { + "name": "displayName", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Folder name that appears in the Media Manager." + }, + { + "name": "folder", + "type": [ + { + "referenceType": "wix-media-v2.Folders.Folder" + } + ], + "doc": "The folder to update." + }, + { + "name": "folderId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the folder to update." + }, + { + "name": "parentFolderId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the folder's parent folder." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "UpdateFolderResponse", + "members": [ + { + "name": "folder", + "optional": true, + "type": [ + { + "referenceType": "wix-media-v2.Folders.Folder" + } + ], + "doc": "Information about the updated folder." + } + ], + "docs": { + "description": [ + "" + ] + } + } + ] +} diff --git a/wix-media-v2/wix-media-v2/Folders/guides/folders-intro.md b/wix-media-v2/wix-media-v2/Folders/guides/folders-intro.md new file mode 100644 index 0000000000..4e23c8a898 --- /dev/null +++ b/wix-media-v2/wix-media-v2/Folders/guides/folders-intro.md @@ -0,0 +1,35 @@ +--- +title: Introduction +--- + +# Introduction + +  + +
+ Developer Preview +
+ APIs in Developer Preview are subject to change and are not intended for use in production.
Send us your suggestions for improving this API. Your feedback is valuable to us.
+
+ +  + + +With the Folders API, you can: +* Manage folders in the Media Manager. +* Generate URLS for: + * Downloading a folder from the Media Manager. + + +Learn more [about the Media Manager](https://support.wix.com/en/article/wix-media-about-the-media-manager) and how to access it. + + +> **Note:** +> This module is [universal](/api-overview/api-versions#universal-modules). Functions in this module can run on both the backend and frontend, unless specified otherwise. + + +To use the Folders API, import `{ folders }` from the `wix-media.v2` module: + +```javascript +import { folders } from 'wix-media.v2'; +``` \ No newline at end of file diff --git a/wix-media-v2/wix-media-v2/guides/media-intro.md b/wix-media-v2/wix-media-v2/guides/media-intro.md new file mode 100644 index 0000000000..91601c59ac --- /dev/null +++ b/wix-media-v2/wix-media-v2/guides/media-intro.md @@ -0,0 +1,83 @@ +--- +title: Introduction +--- + +# Introduction + +  + +
+ Developer Preview +
+ APIs in Developer Preview are subject to change and are not intended for use in production.
Send us your suggestions for improving this API. Your feedback is valuable to us.
+
+ +  + + +The Wix Media v2 API provides the functionality to manage media files and folders in a site's Media Manager. +Learn more [about Wix Media](https://support.wix.com/en/article/wix-media-about-the-media-manager). + + +> **Note:** +> This module is [universal](/api-overview/api-versions#universal-modules). Functions in this module can run on both the backend and frontend, unless specified otherwise. + + +## Before you begin + +To use the wix-media-v2 API, import `wixMedia` from the `wix-media.v2` module. + +```javascript +import wixMedia from 'wix-media.v2'; +``` + +## Terminology + +* **Generate File Download Url** vs. **Generate Files Download Url** + The Generate Files Download Url generates a permanent URL for downloading a compressed file containing specific files in the Media Manager. However, the [Generate File Download Url](https://www.wix.com/velo/reference/wix-media-v2/files/generatefiledownloadurl) generates one or more temporary URLs for downloading a specific file in the Media Manager. You can use the `expirationInMinutes` parameter to set the URL expiration time, making it more secure than the [Generate Files Download Url](https://www.wix.com/velo/reference/wix-media-v2/files/generatefilesdownloadurl). Therefore, to download private files, use the Generate File Download Url for each private file that you want to generate a download Url for, instead of the Generate Files Download Url. + +* **Generate File Resumable Upload Url** vs. **Generate File Upload Url** + The [Generate File Upload Url](https://www.wix.com/velo/reference/wix-media-v2/files/generatefileuploadurl) generates an upload URL to allow external clients to upload a file to the Media Manager. However, any interruption in the upload process stops the file upload. For files larger than 10MB, or when network connection is poor, use the [Generate File Resumable Upload Url](https://www.wix.com/velo/reference/wix-media-v2/files/generatefileresumableuploadurl) instead. With the resumable upload URL, any interruption in the upload process pauses the file upload, and resumes the file upload process after the interruption. + + **Using the generated upload and resumable upload URLs** + When you get the `uploadUrl` response from Generate File Upload Url, learn how you can use it to [upload a file to the Media Manager](https://www.wix.com/velo/reference/wix-media-v2/upload-api). When you get the `uploadUrl` response from Generate File Resumable Upload Url, learn how you can use it to [resumably upload a file to the Media Manager](https://www.wix.com/velo/reference/wix-media-v2/resumable-upload-api). + + +* **System folders:** Folders in the Media Manager's file system directory. + There are 3 types of system folders: + * **Root Folders:** Main categories of folders in the Media Manager. + * `MEDIA_ROOT`: Contains all files and folders in the Media Manager's 'Site Files' tab in the UI. + + >**Note:** The `MEDIA_ROOT` system folder is different from the `media-root` folder of the Media Manager. The `MEDIA_ROOT` system folder contains all media in all levels of the 'Site Files' tab in the UI, while the `media-root` folder of the Media Manager only contains the media in the root level of the 'Site Files' tab in the UI. + + * `TRASH_ROOT`: Contains all files and folders in the Media Manager's 'Trash' tab in the UI. + * `VISITOR_UPLOADS_ROOT`: Contains all files and folders created by site visitors or members. + + >**Note:** The `VISITOR_UPLOADS_ROOT` folder is located in the 'Site Files' tab in the UI. However, it is its own root folder and doesn't return when searching in the `MEDIA_ROOT` folder. + + * **Virtual Folders:** Special categories of folders in the Media Manager that are hidden from the UI and can't be deleted. + * `MOBILE_UPLOADS`: Contains all media uploaded using mobile devices. + * `PURCHASED_ITEMS`: Contains all media imported using a purchase flow. + + + * **Other Folders:** + * `VIDEO_MAKER`: Contains all videos created using Wix Video Maker. Located in the 'Site Files' tab in the UI. + + +* **File Assets** Wix Media files are optimized for web use. When a file is imported or uploaded to the Media Manager, it is processed and may produce several variations of the file for use in different circumstances. + For example: + * A video file can have different resolutions and formats. + * An audio file can have different formats and qualities. + * Video or audio files can have a preview asset containing only a portion of the file. + + With the [Generate File Download Url](https://www.wix.com/velo/reference/wix-media-v2/files/generatefiledownloadurl), you can use the `assetKeys` parameter to download different assets of a file. + +* **Media Types:** Supported media types include the following: + * Image + * Video + * Audio + * Document + * Vector + * Archive + * Model 3D + Learn more about [media file types and size limits](https://support.wix.com/en/article/wix-media-supported-media-file-types-and-file-sizes). \ No newline at end of file diff --git a/wix-media-v2/wix-media-v2/guides/resumable-upload-api.md b/wix-media-v2/wix-media-v2/guides/resumable-upload-api.md new file mode 100644 index 0000000000..13d14509e7 --- /dev/null +++ b/wix-media-v2/wix-media-v2/guides/resumable-upload-api.md @@ -0,0 +1,127 @@ +--- +title: Resumable Upload API +--- + +# Resumable Upload API +This article demonstrates how to use the response object from the [Generate File Resumable Upload Url](https://www.wix.com/velo/reference/wix-media-v2/files/generatefileresumableuploadurl) endpoint to upload a file to a site's Media Manager. + +>**Note:** Due to limits on the size and duration of files that you can upload, we recommend using the [`importFile()`](https://www.wix.com/velo/reference/wix-media-v2/files/importfile) function. See [Wix Media: Supported Media File Types and File Sizes](https://support.wix.com/en/article/wix-media-supported-media-file-types-and-file-sizes) for more details. + +## Authorization +This endpoint uses the `uploadToken` from the response for authorization. +No additional authorization is needed. + +## Syntax + +```html +PUT {{generateFileResumableUploadUrlResponse.uploadUrl}}/{{generateFileResumableUploadUrlResponse.uploadToken}} +``` + +## Query Params +| Name | Type | Optional | Description | +|-----------|---------|:----------:|-----------------------------------------------------------------------------------------------------------------------------------------| +| filename | string | no | File name that appears in the Media Manager. Include the file's extension in the name to prevent potential errors. | + +## Example +### Implement a Resumable Upload Client using TUS Protocol +In this example we use [tus-js-client](https://github.com/tus/tus-js-client/) to implement a resumable upload using the TUS protocol. + +### Request +```typescript +async function resumableFileUpload(resumableUploadUrlResponse: GenerateFileResumableUploadUrlResponse): Upload { + // get the file content to upload + const fileName = 'imageExample.jpg'; + const fileContent = await fs.createReadStream(path.join(__dirname, '..', 'files', fileName)); + + const mimeType = 'image/jpeg'; + + const params = { + filename: fileName, + contentType: mimeType, + token: resumableUploadUrlResponse.uploadToken + }; + + // Wrap the resumable upload session in a promise to wait for the upload to finish. + await new Promise(async (resolve, reject) => { + // Create a new TUS upload. + const upload = new tus.Upload(fileContent, { + // Use the uploadUrl from the response of the generate URL endpoint. + endpoint: resumableUploadUrlResponse.uploadUrl, + // Enable tus-js-client to automatically retry on errors. + retryDelays: [0, 3000, 5000, 10000, 20000], + // TSend parameters to the upload server to indentify the file and authentication token. + metadata: { + filename: fileName, + contentType: mimeType, + token: resumableUploadUrlResponse.uploadToken + }, + // Callback for errors that can't be fixed using retries. + onError: function (error) { + console.log('Failed because: ' + error); + reject(error); + }, + // Callback for reporting upload progress. + onProgress: function (bytesUploaded, bytesTotal) { + var percentage = (bytesUploaded / bytesTotal * 100).toFixed(2); + console.log(bytesUploaded, bytesTotal, percentage + '%'); + }, + // Callback for once the upload is completed. + onSuccess: function () { + console.log('Download %s from %s', fileName, upload.url); + resolve(true); + } + }); + + upload.start(); + }); + + // PUT request to finalize the upload. + // Note that we concatenate the URL and token of the resumable upload response. + const result = await httpClient.put( + `${resumableUploadUrlResponse.uploadUrl}/${resumableUploadUrlResponse.uploadToken}`, + {}, { params: { filename: fileName } } + ); +} +``` + + +### Response +```json +{ + "file": { + "id": "2acbb8_86485e224dd84143ba2f228777217bb7~mv2.jpeg", + "displayName": "file.jpg", + "url": "https://static.wixstatic.com/media/2acbb8_86485e224dd84143ba2f228777217bb7~mv2.jpeg", + "parentFolderId": "media-root", + "hash": "cf96f0567ed967f02bc9580ab8db86be", + "sizeInBytes": "15359", + "private": false, + "mediaType": "IMAGE", + "media": { + "image": { + "image": { + "id": "2acbb8_86485e224dd84143ba2f228777217bb7~mv2.jpeg", + "url": "https://static.wixstatic.com/media/2acbb8_86485e224dd84143ba2f228777217bb7~mv2.jpeg", + "height": 226, + "width": 370, + "filename": "file.jpg", + "sizeInBytes": "15359" + }, + "faces": [] + } + }, + "operationStatus": "READY", + "thumbnailUrl": "https://static.wixstatic.com/media/2acbb8_86485e224dd84143ba2f228777217bb7~mv2.jpeg", + "labels": [], + "createdDate": "2022-09-11T15:13:24.000Z", + "updatedDate": "2022-09-11T15:13:24.000Z" + } +} +``` + + +## Status/Error Codes +Errors from this endpoint will +The response will include a gRPC/HTTP status code. + + diff --git a/wix-media-v2/wix-media-v2/guides/upload-api.md b/wix-media-v2/wix-media-v2/guides/upload-api.md new file mode 100644 index 0000000000..dbefa15911 --- /dev/null +++ b/wix-media-v2/wix-media-v2/guides/upload-api.md @@ -0,0 +1,97 @@ +--- +title: Upload API +--- + +# Upload API +This article demonstrates how to use the `uploadUrl` response from the [Generate File Upload Url](https://www.wix.com/velo/reference/wix-media-v2/files/generatefileuploadurl) endpoint to upload a file to a site's Media Manager. + +>**Note:** Due to limits on the size and duration of files that you can upload, we recommend using the [`importFile()`](https://www.wix.com/velo/reference/wix-media-v2/files/importfile) function. See [Wix Media: Supported Media File Types and File Sizes](https://support.wix.com/en/article/wix-media-supported-media-file-types-and-file-sizes) for more details. + +## Authorization +This endpoint uses the upload token included in the url for authorization. +No additional authorization is needed. + + +## Syntax +```html +PUT {{generateFileUploadUrlResponse.uploadUrl}} +``` + +[//]: # (## Path Params) + +[//]: # (| Name | Type | Optional | Description |) + +[//]: # (|----------|--------|:--------:|-----------------------------------------------------------------------------------------------------------------------------------------|) + +[//]: # (| filename | string | no | File name that appears in the Media Manager. Include the file's extension in its name to prevent potential errors. |) + + +## Headers Params +| Name | Type | Optional | Description | +|--------------|--------|:--------:|---------------------------------------------------------------------------------| +| Content-Type | string | no | File content type. For example, "image/jpeg" for a jpg file. | + + +## Query Params +| Name | Type | Optional | Description | +|-----------|---------|:----------:|-----------------------------------------------------------------------------------------------------------------------------------------| +| filename | string | no | File name that appears in the media manager. Include the file's extension in the name to prevent potential errors. | + + +>**Note:** In case of failure due to incorrect `mimeType`, include the file's extension in the `filename` parameter and set the `Content-Type` to 'application/octet-stream'. Doing this allows Wix servers to detect the correct content type of the file. + +## Request +```typescript +async function uploadMyFile(uploadUrl, fileContent) { + const params = {'filename':'my-audo-track.mp3'}; + const headers = { + 'Content-Type': 'application/octet-stream' + } + + const uploadResponse = await httpClient.put( uploadUrl, fileContent, { headers, params } ); + return uploadResponse; +} +``` + + + +## Response +```json +{ + "file": { + "id": "2acbb8_86485e224dd84143ba2f228777217bb7~mv2.jpeg", + "displayName": "file.jpg", + "url": "https://static.wixstatic.com/media/2acbb8_86485e224dd84143ba2f228777217bb7~mv2.jpeg", + "parentFolderId": "media-root", + "hash": "cf96f0567ed967f02bc9580ab8db86be", + "sizeInBytes": "15359", + "private": false, + "mediaType": "IMAGE", + "media": { + "image": { + "image": { + "id": "2acbb8_86485e224dd84143ba2f228777217bb7~mv2.jpeg", + "url": "https://static.wixstatic.com/media/2acbb8_86485e224dd84143ba2f228777217bb7~mv2.jpeg", + "height": 226, + "width": 370, + "filename": "myfilename.jpg", + "sizeInBytes": "15359" + }, + "faces": [] + } + }, + "operationStatus": "READY", + "thumbnailUrl": "https://static.wixstatic.com/media/2acbb8_86485e224dd84143ba2f228777217bb7~mv2.jpeg", + "labels": [], + "createdDate": "2022-09-11T15:13:24.000Z", + "updatedDate": "2022-09-11T15:13:24.000Z" + } +} +``` + + +## Status/Error Codes +Errors from this endpoint will +The response will include a gRPC/HTTP status code. + + diff --git a/wix-media.v2/metadata.json b/wix-media.v2/metadata.json new file mode 100644 index 0000000000..b93bf33a10 --- /dev/null +++ b/wix-media.v2/metadata.json @@ -0,0 +1,7 @@ +{ + "name": "@wix/wix-media.v2", + "fingerprint": "7bc08e93781fd5a37f76894086424d37fa604f6bb1980d536619f1cf", + "groupId": "com.wixpress.velo-autogen", + "artifactId": "wix-media-v2-velo-autogen", + "module": "wix-media.v2" +} From 714cee0154fdad0f46eef58a2c3c973d39b8627f Mon Sep 17 00:00:00 2001 From: Wix Docs Feds Date: Mon, 24 Apr 2023 07:44:21 +0000 Subject: [PATCH 15/45] Auto commit to autodocs-wix-forum-v2 from WixDocs Server --- wix-forum-v2/wix-forum-v2/Categories.service.json | 12 ++++++------ wix-forum-v2/wix-forum-v2/Posts.service.json | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/wix-forum-v2/wix-forum-v2/Categories.service.json b/wix-forum-v2/wix-forum-v2/Categories.service.json index 4fcc46f01d..b41d38651f 100644 --- a/wix-forum-v2/wix-forum-v2/Categories.service.json +++ b/wix-forum-v2/wix-forum-v2/Categories.service.json @@ -56,7 +56,7 @@ "description": [], "examples": [ { - "title": "GetCategory example", + "title": "getCategory example", "body": [ "import { categories } from 'wix-forum.v2';", " ", @@ -68,7 +68,7 @@ " } catch (error) {", " console.error(error);", " // Handle the error", - " }", + " }", " }", " " ] @@ -129,7 +129,7 @@ "description": [], "examples": [ { - "title": "GetCategoryBySlug example", + "title": "getCategoryBySlug example", "body": [ "import { categories } from 'wix-forum.v2';", " ", @@ -141,7 +141,7 @@ " } catch (error) {", " console.error(error);", " // Handle the error", - " }", + " }", " }", " " ] @@ -192,7 +192,7 @@ ], "examples": [ { - "title": "QueryCategories example", + "title": "queryCategories example", "body": [ "import { categories } from 'wix-forum.v2';", " ", @@ -204,7 +204,7 @@ " } catch (error) {", " console.error(error);", " // Handle the error", - " }", + " }", " }", " " ] diff --git a/wix-forum-v2/wix-forum-v2/Posts.service.json b/wix-forum-v2/wix-forum-v2/Posts.service.json index 84ff49d9fd..37b346334d 100644 --- a/wix-forum-v2/wix-forum-v2/Posts.service.json +++ b/wix-forum-v2/wix-forum-v2/Posts.service.json @@ -56,7 +56,7 @@ "description": [], "examples": [ { - "title": "GetPost example", + "title": "getPost example", "body": [ "import { posts } from 'wix-forum.v2';", " ", @@ -68,7 +68,7 @@ " } catch (error) {", " console.error(error);", " // Handle the error", - " }", + " }", " }", " " ] @@ -129,7 +129,7 @@ "description": [], "examples": [ { - "title": "GetPostBySlug example", + "title": "getPostBySlug example", "body": [ "import { posts } from 'wix-forum.v2';", " ", @@ -141,7 +141,7 @@ " } catch (error) {", " console.error(error);", " // Handle the error", - " }", + " }", " }", " " ] @@ -192,7 +192,7 @@ ], "examples": [ { - "title": "QueryPosts example", + "title": "queryPosts example", "body": [ "import { posts } from 'wix-forum.v2';", " ", @@ -204,7 +204,7 @@ " } catch (error) {", " console.error(error);", " // Handle the error", - " }", + " }", " }", " " ] From c9ee4d5f2c4e63cc6a03db511ca3f7244601be36 Mon Sep 17 00:00:00 2001 From: Wix Docs Feds Date: Mon, 24 Apr 2023 12:11:45 +0000 Subject: [PATCH 16/45] Auto commit to autodocs-wix-forum-v2 from WixDocs Server --- wix-forum-v2/wix-forum-v2/Events.service.json | 48 ++++++++++++------- 1 file changed, 32 insertions(+), 16 deletions(-) diff --git a/wix-forum-v2/wix-forum-v2/Events.service.json b/wix-forum-v2/wix-forum-v2/Events.service.json index 5f9647cb34..96ce3dc220 100644 --- a/wix-forum-v2/wix-forum-v2/Events.service.json +++ b/wix-forum-v2/wix-forum-v2/Events.service.json @@ -56,7 +56,8 @@ { "id": "maturity-beta" } - ] + ], + "syntaxName": "wixForum_onCategoryCreated" }, { "name": "onCategoryDeleted", @@ -105,7 +106,8 @@ { "id": "maturity-beta" } - ] + ], + "syntaxName": "wixForum_onCategoryDeleted" }, { "name": "onCategoryUpdated", @@ -154,7 +156,8 @@ { "id": "maturity-beta" } - ] + ], + "syntaxName": "wixForum_onCategoryUpdated" }, { "name": "onPostClosed", @@ -203,7 +206,8 @@ { "id": "maturity-beta" } - ] + ], + "syntaxName": "wixForum_onPostClosed" }, { "name": "onPostCreated", @@ -252,7 +256,8 @@ { "id": "maturity-beta" } - ] + ], + "syntaxName": "wixForum_onPostCreated" }, { "name": "onPostDeleted", @@ -301,7 +306,8 @@ { "id": "maturity-beta" } - ] + ], + "syntaxName": "wixForum_onPostDeleted" }, { "name": "onPostLiked", @@ -350,7 +356,8 @@ { "id": "maturity-beta" } - ] + ], + "syntaxName": "wixForum_onPostLiked" }, { "name": "onPostMoved", @@ -399,7 +406,8 @@ { "id": "maturity-beta" } - ] + ], + "syntaxName": "wixForum_onPostMoved" }, { "name": "onPostOpened", @@ -448,7 +456,8 @@ { "id": "maturity-beta" } - ] + ], + "syntaxName": "wixForum_onPostOpened" }, { "name": "onPostPinned", @@ -497,7 +506,8 @@ { "id": "maturity-beta" } - ] + ], + "syntaxName": "wixForum_onPostPinned" }, { "name": "onPostReacted", @@ -546,7 +556,8 @@ { "id": "maturity-beta" } - ] + ], + "syntaxName": "wixForum_onPostReacted" }, { "name": "onPostReported", @@ -595,7 +606,8 @@ { "id": "maturity-beta" } - ] + ], + "syntaxName": "wixForum_onPostReported" }, { "name": "onPostUnliked", @@ -644,7 +656,8 @@ { "id": "maturity-beta" } - ] + ], + "syntaxName": "wixForum_onPostUnliked" }, { "name": "onPostUnpinned", @@ -693,7 +706,8 @@ { "id": "maturity-beta" } - ] + ], + "syntaxName": "wixForum_onPostUnpinned" }, { "name": "onPostUnreacted", @@ -742,7 +756,8 @@ { "id": "maturity-beta" } - ] + ], + "syntaxName": "wixForum_onPostUnreacted" }, { "name": "onPostUpdated", @@ -791,7 +806,8 @@ { "id": "maturity-beta" } - ] + ], + "syntaxName": "wixForum_onPostUpdated" } ], "messages": [ From 77ea5ace1dfe2f3dd3db8063c9368d8efaee2074 Mon Sep 17 00:00:00 2001 From: Wix Docs Feds Date: Mon, 24 Apr 2023 13:06:08 +0000 Subject: [PATCH 17/45] Auto commit to autodocs-wix-forum-v2 from WixDocs Server --- wix-forum-v2/wix-forum-v2/Events.service.json | 48 +++++++------------ 1 file changed, 16 insertions(+), 32 deletions(-) diff --git a/wix-forum-v2/wix-forum-v2/Events.service.json b/wix-forum-v2/wix-forum-v2/Events.service.json index 96ce3dc220..5f9647cb34 100644 --- a/wix-forum-v2/wix-forum-v2/Events.service.json +++ b/wix-forum-v2/wix-forum-v2/Events.service.json @@ -56,8 +56,7 @@ { "id": "maturity-beta" } - ], - "syntaxName": "wixForum_onCategoryCreated" + ] }, { "name": "onCategoryDeleted", @@ -106,8 +105,7 @@ { "id": "maturity-beta" } - ], - "syntaxName": "wixForum_onCategoryDeleted" + ] }, { "name": "onCategoryUpdated", @@ -156,8 +154,7 @@ { "id": "maturity-beta" } - ], - "syntaxName": "wixForum_onCategoryUpdated" + ] }, { "name": "onPostClosed", @@ -206,8 +203,7 @@ { "id": "maturity-beta" } - ], - "syntaxName": "wixForum_onPostClosed" + ] }, { "name": "onPostCreated", @@ -256,8 +252,7 @@ { "id": "maturity-beta" } - ], - "syntaxName": "wixForum_onPostCreated" + ] }, { "name": "onPostDeleted", @@ -306,8 +301,7 @@ { "id": "maturity-beta" } - ], - "syntaxName": "wixForum_onPostDeleted" + ] }, { "name": "onPostLiked", @@ -356,8 +350,7 @@ { "id": "maturity-beta" } - ], - "syntaxName": "wixForum_onPostLiked" + ] }, { "name": "onPostMoved", @@ -406,8 +399,7 @@ { "id": "maturity-beta" } - ], - "syntaxName": "wixForum_onPostMoved" + ] }, { "name": "onPostOpened", @@ -456,8 +448,7 @@ { "id": "maturity-beta" } - ], - "syntaxName": "wixForum_onPostOpened" + ] }, { "name": "onPostPinned", @@ -506,8 +497,7 @@ { "id": "maturity-beta" } - ], - "syntaxName": "wixForum_onPostPinned" + ] }, { "name": "onPostReacted", @@ -556,8 +546,7 @@ { "id": "maturity-beta" } - ], - "syntaxName": "wixForum_onPostReacted" + ] }, { "name": "onPostReported", @@ -606,8 +595,7 @@ { "id": "maturity-beta" } - ], - "syntaxName": "wixForum_onPostReported" + ] }, { "name": "onPostUnliked", @@ -656,8 +644,7 @@ { "id": "maturity-beta" } - ], - "syntaxName": "wixForum_onPostUnliked" + ] }, { "name": "onPostUnpinned", @@ -706,8 +693,7 @@ { "id": "maturity-beta" } - ], - "syntaxName": "wixForum_onPostUnpinned" + ] }, { "name": "onPostUnreacted", @@ -756,8 +742,7 @@ { "id": "maturity-beta" } - ], - "syntaxName": "wixForum_onPostUnreacted" + ] }, { "name": "onPostUpdated", @@ -806,8 +791,7 @@ { "id": "maturity-beta" } - ], - "syntaxName": "wixForum_onPostUpdated" + ] } ], "messages": [ From 6091bf3f119161c2cc13f1efdaabecc40c9f022d Mon Sep 17 00:00:00 2001 From: Wix Docs Feds Date: Mon, 24 Apr 2023 13:42:19 +0000 Subject: [PATCH 18/45] Auto commit to autodocs-wix-forum-v2 from WixDocs Server --- wix-forum-v2/wix-forum-v2/Categories.service.json | 9 ++++++--- wix-forum-v2/wix-forum-v2/Posts.service.json | 9 ++++++--- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/wix-forum-v2/wix-forum-v2/Categories.service.json b/wix-forum-v2/wix-forum-v2/Categories.service.json index b41d38651f..55c9b77478 100644 --- a/wix-forum-v2/wix-forum-v2/Categories.service.json +++ b/wix-forum-v2/wix-forum-v2/Categories.service.json @@ -80,7 +80,8 @@ { "id": "maturity-beta" } - ] + ], + "syntaxName": "getCategory" }, { "name": "getCategoryBySlug", @@ -153,7 +154,8 @@ { "id": "maturity-beta" } - ] + ], + "syntaxName": "getCategoryBySlug" }, { "name": "queryCategories", @@ -216,7 +218,8 @@ { "id": "maturity-beta" } - ] + ], + "syntaxName": "queryCategories" } ], "messages": [ diff --git a/wix-forum-v2/wix-forum-v2/Posts.service.json b/wix-forum-v2/wix-forum-v2/Posts.service.json index 37b346334d..012ab60be5 100644 --- a/wix-forum-v2/wix-forum-v2/Posts.service.json +++ b/wix-forum-v2/wix-forum-v2/Posts.service.json @@ -80,7 +80,8 @@ { "id": "maturity-beta" } - ] + ], + "syntaxName": "getPost" }, { "name": "getPostBySlug", @@ -153,7 +154,8 @@ { "id": "maturity-beta" } - ] + ], + "syntaxName": "getPostBySlug" }, { "name": "queryPosts", @@ -216,7 +218,8 @@ { "id": "maturity-beta" } - ] + ], + "syntaxName": "queryPosts" } ], "messages": [ From a165005bb96cf1f8c6fe46854b8161afdb09edb6 Mon Sep 17 00:00:00 2001 From: Wix Docs Feds Date: Mon, 24 Apr 2023 15:53:44 +0000 Subject: [PATCH 19/45] Auto commit to autodocs-wix-forum-v2 from WixDocs Server --- wix-forum-v2/wix-forum-v2/Events.service.json | 48 ++++++++++++------- 1 file changed, 32 insertions(+), 16 deletions(-) diff --git a/wix-forum-v2/wix-forum-v2/Events.service.json b/wix-forum-v2/wix-forum-v2/Events.service.json index 5f9647cb34..96ce3dc220 100644 --- a/wix-forum-v2/wix-forum-v2/Events.service.json +++ b/wix-forum-v2/wix-forum-v2/Events.service.json @@ -56,7 +56,8 @@ { "id": "maturity-beta" } - ] + ], + "syntaxName": "wixForum_onCategoryCreated" }, { "name": "onCategoryDeleted", @@ -105,7 +106,8 @@ { "id": "maturity-beta" } - ] + ], + "syntaxName": "wixForum_onCategoryDeleted" }, { "name": "onCategoryUpdated", @@ -154,7 +156,8 @@ { "id": "maturity-beta" } - ] + ], + "syntaxName": "wixForum_onCategoryUpdated" }, { "name": "onPostClosed", @@ -203,7 +206,8 @@ { "id": "maturity-beta" } - ] + ], + "syntaxName": "wixForum_onPostClosed" }, { "name": "onPostCreated", @@ -252,7 +256,8 @@ { "id": "maturity-beta" } - ] + ], + "syntaxName": "wixForum_onPostCreated" }, { "name": "onPostDeleted", @@ -301,7 +306,8 @@ { "id": "maturity-beta" } - ] + ], + "syntaxName": "wixForum_onPostDeleted" }, { "name": "onPostLiked", @@ -350,7 +356,8 @@ { "id": "maturity-beta" } - ] + ], + "syntaxName": "wixForum_onPostLiked" }, { "name": "onPostMoved", @@ -399,7 +406,8 @@ { "id": "maturity-beta" } - ] + ], + "syntaxName": "wixForum_onPostMoved" }, { "name": "onPostOpened", @@ -448,7 +456,8 @@ { "id": "maturity-beta" } - ] + ], + "syntaxName": "wixForum_onPostOpened" }, { "name": "onPostPinned", @@ -497,7 +506,8 @@ { "id": "maturity-beta" } - ] + ], + "syntaxName": "wixForum_onPostPinned" }, { "name": "onPostReacted", @@ -546,7 +556,8 @@ { "id": "maturity-beta" } - ] + ], + "syntaxName": "wixForum_onPostReacted" }, { "name": "onPostReported", @@ -595,7 +606,8 @@ { "id": "maturity-beta" } - ] + ], + "syntaxName": "wixForum_onPostReported" }, { "name": "onPostUnliked", @@ -644,7 +656,8 @@ { "id": "maturity-beta" } - ] + ], + "syntaxName": "wixForum_onPostUnliked" }, { "name": "onPostUnpinned", @@ -693,7 +706,8 @@ { "id": "maturity-beta" } - ] + ], + "syntaxName": "wixForum_onPostUnpinned" }, { "name": "onPostUnreacted", @@ -742,7 +756,8 @@ { "id": "maturity-beta" } - ] + ], + "syntaxName": "wixForum_onPostUnreacted" }, { "name": "onPostUpdated", @@ -791,7 +806,8 @@ { "id": "maturity-beta" } - ] + ], + "syntaxName": "wixForum_onPostUpdated" } ], "messages": [ From 77b67bf3be5a53c268019c25233eb7929d6e9de0 Mon Sep 17 00:00:00 2001 From: wix-docs-feds <87931637+wix-docs-feds@users.noreply.github.com> Date: Sun, 30 Apr 2023 20:57:29 +0300 Subject: [PATCH 20/45] form release Co-authored-by: FernandoWix --- dollar-widget/$widget.service.json | 142 +++++++ media/.DS_Store | Bin 0 -> 6148 bytes media/section_divider.png | Bin 0 -> 5416 bytes media/tooltip-icon.png | Bin 0 -> 657 bytes panel-elements/$w/PanelButton.service.json | 316 ++++++++++++++++ .../$w/PanelCheckboxGroup.service.json | 317 ++++++++++++++++ panel-elements/$w/PanelDropdown.service.json | 331 +++++++++++++++++ .../$w/PanelRadioButtonGroup.service.json | 294 +++++++++++++++ panel-elements/$w/PanelRichText.service.json | 180 +++++++++ .../$w/PanelSectionDivider.service.json | 87 +++++ panel-elements/$w/PanelSlider.service.json | 310 ++++++++++++++++ panel-elements/$w/PanelTextInput.service.json | 273 ++++++++++++++ .../$w/PanelThumbnails.service.json | 328 +++++++++++++++++ .../$w/PanelToggleSwitch.service.json | 157 ++++++++ wix-editor/wix-editor.service.json | 347 ++++++++++++++++++ wix-widget/wix-widget.service.json | 181 +++++++++ .../guides/Shareable Booking Form Links.md | 109 ++++++ 17 files changed, 3372 insertions(+) create mode 100644 dollar-widget/$widget.service.json create mode 100644 media/.DS_Store create mode 100644 media/section_divider.png create mode 100644 media/tooltip-icon.png create mode 100644 panel-elements/$w/PanelButton.service.json create mode 100644 panel-elements/$w/PanelCheckboxGroup.service.json create mode 100644 panel-elements/$w/PanelDropdown.service.json create mode 100644 panel-elements/$w/PanelRadioButtonGroup.service.json create mode 100644 panel-elements/$w/PanelRichText.service.json create mode 100644 panel-elements/$w/PanelSectionDivider.service.json create mode 100644 panel-elements/$w/PanelSlider.service.json create mode 100644 panel-elements/$w/PanelTextInput.service.json create mode 100644 panel-elements/$w/PanelThumbnails.service.json create mode 100644 panel-elements/$w/PanelToggleSwitch.service.json create mode 100644 wix-editor/wix-editor.service.json create mode 100644 wix-widget/wix-widget.service.json create mode 100644 wixcode-bookings/wix-bookings/guides/Shareable Booking Form Links.md diff --git a/dollar-widget/$widget.service.json b/dollar-widget/$widget.service.json new file mode 100644 index 0000000000..ff7bc6f5a1 --- /dev/null +++ b/dollar-widget/$widget.service.json @@ -0,0 +1,142 @@ +{ "name": "$widget", + "mixes": [], + "labels": + [ "new" ], + "location": + { "lineno": 1, + "filename": "$widget.js" }, + "docs": + { "summary": "The `$widget` namespace contains functionality for working with your Blocks widget's API from within the widget code.", + "description": + [ "> **This namespace is available only in Wix Blocks widget code** ", + "> [Wix Blocks](https://support.wix.com/en/article/wix-blocks-check-out-our-articles) is a workspace for building Wix apps. It is currently a Beta version, open to a limited number of users.", + "", + "Blocks widgets can expose a [widget API](https://support.wix.com/en/article/wix-blocks-about-the-widget-api), letting you add properties, events, and functions to your widget.", + "The `$widget` namespace provides functionality for working with to your widget's API from within the widget code." ], + "links": [], + "examples": [], + "extra": + { } }, + "properties": + [ { "name": "props", + "labels": [], + "get": true, + "set": true, + "type": "Object", + "locations": + [ { "lineno": 13, + "filename": "$widget.js" }, + { "lineno": 26, + "filename": "$widget.js" } ], + "docs": + { "summary": "Sets or gets the [widget's properties](https://support.wix.com/en/article/wix-blocks-widget-api-properties).", + "description": + [ "The `props` property is an object containing all of the widget's properties." ], + "links": [], + "examples": + [ { "title": "Get a widget's properties", + "body": + [ "$w('#text1').text = $widget.props.shoe.size; // \"43\"" ], + "extra": + { } }, + { "title": "Set a widget's properties", + "body": + [ "$widget.props = { saleIndicator: \"No Sale\" };" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } } ], + "operations": + [ { "name": "fireEvent", + "labels": [], + "nameParams": [], + "params": + [ { "name": "eventName", + "type": "string", + "doc": "The name of te event to be fired." }, + { "name": "data", + "type": "Object", + "doc": "A data object that is passed to the event handler." } ], + "ret": + { "type": "void" }, + "locations": + [ { "lineno": 46, + "filename": "$widget.js" } ], + "docs": + { "summary": "Fires an event that is defined in the Widget API.", + "description": + [ "The `fireEvent()` function fires a widget event, which can then be handled from outside the widget (by code in a parent widget or a site page).", + "When using the widget's API, the event is named `on`, for example, `onAddedToCart`." ], + "links": [], + "examples": + [ { "title": "Fire a widget event", + "body": + [ "$w(`#button1`).onClick(() => {", + " $widget.fireEvent(`addedToCart`, {productId: product.id, customerId: customer.id})", + "});" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "onPropsChanged", + "labels": [], + "nameParams": [], + "params": + [ { "name": "handler", + "type": "$widget.onPropsChangedHandler", + "doc": "The name of the function or\n the function expression to run when the value of a widget property is changed." } ], + "ret": + { "type": "any" }, + "locations": + [ { "lineno": 33, + "filename": "$widget.js" } ], + "docs": + { "summary": "Adds an event handler that runs when the value of a widget property is changed.", + "description": + [ "A widget receives an `onPropsChanged` event when one or more of its properties is changed via its API." ], + "links": [], + "examples": + [ { "title": "Load updated data when a widget's property is changed", + "body": + [ "$widget.onPropsChanged((oldProps, newProps) => {", + " loadProductData(newProps.productId);", + " loadCustomerData(newProps.customerId);", + "});" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } } ], + "callbacks": + [ { "name": "onPropsChangedHandler", + "labels": [], + "nameParams": [], + "params": + [ { "name": "oldProps", + "type": "Object", + "doc": "The old widget properties." }, + { "name": "newProps", + "type": "Object", + "doc": "The new widget properties." } ], + "ret": + { "type": "void" }, + "locations": + [ { "lineno": 59, + "filename": "$widget.js" } ], + "docs": + { "description": + [ "Handles events fired when a widget's properties are changed." ], + "links": [], + "examples": [], + "extra": + { } }, + "extra": + { } } ], + "messages": [], + "extra": + { } } \ No newline at end of file diff --git a/media/.DS_Store b/media/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 GIT binary patch literal 6148 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 **Important**: ", + "> This element is available only in [custom panels built in Blocks](https://support.wix.com/en/article/wix-blocks-designing-custom-panels-for-your-widgets-action-bar-buttons). ", + "> [Wix Blocks](https://support.wix.com/en/article/wix-blocks-check-out-our-articles) is a workspace for building Wix apps. It is currently a Beta version, open to a limited number of users." ], + "links": [], + "examples": [], + "extra": + { } }, + "properties": + [ { "name": "buttonLabel", + "labels": [], + "get": true, + "set": true, + "type": "string", + "locations": + [ { "lineno": 56, + "filename": "PanelButton.js" }, + { "lineno": 69, + "filename": "PanelButton.js" } ], + "docs": + { "summary": "Sets or gets the button's label (the text that appears on the button).", + "links": + [ "[`label`](#label)" ], + "examples": + [ { "title": "Get a button's label", + "body": + [ "let label = $w(\"#myButton\").buttonLabel; // \"Open Dashboard\"" ], + "extra": + { } }, + { "title": "Set a button's label", + "body": + [ "$w(\"#myButton\").buttonLabel = \"Open Dashboard\";" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "divider", + "labels": [], + "get": true, + "set": true, + "type": "string", + "locations": + [ { "lineno": 147, + "filename": "PanelButton.js" }, + { "lineno": 163, + "filename": "PanelButton.js" } ], + "docs": + { "summary": "Sets or gets the type of divider displayed under the element.", + "description": + [ "The divider type can be:", + "* `\"LONG\"`", + "* `\"SHORT\"`", + "* `\"NONE\"`" ], + "links": [], + "examples": + [ { "title": "Get an element's divider type", + "body": + [ "let divider = $w(\"#myElement\").divider; // \"none\"" ], + "extra": + { } }, + { "title": "Set an element's divider type", + "body": + [ "$w(\"#myElement\").divider = \"NONE\";" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "label", + "labels": [], + "get": true, + "set": true, + "type": "string", + "locations": + [ { "lineno": 38, + "filename": "PanelButton.js" }, + { "lineno": 50, + "filename": "PanelButton.js" } ], + "docs": + { "summary": "Sets or gets the text above the button (field title). Maximum length is 120 characters.", + "links": + [ "[`buttonLabel`](#buttonLabel)" ], + "examples": + [ { "title": "Get an element's label", + "body": + [ "let label = $w(\"#myElement\").label; // \"My element's label\"" ], + "extra": + { } }, + { "title": "Set an element's label", + "body": + [ "$w(\"#myElement\").label = \"New Label\";" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "size", + "labels": [], + "get": true, + "set": true, + "type": "string", + "locations": + [ { "lineno": 105, + "filename": "PanelButton.js" }, + { "lineno": 121, + "filename": "PanelButton.js" } ], + "docs": + { "summary": "Sets or gets the button's size.", + "description": + [ "The size can be:", + "* `\"SMALL\"`", + "* `\"MEDIUM\"`", + "* `\"LARGE\"`" ], + "links": [], + "examples": + [ { "title": "Get a button's size", + "body": + [ "let size = $w(\"#myButton\").size; // \"SMALL\"" ], + "extra": + { } }, + { "title": "Set a button's size", + "body": + [ "$w(\"#myButton\").size = \"SMALL\";" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "skin", + "labels": [], + "get": true, + "set": true, + "type": "string", + "locations": + [ { "lineno": 75, + "filename": "PanelButton.js" }, + { "lineno": 99, + "filename": "PanelButton.js" } ], + "docs": + { "summary": "Sets or gets the button's skin.", + "description": + [ "The skin can be:", + "* `\"STANDARD\"`", + "* `\"STANDARD_SECONDARY\"`", + "* `\"PREMIUM\"`", + "* `\"PREMIUM_SECONDARY\"`", + "* `\"ALERT\"`", + "* `\"ALERT_SECONDARY\"`", + "* `\"INVERTED\"`", + "Primary (as opposed to secondary) buttons are for main actions. ", + "Red alert buttons are for destructive actions like \"Delete\". ", + "Purple premium buttons are for upgrade actions. ", + "To view the different skin options, change the type of your panel button in the Blocks panel builder." ], + "links": [], + "examples": + [ { "title": "Get a button's skin", + "body": + [ "let skin = $w(\"#myButton\").skin; // \"PREMIUM\"" ], + "extra": + { } }, + { "title": "Set a button's skin", + "body": + [ "$w(\"#myButton\").skin = \"PREMIUM\";" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "stretched", + "labels": [], + "get": true, + "set": true, + "type": "boolean", + "locations": + [ { "lineno": 130, + "filename": "PanelButton.js" }, + { "lineno": 141, + "filename": "PanelButton.js" } ], + "docs": + { "summary": "Sets or gets whether the button is stretched to the full width of the panel.", + "links": [], + "examples": + [ { "title": "Get whether a button is full width", + "body": + [ "let isFullWidth = $w(\"#myButton\").stretched; // true" ], + "extra": + { } }, + { "title": "Set a button to be full width", + "body": + [ "$w(\"#myButton\").stretched = true;" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "tooltip", + "labels": [], + "get": true, + "set": true, + "type": "string", + "locations": + [ { "lineno": 18, + "filename": "PanelButton.js" }, + { "lineno": 32, + "filename": "PanelButton.js" } ], + "docs": + { "summary": "Sets or gets an element's tooltip.", + "description": + [ "Setting the `tooltip` property defines the text that is displayed when a user hovers on an element's ![tooltip-icon](images/tooltip-icon.png) icon.", + "Maximum length is 1200 characters." ], + "links": [], + "examples": + [ { "title": "Get an element's tooltip", + "body": + [ "let tooltip = $w(\"#myElement\").tooltip; // \"Tooltip text\"" ], + "extra": + { } }, + { "title": "Set an element's tooltip", + "body": + [ "$w(\"#myElement\").tooltip = \"New tooltip\";" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } } ], + "operations": + [ { "name": "onClick", + "labels": [], + "nameParams": [], + "params": + [ { "name": "handler", + "type": "$w.EventHandler", + "doc": "The name of the function or\n the function expression to run when the element is clicked." } ], + "ret": + { "type": "$w.Element", + "doc": "The element to which the event handler was added." }, + "locations": + [ { "lineno": 169, + "filename": "PanelButton.js" } ], + "docs": + { "summary": "Adds an event handler that runs when the element is clicked.", + "description": + [ "An element receives a `click` event when a user clicks on the element", + " and releases.", + "", + " You can also [define an event handler using the Properties and Events panel](https://support.wix.com/en/article/velo-reacting-to-user-actions-using-events).", + " ", + "![Properties and Events panel](images/properties_and_events.png \"Properties and Events panel\")", + "", + " This will automatically add the required code for the selected element and event:", + "", + " ```javascript ", + " export function button1_click(event) {", + " // This function was added from the Properties & Events panel. To learn more, visit http://wix.to/UcBnC-4", + " // Add your code for this event here: ", + " } ", + "```" ], + "links": [], + "examples": + [ { "title": "Open a dashboard panel when the user clicks a button", + "body": + [ "import wixEditor from 'wix-editor'", + "", + "$w.onReady(function () {", + " $w('#myButton').buttonLabel = \"Manage Contacts\"; // Set the button's label", + " $w('#myButton').onClick(async () => {", + " await wixEditor.openDashboardPanel({ url: \"/contacts\" }) // Open the site Dashboard's Contacts page", + " })", + "});" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { "eventType": "click" } } ], + "callbacks": [], + "messages": + [ { "name": "icon", + "locations": + [ { "lineno": 199, + "filename": "PanelButton.js" } ], + "docs": + { "summary": "An object representing an SVG icon.", + "links": [], + "examples": [], + "extra": + { } }, + "members": + [ { "name": "svgId", + "type": "string", + "doc": "An SVG element" } ], + "extra": + { }, + "labels": [] } ], + "extra": + { "queryable": true } } \ No newline at end of file diff --git a/panel-elements/$w/PanelCheckboxGroup.service.json b/panel-elements/$w/PanelCheckboxGroup.service.json new file mode 100644 index 0000000000..2108cca05b --- /dev/null +++ b/panel-elements/$w/PanelCheckboxGroup.service.json @@ -0,0 +1,317 @@ +{ "name": "PanelCheckboxGroup", + "memberOf": "$w", + "mixes": + [ "$w.HiddenCollapsedMixin", + "$w.Element", + "$w.DisabledMixin" ], + "labels": [], + "location": + { "lineno": 1, + "filename": "PanelCheckboxGroup.js" }, + "docs": + { "summary": "Panel checkbox groups are used in the Blocks panel builder for selecting any number of the given options.", + "description": + [ "Checkbox groups consist of a list of options. Each option has a label, which is what the user sees, and a value, which is what is used in code.", + "", + "> **Important**: ", + "> This element is available only in [custom panels built in Blocks](https://support.wix.com/en/article/wix-blocks-designing-custom-panels-for-your-widgets-action-bar-buttons). ", + "> [Wix Blocks](https://support.wix.com/en/article/wix-blocks-check-out-our-articles) is a workspace for building Wix apps. It is currently a Beta version, open to a limited number of users." ], + "links": [], + "examples": [], + "extra": + { } }, + "properties": + [ { "name": "divider", + "labels": [], + "get": true, + "set": true, + "type": "string", + "locations": + [ { "lineno": 79, + "filename": "PanelCheckboxGroup.js" }, + { "lineno": 95, + "filename": "PanelCheckboxGroup.js" } ], + "docs": + { "summary": "Sets or gets the type of divider displayed under the element.", + "description": + [ "The divider type can be:", + "* `\"LONG\"`", + "* `\"SHORT\"`", + "* `\"NONE\"`" ], + "links": [], + "examples": + [ { "title": "Get an element's divider type", + "body": + [ "let divider = $w(\"#myElement\").divider; // \"none\"" ], + "extra": + { } }, + { "title": "Set an element's divider type", + "body": + [ "$w(\"#myElement\").divider = \"NONE\";" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "label", + "labels": [], + "get": true, + "set": true, + "type": "string", + "locations": + [ { "lineno": 62, + "filename": "PanelCheckboxGroup.js" }, + { "lineno": 73, + "filename": "PanelCheckboxGroup.js" } ], + "docs": + { "summary": "Sets or gets the label of an element.", + "links": [], + "examples": + [ { "title": "Get an element's label", + "body": + [ "let label = $w(\"#myElement\").label; // \"My element's label\"" ], + "extra": + { } }, + { "title": "Set an element's label", + "body": + [ "$w(\"#myElement\").label = \"New Label\";" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "options", + "labels": [], + "get": true, + "set": true, + "type": + { "name": "Array", + "typeParams": + [ "$w.PanelCheckboxGroup.option" ] }, + "locations": + [ { "lineno": 101, + "filename": "PanelCheckboxGroup.js" }, + { "lineno": 127, + "filename": "PanelCheckboxGroup.js" } ], + "docs": + { "summary": "Sets or gets the options of the checkbox group.", + "description": + [ "`options` is an array of objects, each representing an option available to a user.", + "Setting the `options` property sets all the options", + " available to a user.", + "", + " Getting the `options` property returns the current", + " list of options available to a user.", + "", + " You cannot modify the data array in-place. To add, change, or remove", + " individual checkbox options:", + "", + " 1. Store the value of the `options` property in a variable.", + " 1. Make changes to the options array.", + " 1. Reset the `options` property with the modified array." ], + "links": [], + "examples": + [ { "title": "Get the list of options and the first option's label and value from a checkbox group", + "body": + [ "let checkboxGroupOptions = $w(\"#myCheckboxGroup\").options;", + "", + "let firstLabel = checkboxGroupOptions[0].label; // \"First Label\"", + "let firstValue = checkboxGroupOptions[0].value; // \"first_value\"" ], + "extra": + { } }, + { "title": "Set the list of options for a checkbox group", + "body": + [ "$w(\"#myCheckboxGroup\").options = [", + " {\"label\": \"Who's on first!\", \"value\": \"first\"},", + " {\"label\": \"What's on second\", \"value\": \"second\"},", + " {\"label\": \"I Don't Know is on third\", \"value\": \"third\"}", + "];" ], + "extra": + { } }, + { "title": "Add an option to a checkbox group", + "body": + [ "let opts = $w(\"#myCheckboxGroup\").options;", + "opts.push({\"label\": \"New Label\", \"value\": \"New Value\"});", + "$w(\"#myCheckboxGroup\").options = opts;" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "selectedIndices", + "labels": [], + "get": true, + "set": true, + "type": + { "name": "Array", + "typeParams": + [ "number" ] }, + "locations": + [ { "lineno": 141, + "filename": "PanelCheckboxGroup.js" }, + { "lineno": 163, + "filename": "PanelCheckboxGroup.js" } ], + "docs": + { "summary": "Sets or gets the indices of the selected options.", + "description": + [ "Setting the `selectedIndices` property sets the options at", + " each specified index to be a selected option.", + "", + " To reset the checkbox group to have no option", + " selected, set the `selectedIndices` property to an empty array, null, or `undefined`.", + "", + " Getting the `selectedIndices` property returns an array of the indices of", + " all selected options. If no value is selected, the `selectedIndices`", + " property returns an empty array." ], + "links": [], + "examples": + [ { "title": "Get the indices of the selected options", + "body": + [ "let selectedIndices = $w(\"#myCheckboxGroup\").selectedIndices; // [0,2]" ], + "extra": + { } }, + { "title": "Select the selected options by indices", + "body": + [ "$w(\"#myCheckboxGroup\").selectedIndices = [0,2];" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "tooltip", + "labels": [], + "get": true, + "set": true, + "type": "string", + "locations": + [ { "lineno": 43, + "filename": "PanelCheckboxGroup.js" }, + { "lineno": 56, + "filename": "PanelCheckboxGroup.js" } ], + "docs": + { "summary": "Sets or gets an element's tooltip.", + "description": + [ "Setting the `tooltip` property defines the text that is displayed when a user hovers on an element's ![tooltip-icon](assets/images/tooltip-icon.png) icon." ], + "links": [], + "examples": + [ { "title": "Get an element's tooltip", + "body": + [ "let tooltip = $w(\"#myElement\").tooltip; // \"Tooltip text\"" ], + "extra": + { } }, + { "title": "Set an element's tooltip", + "body": + [ "$w(\"#myElement\").tooltip = \"New tooltip\";" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "value", + "labels": [], + "get": true, + "set": true, + "type": + { "name": "Array", + "typeParams": + [ "string" ] }, + "locations": + [ { "lineno": 20, + "filename": "PanelCheckboxGroup.js" }, + { "lineno": 37, + "filename": "PanelCheckboxGroup.js" } ], + "docs": + { "summary": "Sets or gets the value of the selected options.", + "description": + [ "Setting the `value` property sets the `options` with those values to be the selected options. You must set the `value` property to values that exist in the [`options`](#options) list.", + "To reset the checkbox group to have no options selected, set the `value` property to an empty array.", + "Getting the `value` property returns the values of the currently selected options. If no value is selected, the value property returns an empty array.", + "", + "> **Note**: Changing an element's `value` in code does not trigger an `onChange` event." ], + "links": [], + "examples": + [ { "title": "Get the values of the selected options", + "body": + [ "let myValue = $w(\"#myCheckboxGroup\").value; // [\"value1\", \"value2\"]" ], + "extra": + { } }, + { "title": "Set the selected options by values", + "body": + [ "$w(\"#myCheckboxGroup\").value = [\"value1\", \"value2\"];" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } } ], + "operations": + [ { "name": "onChange", + "labels": [], + "nameParams": [], + "params": + [ { "name": "handler", + "type": "$w.EventHandler", + "doc": "The name of the function or\n the function expression to run when the element's value changes." } ], + "ret": + { "type": "$w.Element", + "doc": "The element on which the event is now registered." }, + "locations": + [ { "lineno": 171, + "filename": "PanelCheckboxGroup.js" } ], + "docs": + { "summary": "Adds an event handler that runs when an input element's value\n is changed.", + "description": + [ "An element receives a `change` event when a user changes the value", + " in an input element.", + "", + " A `change` event is not triggered when you change an element's value using", + " the element's [`value`](#value) property.", + "", + " Because `onChange()` is fired before validations are performed, do not check", + " any of the validation properties in the `onChange()` event handler. For example,", + " do not code an if statement that checks the `valid` property in the `onChange()`", + " because the property at this point contains values prior to the `onChange()`.", + "", + " You can also [define an event handler using the Properties and Events panel](https://support.wix.com/en/article/velo-reacting-to-user-actions-using-events)." ], + "links": [], + "examples": + [ { "title": "Get the value of the element that was changed", + "body": + [ "$w(\"#myElement\").onChange( (event) => {", + " let newValue = event.target.value; // \"new value\"", + "});" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { "eventType": "change" } } ], + "callbacks": [], + "messages": + [ { "name": "option", + "locations": + [ { "lineno": 133, + "filename": "PanelCheckboxGroup.js" } ], + "docs": + { "summary": "An object representing a checkbox option.", + "links": [], + "examples": [], + "extra": + { } }, + "members": + [ { "name": "label", + "type": "string", + "doc": "The label of the checkbox option. This is what a user sees." }, + { "name": "value", + "type": "string", + "doc": "The value of the checkbox option. This is what you use in code." } ], + "extra": + { }, + "labels": [] } ], + "extra": + { "queryable": true } } \ No newline at end of file diff --git a/panel-elements/$w/PanelDropdown.service.json b/panel-elements/$w/PanelDropdown.service.json new file mode 100644 index 0000000000..34ca746c1d --- /dev/null +++ b/panel-elements/$w/PanelDropdown.service.json @@ -0,0 +1,331 @@ +{ "name": "PanelDropdown", + "memberOf": "$w", + "mixes": + [ "$w.HiddenCollapsedMixin", + "$w.Element", + "$w.DisabledMixin" ], + "labels": [], + "location": + { "lineno": 1, + "filename": "PanelDropdown.js" }, + "docs": + { "summary": "Panel dropdowns are used in the Blocks panel builder for selecting one of a number of options.", + "description": + [ "Dropdowns consist of a list of options. Each option contains a label, which is what the user sees, and a value, which is what is used in code.", + "", + "> **Important**: ", + "> This element is available only in [custom panels built in Blocks](https://support.wix.com/en/article/wix-blocks-designing-custom-panels-for-your-widgets-action-bar-buttons). ", + "> [Wix Blocks](https://support.wix.com/en/article/wix-blocks-check-out-our-articles) is a workspace for building Wix apps. It is currently a Beta version, open to a limited number of users." ], + "links": [], + "examples": [], + "extra": + { } }, + "properties": + [ { "name": "divider", + "labels": [], + "get": true, + "set": true, + "type": "string", + "locations": + [ { "lineno": 98, + "filename": "PanelDropdown.js" }, + { "lineno": 114, + "filename": "PanelDropdown.js" } ], + "docs": + { "summary": "Sets or gets the type of divider displayed under the element.", + "description": + [ "The divider type can be:", + "* `\"LONG\"`", + "* `\"SHORT\"`", + "* `\"NONE\"`" ], + "links": [], + "examples": + [ { "title": "Get an element's divider type", + "body": + [ "let divider = $w(\"#myElement\").divider; // \"none\"" ], + "extra": + { } }, + { "title": "Set an element's divider type", + "body": + [ "$w(\"#myElement\").divider = \"NONE\";" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "label", + "labels": [], + "get": true, + "set": true, + "type": "string", + "locations": + [ { "lineno": 61, + "filename": "PanelDropdown.js" }, + { "lineno": 72, + "filename": "PanelDropdown.js" } ], + "docs": + { "summary": "Sets or gets the label of an element. Maximum length is 120 characters.", + "links": [], + "examples": + [ { "title": "Get an element's label", + "body": + [ "let label = $w(\"#myElement\").label; // \"My element's label\"" ], + "extra": + { } }, + { "title": "Set an element's label", + "body": + [ "$w(\"#myElement\").label = \"New Label\";" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "options", + "labels": [], + "get": true, + "set": true, + "type": + { "name": "Array", + "typeParams": + [ "$w.PanelDropdown.option" ] }, + "locations": + [ { "lineno": 120, + "filename": "PanelDropdown.js" }, + { "lineno": 134, + "filename": "PanelDropdown.js" } ], + "docs": + { "summary": "Sets or gets the options in the dropdown.", + "description": + [ "`options` is an array of objects, each representing an option available to a user." ], + "links": [], + "examples": + [ { "title": "Get the list of options and the first option's label and value from a dropdown", + "body": + [ "let dropdownOptions = $w(\"#myDropdown\").options;", + "", + "let firstLabel = dropdownOptions[0].label; // \"First Label\"", + "let firstValue = dropdownOptions[0].value; // \"first_value\"" ], + "extra": + { } }, + { "title": "Set the list of options for a dropdown", + "body": + [ "$w(\"#myDropdown\").options = [", + " {\"label\": \"Who's on first!\", \"value\": \"first\"},", + " {\"label\": \"What's on second\", \"value\": \"second\"},", + " {\"label\": \"I Don't Know is on third\", \"value\": \"third\"}", + "];" ], + "extra": + { } }, + { "title": "Add an option to a dropdown", + "body": + [ "let opts = $w(\"#myDropdown\").options;", + "opts.push({\"label\": \"New Label\", \"value\": \"New Value\"});", + "$w(\"#myDropdown\").options = opts;" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "placeholder", + "labels": [], + "get": true, + "set": true, + "type": "string", + "locations": + [ { "lineno": 78, + "filename": "PanelDropdown.js" }, + { "lineno": 92, + "filename": "PanelDropdown.js" } ], + "docs": + { "summary": "Sets or gets the placeholder text of an element.", + "description": + [ "The placeholder text is displayed only when no dropdown option is selected. ", + "Maximum length is 120 characters." ], + "links": [], + "examples": + [ { "title": "Get an element's placeholder", + "body": + [ "let label = $w(\"#myElement\").placeholder; // \"Type your name\"" ], + "extra": + { } }, + { "title": "Set an element's placeholder", + "body": + [ "$w(\"#myElement\").placeholder = \"New Placeholder\";" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "selectedIndex", + "labels": [], + "get": true, + "set": true, + "type": "number", + "locations": + [ { "lineno": 150, + "filename": "PanelDropdown.js" }, + { "lineno": 174, + "filename": "PanelDropdown.js" } ], + "docs": + { "summary": "Sets or gets the index of the selected option.", + "description": + [ "Setting the `selectedIndex` property sets the option at", + " that index to be the selected option. To set one of the options to be", + " selected, set the `selectedIndex` property to an index between `0` and", + " `options.length - 1`.", + "", + " To reset the dropdown to have no option", + " selected, set the `selectedIndex` property to `undefined`.", + "", + " Getting the `selectedIndex` property returns the index of", + " the currently selected option. If no value is selected, the", + " `selectedIndex` property returns `undefined`." ], + "links": [], + "examples": + [ { "title": "Get the index of the selected option", + "body": + [ "let mySelIndex = $w(\"#mySelectorElement\").selectedIndex; // 3" ], + "extra": + { } }, + { "title": "Select the first option by index", + "body": + [ "$w(\"#mySelectorElement\").selectedIndex = 0;" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "tooltip", + "labels": [], + "get": true, + "set": true, + "type": "string", + "locations": + [ { "lineno": 41, + "filename": "PanelDropdown.js" }, + { "lineno": 55, + "filename": "PanelDropdown.js" } ], + "docs": + { "summary": "Sets or gets an element's tooltip.", + "description": + [ "Maximum length is 1200 characters. ", + "Setting the `tooltip` property defines the text that is displayed when a user hovers on an element's ![tooltip-icon](images/tooltip-icon.png) icon." ], + "links": [], + "examples": + [ { "title": "Get an element's tooltip", + "body": + [ "let tooltip = $w(\"#myElement\").tooltip; // \"Tooltip text\"" ], + "extra": + { } }, + { "title": "Set an element's tooltip", + "body": + [ "$w(\"#myElement\").tooltip = \"New tooltip\";" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "value", + "labels": [], + "get": true, + "set": true, + "type": "string", + "locations": + [ { "lineno": 20, + "filename": "PanelDropdown.js" }, + { "lineno": 35, + "filename": "PanelDropdown.js" } ], + "docs": + { "summary": "Sets or gets an element's value.", + "description": + [ "Maximum length is 120 characters. ", + "To reset the element, set the value property to `null` or `undefined`. ", + "Changing an element's `value` in code does not trigger an `onChange` event." ], + "links": [], + "examples": + [ { "title": "Get an element's value", + "body": + [ "let myValue = $w(\"#myElement\").value; // \"option-1\"" ], + "extra": + { } }, + { "title": "Set an element's value", + "body": + [ "$w(\"#myElement\").value = \"option-1\";" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } } ], + "operations": + [ { "name": "onChange", + "labels": [], + "nameParams": [], + "params": + [ { "name": "handler", + "type": "$w.EventHandler", + "doc": "The name of the function or\n the function expression to run when the element's value changes." } ], + "ret": + { "type": "$w.Element", + "doc": "The element on which the event is now registered." }, + "locations": + [ { "lineno": 181, + "filename": "PanelDropdown.js" } ], + "docs": + { "summary": "Adds an event handler that runs when an input element's value\n is changed.", + "description": + [ "An element receives a `change` event when a user changes the value", + " in an input element.", + "", + " A `change` event is not triggered when you change an element's value using", + " the element's [`value`](#value) property.", + "", + " Because `onChange()` is fired before validations are performed, do not check", + " any of the validation properties in the `onChange()` event handler. For example,", + " do not code an if statement that checks the `valid` property in the `onChange()`", + " because the property at this point contains values prior to the `onChange()`.", + "", + " You can also [define an event handler using the Properties and Events panel](https://support.wix.com/en/article/velo-reacting-to-user-actions-using-events)." ], + "links": [], + "examples": + [ { "title": "Get the value of the element that was changed", + "body": + [ "$w(\"#myElement\").onChange( (event) => {", + " let newValue = event.target.value; // \"new value\"", + "});" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { "eventType": "change" } } ], + "callbacks": [], + "messages": + [ { "name": "option", + "locations": + [ { "lineno": 140, + "filename": "PanelDropdown.js" } ], + "docs": + { "summary": "An object representing a dropdown option.", + "links": [], + "examples": [], + "extra": + { } }, + "members": + [ { "name": "label", + "type": "string", + "doc": "The label of the dropdown option. This is what a user sees." }, + { "name": "value", + "type": "string", + "doc": "The value of the dropdown option. This is what you use in code." } ], + "extra": + { }, + "labels": [] } ], + "extra": + { "queryable": true } } \ No newline at end of file diff --git a/panel-elements/$w/PanelRadioButtonGroup.service.json b/panel-elements/$w/PanelRadioButtonGroup.service.json new file mode 100644 index 0000000000..6aac079d88 --- /dev/null +++ b/panel-elements/$w/PanelRadioButtonGroup.service.json @@ -0,0 +1,294 @@ +{ "name": "PanelRadioButtonGroup", + "memberOf": "$w", + "mixes": + [ "$w.HiddenCollapsedMixin", + "$w.Element", + "$w.DisabledMixin" ], + "labels": [], + "location": + { "lineno": 1, + "filename": "PanelRadioButtonGroup.js" }, + "docs": + { "summary": "Panel radio button groups are used in the Blocks panel builder for selecting one of a number of options.", + "description": + [ "Radio button groups consist of a list of options. Each option contains a label, which is what the user sees, and a value, which is what is used in code.", + "", + "> **Important**: ", + "> This element is available only in [custom panels built in Blocks](https://support.wix.com/en/article/wix-blocks-designing-custom-panels-for-your-widgets-action-bar-buttons). ", + "> [Wix Blocks](https://support.wix.com/en/article/wix-blocks-check-out-our-articles) is a workspace for building Wix apps. It is currently a Beta version, open to a limited number of users." ], + "links": [], + "examples": [], + "extra": + { } }, + "properties": + [ { "name": "divider", + "labels": [], + "get": true, + "set": true, + "type": "string", + "locations": + [ { "lineno": 80, + "filename": "PanelRadioButtonGroup.js" }, + { "lineno": 96, + "filename": "PanelRadioButtonGroup.js" } ], + "docs": + { "summary": "Sets or gets the type of divider displayed under the element.", + "description": + [ "The divider type can be:", + "* `\"LONG\"`", + "* `\"SHORT\"`", + "* `\"NONE\"`" ], + "links": [], + "examples": + [ { "title": "Get an element's divider type", + "body": + [ "let divider = $w(\"#myElement\").divider; // \"none\"" ], + "extra": + { } }, + { "title": "Set an element's divider type", + "body": + [ "$w(\"#myElement\").divider = \"NONE\";" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "label", + "labels": [], + "get": true, + "set": true, + "type": "string", + "locations": + [ { "lineno": 62, + "filename": "PanelRadioButtonGroup.js" }, + { "lineno": 73, + "filename": "PanelRadioButtonGroup.js" } ], + "docs": + { "summary": "Sets or gets the label of an element.", + "links": [], + "examples": + [ { "title": "Get an element's label", + "body": + [ "let label = $w(\"#myElement\").label; // \"My element's label\"" ], + "extra": + { } }, + { "title": "Set an element's label", + "body": + [ "$w(\"#myElement\").label = \"New Label\";" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "options", + "labels": [], + "get": true, + "set": true, + "type": + { "name": "Array", + "typeParams": + [ "$w.PanelRadioButtonGroup.option" ] }, + "locations": + [ { "lineno": 102, + "filename": "PanelRadioButtonGroup.js" }, + { "lineno": 115, + "filename": "PanelRadioButtonGroup.js" } ], + "docs": + { "summary": "Sets or gets the options in the radio button group.", + "description": + [ "`options` is an array of objects, each representing an option available to a user." ], + "links": [], + "examples": + [ { "title": "Get a text input's prefix", + "body": + [ "let radioOptions = $w(\"#myPanelRadioGroup\").options;", + "", + "let firstLabel = radioOptions[0].label; // \"First Label\"", + "let firstValue = radioOptions[0].value; // \"first_value\"" ], + "extra": + { } }, + { "title": "Set a text input's prefix", + "body": + [ "$w(\"#myPanelRadioGroup\").options = [", + " {\"label\": \"Who's on first!\", \"value\": \"first\"},", + " {\"label\": \"What's on second\", \"value\": \"second\"},", + " {\"label\": \"I Don't Know is on third\", \"value\": \"third\"}", + "];" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "selectedIndex", + "labels": [], + "get": true, + "set": true, + "type": "number", + "locations": + [ { "lineno": 122, + "filename": "PanelRadioButtonGroup.js" }, + { "lineno": 146, + "filename": "PanelRadioButtonGroup.js" } ], + "docs": + { "summary": "Sets or gets the index of the selected option.", + "description": + [ "Setting the `selectedIndex` property sets the option at", + " that index to be the selected option. To set one of the options to be", + " selected, set the `selectedIndex` property to an index between `0` and", + " `options.length - 1`.", + "", + " To reset the dropdown to have no option", + " selected, set the `selectedIndex` property to `undefined`.", + "", + " Getting the `selectedIndex` property returns the index of", + " the currently selected option. If no value is selected, the", + " `selectedIndex` property returns `undefined`." ], + "links": [], + "examples": + [ { "title": "Get the index of the selected option", + "body": + [ "let mySelIndex = $w(\"#mySelectorElement\").selectedIndex; // 3" ], + "extra": + { } }, + { "title": "Select the first option by index", + "body": + [ "$w(\"#mySelectorElement\").selectedIndex = 0;" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "tooltip", + "labels": [], + "get": true, + "set": true, + "type": "string", + "locations": + [ { "lineno": 42, + "filename": "PanelRadioButtonGroup.js" }, + { "lineno": 56, + "filename": "PanelRadioButtonGroup.js" } ], + "docs": + { "summary": "Sets or gets an element's tooltip.", + "description": + [ "Setting the `tooltip` property defines the text that is displayed when a user hovers on an element's ![tooltip-icon](images/tooltip-icon.png) icon. ", + "Maximum length is 1200 characters." ], + "links": [], + "examples": + [ { "title": "Get an element's tooltip", + "body": + [ "let tooltip = $w(\"#myElement\").tooltip; // \"Tooltip text\"" ], + "extra": + { } }, + { "title": "Set an element's tooltip", + "body": + [ "$w(\"#myElement\").tooltip = \"New tooltip\";" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "value", + "labels": [], + "get": true, + "set": true, + "type": "string", + "locations": + [ { "lineno": 20, + "filename": "PanelRadioButtonGroup.js" }, + { "lineno": 36, + "filename": "PanelRadioButtonGroup.js" } ], + "docs": + { "summary": "Sets or gets an element's value.", + "description": + [ "Maximum length is 120 characters. ", + " To reset the element, set the value property to `null` or `undefined`.", + "", + "> **Note**: Changing an element's `value` in code does not trigger an `onChange` event." ], + "links": [], + "examples": + [ { "title": "Get an element's value", + "body": + [ "let myValue = $w(\"#myElement\").value; // \"option-1\"" ], + "extra": + { } }, + { "title": "Set an element's value", + "body": + [ "$w(\"#myElement\").value = \"option-1\";" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } } ], + "operations": + [ { "name": "onChange", + "labels": [], + "nameParams": [], + "params": + [ { "name": "handler", + "type": "$w.EventHandler", + "doc": "The name of the function or\n the function expression to run when the element's value changes." } ], + "ret": + { "type": "$w.Element", + "doc": "The element on which the event is now registered." }, + "locations": + [ { "lineno": 161, + "filename": "PanelRadioButtonGroup.js" } ], + "docs": + { "summary": "Adds an event handler that runs when an input element's value\n is changed.", + "description": + [ "An element receives a `change` event when a user changes the value", + " in an input element.", + "", + " A `change` event is not triggered when you change an element's value using", + " the element's [`value`](#value) property.", + "", + " Because `onChange()` is fired before validations are performed, do not check", + " any of the validation properties in the `onChange()` event handler. For example,", + " do not code an if statement that checks the `valid` property in the `onChange()`", + " because the property at this point contains values prior to the `onChange()`.", + "", + " You can also [define an event handler using the Properties and Events panel](https://support.wix.com/en/article/velo-reacting-to-user-actions-using-events)." ], + "links": [], + "examples": + [ { "title": "Get the value of the element that was changed", + "body": + [ "$w(\"#myElement\").onChange( (event) => {", + " let newValue = event.target.value; // \"new value\"", + "});" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { "eventType": "change" } } ], + "callbacks": [], + "messages": + [ { "name": "option", + "locations": + [ { "lineno": 153, + "filename": "PanelRadioButtonGroup.js" } ], + "docs": + { "summary": "An object representing a radio button option.", + "links": [], + "examples": [], + "extra": + { } }, + "members": + [ { "name": "label", + "type": "string", + "doc": "The label of the radio button option. This is what a user sees." }, + { "name": "value", + "type": "string", + "doc": "The value of the radio button option. This is what you use in code." } ], + "extra": + { }, + "labels": [] } ], + "extra": + { "queryable": true } } \ No newline at end of file diff --git a/panel-elements/$w/PanelRichText.service.json b/panel-elements/$w/PanelRichText.service.json new file mode 100644 index 0000000000..6636842f74 --- /dev/null +++ b/panel-elements/$w/PanelRichText.service.json @@ -0,0 +1,180 @@ +{ "name": "PanelRichText", + "memberOf": "$w", + "mixes": + [ "$w.HiddenCollapsedMixin", + "$w.Element" ], + "labels": [], + "location": + { "lineno": 1, + "filename": "PanelRichText.js" }, + "docs": + { "summary": "A rich text element is used in the Blocks panel builder to display text followed by a link.", + "description": + [ "Panel rich text elements are used to display text followed by a link. ", + "> **Important**: ", + "> This element is available only in [custom panels built in Blocks](https://support.wix.com/en/article/wix-blocks-designing-custom-panels-for-your-widgets-action-bar-buttons). ", + "> [Wix Blocks](https://support.wix.com/en/article/wix-blocks-check-out-our-articles) is a workspace for building Wix apps. It is currently a Beta version, open to a limited number of users." ], + "links": [], + "examples": [], + "extra": + { } }, + "properties": + [ { "name": "divider", + "labels": [], + "get": true, + "set": true, + "type": "string", + "locations": + [ { "lineno": 96, + "filename": "PanelRichText.js" }, + { "lineno": 112, + "filename": "PanelRichText.js" } ], + "docs": + { "summary": "Sets or gets the type of divider displayed under the element.", + "description": + [ "The divider type can be:", + "* `\"LONG\"`", + "* `\"SHORT\"`", + "* `\"NONE\"`" ], + "links": [], + "examples": + [ { "title": "Get an element's divider type", + "body": + [ "let divider = $w(\"#myElement\").divider; // \"none\"" ], + "extra": + { } }, + { "title": "Set an element's divider type", + "body": + [ "$w(\"#myElement\").divider = \"NONE\";" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "link", + "labels": [], + "get": true, + "set": true, + "type": "string", + "locations": + [ { "lineno": 35, + "filename": "PanelRichText.js" }, + { "lineno": 46, + "filename": "PanelRichText.js" } ], + "docs": + { "summary": "Sets or gets the URL of the rich text's link", + "links": [], + "examples": + [ { "title": "Get the URL of the rich text's link", + "body": + [ "let myUrl = $w(\"myRichText\").link; // \"https://mysite.com\"" ], + "extra": + { } }, + { "title": "Set the URL of the rich text's link", + "body": + [ "$w(\"#myRichText\").link = “https://www.mysite.com”;" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "linkLabel", + "labels": [], + "get": true, + "set": true, + "type": "string", + "locations": + [ { "lineno": 52, + "filename": "PanelRichText.js" }, + { "lineno": 63, + "filename": "PanelRichText.js" } ], + "docs": + { "summary": "Sets or gets the label of the rich text's link", + "links": [], + "examples": + [ { "title": "Get the label of the rich text's link", + "body": + [ "let mylinkLabel = $w(\"#myRichText\").linkLabel; // \"My Site\"" ], + "extra": + { } }, + { "title": "Set the label of the rich text's link", + "body": + [ "$w(\"#myRichText\").linkLabel = “My Site”" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "target", + "labels": [], + "get": true, + "set": true, + "type": "string", + "locations": + [ { "lineno": 70, + "filename": "PanelRichText.js" }, + { "lineno": 90, + "filename": "PanelRichText.js" } ], + "docs": + { "summary": "Sets or gets the target of the rich text's link", + "description": + [ "The link's `target` determines where it opens. The", + " target can be set so the link opens in the current page or", + " in a new page.", + "", + " Supported values are:", + "", + " + `\"_blank\"`: The link opens in a new tab or window.", + " + `\"_self\"`: The link opens in the tab or window." ], + "links": [], + "examples": + [ { "title": "Get the target of the rich text's link", + "body": + [ "let myLinkTarget = $w(\"#myRichText\").linkLabel; // \"_blank\"" ], + "extra": + { } }, + { "title": "Set the target of the rich text's link", + "body": + [ "$w(\"#myRichText\").target = “_blank”" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "text", + "labels": [], + "get": true, + "set": true, + "type": "string", + "locations": + [ { "lineno": 18, + "filename": "PanelRichText.js" }, + { "lineno": 29, + "filename": "PanelRichText.js" } ], + "docs": + { "summary": "Sets or gets the text part of the rich text element (without the link). Maximum length is 120,000 characters.", + "links": [], + "examples": + [ { "title": "Get the rich text's text", + "body": + [ "let myContent = $w(\"myRichText\").text; // \"Some text\"" ], + "extra": + { } }, + { "title": "Set the rich text's text", + "body": + [ "$w(\"#myRichText\").text = \"Some text\";" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } } ], + "operations": [], + "callbacks": [], + "messages": [], + "extra": + { "queryable": true } } \ No newline at end of file diff --git a/panel-elements/$w/PanelSectionDivider.service.json b/panel-elements/$w/PanelSectionDivider.service.json new file mode 100644 index 0000000000..f01aed6601 --- /dev/null +++ b/panel-elements/$w/PanelSectionDivider.service.json @@ -0,0 +1,87 @@ +{ "name": "PanelSectionDivider", + "memberOf": "$w", + "mixes": + [ "$w.HiddenCollapsedMixin", + "$w.Element" ], + "labels": + [ "changed" ], + "location": + { "lineno": 1, + "filename": "PanelSectionDivider.js" }, + "docs": + { "summary": "Displays a section heading in the Blocks panel.", + "description": + [ "Panel section dividers allow the app creator to divide a panel into several sections and name each one of them. ", + "", + "> **Important**: ", + "> This element is available only in [custom panels built in Blocks](https://support.wix.com/en/article/wix-blocks-designing-custom-panels-for-your-widgets-action-bar-buttons). ", + "> [Wix Blocks](https://support.wix.com/en/article/wix-blocks-check-out-our-articles) is a workspace for building Wix apps. It is currently a Beta version, open to a limited number of users." ], + "links": [], + "examples": [], + "extra": + { } }, + "properties": + [ { "name": "label", + "labels": [], + "get": true, + "set": true, + "type": "string", + "locations": + [ { "lineno": 39, + "filename": "PanelSectionDivider.js" }, + { "lineno": 50, + "filename": "PanelSectionDivider.js" } ], + "docs": + { "summary": "Sets or gets the label of an element. Maximum length is 120 characters.", + "links": [], + "examples": + [ { "title": "Get an element's label", + "body": + [ "let label = $w(\"#myElement\").label; // \"My element's label\"" ], + "extra": + { } }, + { "title": "Set an element's label", + "body": + [ "$w(\"#myElement\").label = \"New Label\";" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "tooltip", + "labels": [], + "get": true, + "set": true, + "type": "string", + "locations": + [ { "lineno": 19, + "filename": "PanelSectionDivider.js" }, + { "lineno": 33, + "filename": "PanelSectionDivider.js" } ], + "docs": + { "summary": "Sets or gets an element's tooltip.", + "description": + [ "Setting the `tooltip` property defines the text that is displayed when a user hovers on an element's ![tooltip-icon](images/tooltip-icon.png) icon.", + "Maximum length is 1200 characters." ], + "links": [], + "examples": + [ { "title": "Get an element's tooltip", + "body": + [ "let tooltip = $w(\"#myElement\").tooltip; // \"Tooltip text\"" ], + "extra": + { } }, + { "title": "Set an element's tooltip", + "body": + [ "$w(\"#myElement\").tooltip = \"New tooltip\";" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } } ], + "operations": [], + "callbacks": [], + "messages": [], + "extra": + { "queryable": true } } \ No newline at end of file diff --git a/panel-elements/$w/PanelSlider.service.json b/panel-elements/$w/PanelSlider.service.json new file mode 100644 index 0000000000..d8d29d9616 --- /dev/null +++ b/panel-elements/$w/PanelSlider.service.json @@ -0,0 +1,310 @@ +{ "name": "PanelSlider", + "memberOf": "$w", + "mixes": + [ "$w.HiddenCollapsedMixin", + "$w.Element", + "$w.DisabledMixin" ], + "labels": [], + "location": + { "lineno": 1, + "filename": "PanelSlider.js" }, + "docs": + { "summary": "Panel sliders allow site creators to select a number from a given range.", + "description": + [ "Panel sliders offer site creators a way to input a number by sliding a \"handle\" one way or the other along a track. You can set the range of values for the slider and also its default value.", + "", + "> **Important**: ", + "> This element is available only in [custom panels built in Blocks](https://support.wix.com/en/article/wix-blocks-designing-custom-panels-for-your-widgets-action-bar-buttons). ", + "> [Wix Blocks](https://support.wix.com/en/article/wix-blocks-check-out-our-articles) is a workspace for building Wix apps. It is currently a Beta version, open to a limited number of users." ], + "links": [], + "examples": [], + "extra": + { } }, + "properties": + [ { "name": "divider", + "labels": [], + "get": true, + "set": true, + "type": "string", + "locations": + [ { "lineno": 102, + "filename": "PanelSlider.js" }, + { "lineno": 118, + "filename": "PanelSlider.js" } ], + "docs": + { "summary": "Sets or gets the type of divider displayed under the element.", + "description": + [ "The divider type can be:", + "* `\"LONG\"`", + "* `\"SHORT\"`", + "* `\"NONE\"`" ], + "links": [], + "examples": + [ { "title": "Get an element's divider type", + "body": + [ "let divider = $w(\"#myElement\").divider; // \"none\"" ], + "extra": + { } }, + { "title": "Set an element's divider type", + "body": + [ "$w(\"#myElement\").divider = \"NONE\";" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "label", + "labels": [], + "get": true, + "set": true, + "type": "string", + "locations": + [ { "lineno": 60, + "filename": "PanelSlider.js" }, + { "lineno": 71, + "filename": "PanelSlider.js" } ], + "docs": + { "summary": "Sets or gets the label of an element. Maximum length is 120 characters.", + "links": [], + "examples": + [ { "title": "Get an element's label", + "body": + [ "let label = $w(\"#myElement\").label; // \"My element's label\"" ], + "extra": + { } }, + { "title": "Set an element's label", + "body": + [ "$w(\"#myElement\").label = \"New Label\";" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "max", + "labels": [], + "get": true, + "set": true, + "type": "number", + "locations": + [ { "lineno": 168, + "filename": "PanelSlider.js" }, + { "lineno": 179, + "filename": "PanelSlider.js" } ], + "docs": + { "summary": "Sets or gets the slider's maximum value.", + "links": [], + "examples": + [ { "title": "Get a slider's maximum value", + "body": + [ "let sliderMax = $w(\"#mySlider\").max; // 10" ], + "extra": + { } }, + { "title": "Set a slider's maximum value", + "body": + [ "$w(\"#mySlider\").max = 10;" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "min", + "labels": [], + "get": true, + "set": true, + "type": "number", + "locations": + [ { "lineno": 151, + "filename": "PanelSlider.js" }, + { "lineno": 162, + "filename": "PanelSlider.js" } ], + "docs": + { "summary": "Sets or gets the slider's minimum value.", + "links": [], + "examples": + [ { "title": "Get a slider's minimum value", + "body": + [ "let sliderMin = $w(\"#mySlider\").min; // 0" ], + "extra": + { } }, + { "title": "Set a slider's minimum value", + "body": + [ "$w(\"#mySlider\").min = 0;" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "step", + "labels": [], + "get": true, + "set": true, + "type": "number", + "locations": + [ { "lineno": 185, + "filename": "PanelSlider.js" }, + { "lineno": 196, + "filename": "PanelSlider.js" } ], + "docs": + { "summary": "Sets or gets the slider's step value.", + "links": [], + "examples": + [ { "title": "Get a slider's step value", + "body": + [ "let sliderStep = $w(\"#mySlider\").step; // 5" ], + "extra": + { } }, + { "title": "Set a slider's step value", + "body": + [ "$w(\"#mySlider\").step = 5;" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "tooltip", + "labels": [], + "get": true, + "set": true, + "type": "string", + "locations": + [ { "lineno": 41, + "filename": "PanelSlider.js" }, + { "lineno": 54, + "filename": "PanelSlider.js" } ], + "docs": + { "summary": "Sets or gets an element's tooltip. Maximum length is 1200 characters.", + "description": + [ "Setting the `tooltip` property defines the text that is displayed when a user hovers on an element's ![tooltip-icon](images/tooltip-icon.png) icon." ], + "links": [], + "examples": + [ { "title": "Get an element's tooltip", + "body": + [ "let tooltip = $w(\"#myElement\").tooltip; // \"Tooltip text\"" ], + "extra": + { } }, + { "title": "Set an element's tooltip", + "body": + [ "$w(\"#myElement\").tooltip = \"New tooltip\";" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "unit", + "labels": [], + "get": true, + "set": true, + "type": "string", + "locations": + [ { "lineno": 77, + "filename": "PanelSlider.js" }, + { "lineno": 94, + "filename": "PanelSlider.js" } ], + "docs": + { "summary": "Sets or gets the unit of a slider's numeric input.", + "description": + [ "A panel slider can only have one of the following `unit` values:", + "* `\"NUMBER\"`", + "* `\"PERCENTAGE\"`", + "* `\"PIXELS\"`", + "* `\"ANGLE\"`" ], + "links": [], + "examples": + [ { "title": "Get an element's label", + "body": + [ "let unit = $w(\"#myPanelSlider\").unit; // \"NUMBER\"" ], + "extra": + { } }, + { "title": "Set an element's label", + "body": + [ "$w(\"#myElement\").unit = \"PIXELS\";" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "value", + "labels": [], + "get": true, + "set": true, + "type": "number", + "locations": + [ { "lineno": 20, + "filename": "PanelSlider.js" }, + { "lineno": 35, + "filename": "PanelSlider.js" } ], + "docs": + { "summary": "Sets or gets the value of the slider.", + "description": + [ "Sets or gets the value of the slider. `value` is not bound by the [`min`](#min) or", + "[`max`](#max) values set for the slider.", + "> **Note**: Changing an element's `value` in code does not trigger an `onChange` event." ], + "links": [], + "examples": + [ { "title": "Get a slider's value", + "body": + [ "let sliderValue = $w(\"#mySlider\").value; // 46" ], + "extra": + { } }, + { "title": "Set a slider's value", + "body": + [ "$w(\"#mySlider\").value = 46;" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } } ], + "operations": + [ { "name": "onChange", + "labels": [], + "nameParams": [], + "params": + [ { "name": "handler", + "type": "$w.EventHandler", + "doc": "The name of the function or\n the function expression to run when the element's value changes." } ], + "ret": + { "type": "$w.Element", + "doc": "The element on which the event is now registered." }, + "locations": + [ { "lineno": 124, + "filename": "PanelSlider.js" } ], + "docs": + { "summary": "Adds an event handler that runs when an input element's value\n is changed.", + "description": + [ "An element receives a `change` event when a user changes the value", + " in an input element.", + "", + " A `change` event is not triggered when you change an element's value using", + " the element's [`value`](#value) property.", + "", + " Because `onChange()` is fired before validations are performed, do not check", + " any of the validation properties in the `onChange()` event handler. For example,", + " do not code an if statement that checks the `valid` property in the `onChange()`", + " because the property at this point contains values prior to the `onChange()`.", + "", + " You can also [define an event handler using the Properties and Events panel](https://support.wix.com/en/article/velo-reacting-to-user-actions-using-events)." ], + "links": [], + "examples": + [ { "title": "Get the value of the element that was changed", + "body": + [ "$w(\"#myElement\").onChange( (event) => {", + " let newValue = event.target.value; // \"new value\"", + "});" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { "eventType": "change" } } ], + "callbacks": [], + "messages": [], + "extra": + { "queryable": true } } \ No newline at end of file diff --git a/panel-elements/$w/PanelTextInput.service.json b/panel-elements/$w/PanelTextInput.service.json new file mode 100644 index 0000000000..aa1d93739f --- /dev/null +++ b/panel-elements/$w/PanelTextInput.service.json @@ -0,0 +1,273 @@ +{ "name": "PanelTextInput", + "memberOf": "$w", + "mixes": + [ "$w.HiddenCollapsedMixin", + "$w.Element", + "$w.DisabledMixin" ], + "labels": [], + "location": + { "lineno": 1, + "filename": "PanelTextInput.js" }, + "docs": + { "summary": "An input element in a Blocks panel for capturing small amounts of text.", + "description": + [ "A panel text input is an input field that receives strings.", + "", + "> **Important**: ", + "> This element is available only in [custom panels built in Blocks](https://support.wix.com/en/article/wix-blocks-designing-custom-panels-for-your-widgets-action-bar-buttons). ", + "> [Wix Blocks](https://support.wix.com/en/article/wix-blocks-check-out-our-articles) is a workspace for building Wix apps. It is currently a Beta version, open to a limited number of users." ], + "links": [], + "examples": [], + "extra": + { } }, + "properties": + [ { "name": "divider", + "labels": [], + "get": true, + "set": true, + "type": "string", + "locations": + [ { "lineno": 98, + "filename": "PanelTextInput.js" }, + { "lineno": 114, + "filename": "PanelTextInput.js" } ], + "docs": + { "summary": "Sets or gets the type of divider displayed under the element.", + "description": + [ "The divider type can be:", + "* `\"LONG\"`", + "* `\"SHORT\"`", + "* `\"NONE\"`" ], + "links": [], + "examples": + [ { "title": "Get an element's divider type", + "body": + [ "let divider = $w(\"#myElement\").divider; // \"none\"" ], + "extra": + { } }, + { "title": "Set an element's divider type", + "body": + [ "$w(\"#myElement\").divider = \"NONE\";" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "label", + "labels": [], + "get": true, + "set": true, + "type": "string", + "locations": + [ { "lineno": 63, + "filename": "PanelTextInput.js" }, + { "lineno": 74, + "filename": "PanelTextInput.js" } ], + "docs": + { "summary": "Sets or gets the label of an element. Maximum length is 120 characters.", + "links": [], + "examples": + [ { "title": "Get an element's label", + "body": + [ "let label = $w(\"#myElement\").label; // \"My element's label\"" ], + "extra": + { } }, + { "title": "Set an element's label", + "body": + [ "$w(\"#myElement\").label = \"New Label\";" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "maxLength", + "labels": [], + "get": true, + "set": true, + "type": "number", + "locations": + [ { "lineno": 137, + "filename": "PanelTextInput.js" }, + { "lineno": 148, + "filename": "PanelTextInput.js" } ], + "docs": + { "summary": "Sets or gets the maximum number of characters in the input text.", + "links": [], + "examples": + [ { "title": "Get a text input's maximum length", + "body": + [ "let myLength = $w(\"#myTextInput\").maxLength; // 20" ], + "extra": + { } }, + { "title": "Set a text input's maximum length", + "body": + [ "$w(\"#myTextInput\").maxLength = 20;" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "placeholder", + "labels": [], + "get": true, + "set": true, + "type": "string", + "locations": + [ { "lineno": 81, + "filename": "PanelTextInput.js" }, + { "lineno": 92, + "filename": "PanelTextInput.js" } ], + "docs": + { "summary": "Sets or gets the placeholder text of an element.", + "links": [], + "examples": + [ { "title": "Get an element's placeholder", + "body": + [ "let label = $w(\"#myElement\").placeholder; // \"Type your name\"" ], + "extra": + { } }, + { "title": "Set an element's placeholder", + "body": + [ "$w(\"#myElement\").placeholder = \"New Placeholder\";" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "readOnly", + "labels": [], + "get": true, + "set": true, + "type": "boolean", + "locations": + [ { "lineno": 120, + "filename": "PanelTextInput.js" }, + { "lineno": 131, + "filename": "PanelTextInput.js" } ], + "docs": + { "summary": "Sets or gets whether the value of the input element is read-only (cannot be modified by users).", + "links": [], + "examples": + [ { "title": "Get whether the value of the input element is read-only", + "body": + [ "let isReadOnly = $w(\"#myTextInput\").readOnly; // true" ], + "extra": + { } }, + { "title": "Set the value of the input element to be read-only", + "body": + [ "$w(\"#myTextInput\").readOnly = true;" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "tooltip", + "labels": [], + "get": true, + "set": true, + "type": "string", + "locations": + [ { "lineno": 43, + "filename": "PanelTextInput.js" }, + { "lineno": 57, + "filename": "PanelTextInput.js" } ], + "docs": + { "summary": "Sets or gets an element's tooltip.", + "description": + [ "Setting the `tooltip` property defines the text that is displayed when a user hovers on an element's ![tooltip-icon](images/tooltip-icon.png) icon.", + "Maximum length is 1200 characters." ], + "links": [], + "examples": + [ { "title": "Get an element's tooltip", + "body": + [ "let tooltip = $w(\"#myElement\").tooltip; // \"Tooltip text\"" ], + "extra": + { } }, + { "title": "Set an element's tooltip", + "body": + [ "$w(\"#myElement\").tooltip = \"New tooltip\";" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "value", + "labels": [], + "get": true, + "set": true, + "type": "string", + "locations": + [ { "lineno": 20, + "filename": "PanelTextInput.js" }, + { "lineno": 36, + "filename": "PanelTextInput.js" } ], + "docs": + { "summary": "Sets or gets an element's value.\n Maximum length is 120 characters. \n To reset the element, restoring any placeholder text, set the value\n property to `null` or `undefined`.\n\n> **Note**: Changing an element's `value` in code does not trigger an `onChange` event.", + "links": [], + "examples": + [ { "title": "Get an element's value", + "body": + [ "let myValue = $w(\"#myElement\").value; // \"option-1\"" ], + "extra": + { } }, + { "title": "Set an element's value", + "body": + [ "$w(\"#myElement\").value = \"option-1\";" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } } ], + "operations": + [ { "name": "onChange", + "labels": [], + "nameParams": [], + "params": + [ { "name": "handler", + "type": "$w.EventHandler", + "doc": "The name of the function or\n the function expression to run when the element's value changes." } ], + "ret": + { "type": "$w.Element", + "doc": "The element on which the event is now registered." }, + "locations": + [ { "lineno": 154, + "filename": "PanelTextInput.js" } ], + "docs": + { "summary": "Adds an event handler that runs when an input element's value\n is changed.", + "description": + [ "An element receives a `change` event when a user changes the value", + " in an input element.", + "", + " A `change` event is not triggered when you change an element's value using", + " the element's [`value`](#value) property.", + "", + " Because `onChange()` is fired before validations are performed, do not check", + " any of the validation properties in the `onChange()` event handler. For example,", + " do not code an if statement that checks the `valid` property in the `onChange()`", + " because the property at this point contains values prior to the `onChange()`.", + "", + " You can also [define an event handler using the Properties and Events panel](https://support.wix.com/en/article/velo-reacting-to-user-actions-using-events)." ], + "links": [], + "examples": + [ { "title": "Get the value of the element that was changed", + "body": + [ "$w(\"#myElement\").onChange( (event) => {", + " let newValue = event.target.value; // \"new value\"", + "});" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { "eventType": "change" } } ], + "callbacks": [], + "messages": [], + "extra": + { "queryable": true } } \ No newline at end of file diff --git a/panel-elements/$w/PanelThumbnails.service.json b/panel-elements/$w/PanelThumbnails.service.json new file mode 100644 index 0000000000..0b03cee81b --- /dev/null +++ b/panel-elements/$w/PanelThumbnails.service.json @@ -0,0 +1,328 @@ +{ "name": "PanelThumbnails", + "memberOf": "$w", + "mixes": + [ "$w.HiddenCollapsedMixin", + "$w.Element" ], + "labels": [], + "location": + { "lineno": 1, + "filename": "PanelThumbnails.js" }, + "docs": + { "summary": "A Panel thumbnail groups allow users to select an option using a set of thumbnail images in a Blocks panel.", + "description": + [ "Panel thumbnail groups allow users to select an option using a set of thumbnail images.", + "", + "> **Important**: ", + "> This element is available only in [custom panels built in Blocks](https://support.wix.com/en/article/wix-blocks-designing-custom-panels-for-your-widgets-action-bar-buttons). ", + "> [Wix Blocks](https://support.wix.com/en/article/wix-blocks-check-out-our-articles) is a workspace for building Wix apps. It is currently a Beta version, open to a limited number of users." ], + "links": [], + "examples": [], + "extra": + { } }, + "properties": + [ { "name": "columnCount", + "labels": [], + "get": true, + "set": true, + "type": "number", + "locations": + [ { "lineno": 159, + "filename": "PanelThumbnails.js" }, + { "lineno": 170, + "filename": "PanelThumbnails.js" } ], + "docs": + { "summary": "Sets or gets the number of thumbnail columns. Minimum is 1, maximum is 5.", + "links": [], + "examples": + [ { "title": "Get the number of columns", + "body": + [ "let columns = $w(\"#myThumbnails\").columnCount; // 2" ], + "extra": + { } }, + { "title": "Set the number of columns", + "body": + [ "$w(\"#myThumbnails\").columnCount = 2;" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "divider", + "labels": [], + "get": true, + "set": true, + "type": "string", + "locations": + [ { "lineno": 79, + "filename": "PanelThumbnails.js" }, + { "lineno": 95, + "filename": "PanelThumbnails.js" } ], + "docs": + { "summary": "Sets or gets the type of divider displayed under the element.", + "description": + [ "The divider type can be:", + "* `\"LONG\"`", + "* `\"SHORT\"`", + "* `\"NONE\"`" ], + "links": [], + "examples": + [ { "title": "Get an element's divider type", + "body": + [ "let divider = $w(\"#myElement\").divider; // \"none\"" ], + "extra": + { } }, + { "title": "Set an element's divider type", + "body": + [ "$w(\"#myElement\").divider = \"NONE\";" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "label", + "labels": [], + "get": true, + "set": true, + "type": "string", + "locations": + [ { "lineno": 61, + "filename": "PanelThumbnails.js" }, + { "lineno": 72, + "filename": "PanelThumbnails.js" } ], + "docs": + { "summary": "Sets or gets the label of an element. Maximum length is 120 characters.", + "links": [], + "examples": + [ { "title": "Get an element's label", + "body": + [ "let label = $w(\"#myElement\").label; // \"My element's label\"" ], + "extra": + { } }, + { "title": "Set an element's label", + "body": + [ "$w(\"#myElement\").label = \"New Label\";" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "options", + "labels": [], + "get": true, + "set": true, + "type": + { "name": "Array", + "typeParams": + [ "$w.PanelThumbnails.option" ] }, + "locations": + [ { "lineno": 101, + "filename": "PanelThumbnails.js" }, + { "lineno": 115, + "filename": "PanelThumbnails.js" } ], + "docs": + { "summary": "Sets or gets the options in the thumbnail group.", + "description": + [ "`options` is an array of objects, each representing an option available to a user." ], + "links": [], + "examples": + [ { "title": "Get the list of options and the first option's label and value from a thumbnail group", + "body": + [ "let ThumbnailGroupOptions = $w(\"#myThumbnails\").options;", + "", + "let firstLabel = ThumbnailGroupOptions[0].label; // \"First Label\"", + "let firstValue = ThumbnailGroupOptions[0].value; // \"first_value\"" ], + "extra": + { } }, + { "title": "Set the list of options for a thumbnail group", + "body": + [ "$w(\"#myThumbnails\").options = [", + " {\"label\": \"Who's on first!\", \"value\": \"first\"},", + " {\"label\": \"What's on second\", \"value\": \"second\"},", + " {\"label\": \"I Don't Know is on third\", \"value\": \"third\"}", + "];" ], + "extra": + { } }, + { "title": "Add an option to a thumbnail group", + "body": + [ "let opts = $w(\"#myThumbnails\").options;", + "opts.push({\"label\": \"New Label\", \"value\": \"New Value\"});", + "$w(\"#myThumbnails\").options = opts;" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "selectedIndex", + "labels": [], + "get": true, + "set": true, + "type": "number", + "locations": + [ { "lineno": 130, + "filename": "PanelThumbnails.js" }, + { "lineno": 153, + "filename": "PanelThumbnails.js" } ], + "docs": + { "summary": "Gets the index of the selected option.", + "description": + [ "Setting the `selectedIndex` property sets the option at", + " that index to be the selected option. To set one of the options to be", + " selected, set the `selectedIndex` property to an index between `0` and", + " `options.length - 1`.", + "", + " To reset the dropdown to have no option", + " selected, set the `selectedIndex` property to `undefined`.", + "", + " Getting the `selectedIndex` property returns the index of", + " the currently selected option. If no value is selected, the", + " `selectedIndex` property returns `undefined`." ], + "links": [], + "examples": + [ { "title": "Get the selected index", + "body": + [ "let selectedIndex = $w(\"#myThumbnails\").selectedIndex; // 0" ], + "extra": + { } }, + { "title": "Set the selected index", + "body": + [ "$w(\"#myThumbnails\").selectedIndex = 0;" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "tooltip", + "labels": [], + "get": true, + "set": true, + "type": "string", + "locations": + [ { "lineno": 41, + "filename": "PanelThumbnails.js" }, + { "lineno": 55, + "filename": "PanelThumbnails.js" } ], + "docs": + { "summary": "Sets or gets an element's tooltip.", + "description": + [ "Setting the `tooltip` property defines the text that is displayed when a user hovers on an element's ![tooltip-icon](images/tooltip-icon.png) icon. ", + "The maximum tooltip length is 1200 characters." ], + "links": [], + "examples": + [ { "title": "Get an element's tooltip", + "body": + [ "let tooltip = $w(\"#myElement\").tooltip; // \"Tooltip text\"" ], + "extra": + { } }, + { "title": "Set an element's tooltip", + "body": + [ "$w(\"#myElement\").tooltip = \"New tooltip\";" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "value", + "labels": [], + "get": true, + "set": true, + "type": "string", + "locations": + [ { "lineno": 19, + "filename": "PanelThumbnails.js" }, + { "lineno": 35, + "filename": "PanelThumbnails.js" } ], + "docs": + { "summary": "Sets or gets an element's value.", + "description": + [ "Maximum length is 120 characters. ", + "To reset the element, set the value", + " property to `null` or `undefined`.", + "> **Note**: Changing an element's `value` in code does not trigger an `onChange` event." ], + "links": [], + "examples": + [ { "title": "Get an element's value", + "body": + [ "let myValue = $w(\"#myElement\").value; // \"option-1\"" ], + "extra": + { } }, + { "title": "Set an element's value", + "body": + [ "$w(\"#myElement\").value = \"option-1\";" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } } ], + "operations": + [ { "name": "onChange", + "labels": [], + "nameParams": [], + "params": + [ { "name": "handler", + "type": "$w.EventHandler", + "doc": "The name of the function or\n the function expression to run when the element's value changes." } ], + "ret": + { "type": "$w.Element", + "doc": "The element on which the event is now registered." }, + "locations": + [ { "lineno": 177, + "filename": "PanelThumbnails.js" } ], + "docs": + { "summary": "Adds an event handler that runs when an input element's value\n is changed.", + "description": + [ "An element receives a `change` event when a user changes the value", + " in an input element.", + "", + " A `change` event is not triggered when you change an element's value using", + " the element's [`value`](#value) property.", + "", + " Because `onChange()` is fired before validations are performed, do not check", + " any of the validation properties in the `onChange()` event handler. For example,", + " do not code an if statement that checks the `valid` property in the `onChange()`", + " because the property at this point contains values prior to the `onChange()`.", + "", + " You can also [define an event handler using the Properties and Events panel](https://support.wix.com/en/article/velo-reacting-to-user-actions-using-events)." ], + "links": [], + "examples": + [ { "title": "Get the value of the element that was changed", + "body": + [ "$w(\"#myElement\").onChange( (event) => {", + " let newValue = event.target.value; // \"new value\"", + "});" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { "eventType": "change" } } ], + "callbacks": [], + "messages": + [ { "name": "option", + "locations": + [ { "lineno": 122, + "filename": "PanelThumbnails.js" } ], + "docs": + { "summary": "An object representing a thumbnail option.", + "links": [], + "examples": [], + "extra": + { } }, + "members": + [ { "name": "label", + "type": "string", + "doc": "The label of the thumbnail option, optionally displayed below the thumbnail. Maximum 120 chars." }, + { "name": "value", + "type": "string", + "doc": "The value of the thumbnail option. This is what you use in code." } ], + "extra": + { }, + "labels": [] } ], + "extra": + { "queryable": true } } \ No newline at end of file diff --git a/panel-elements/$w/PanelToggleSwitch.service.json b/panel-elements/$w/PanelToggleSwitch.service.json new file mode 100644 index 0000000000..7a2940f26d --- /dev/null +++ b/panel-elements/$w/PanelToggleSwitch.service.json @@ -0,0 +1,157 @@ +{ "name": "PanelToggleSwitch", + "memberOf": "$w", + "mixes": + [ "$w.HiddenCollapsedMixin", + "$w.Element", + "$w.DisabledMixin" ], + "labels": [], + "location": + { "lineno": 1, + "filename": "PanelToggleSwitch.js" }, + "docs": + { "summary": "Toggle switches are used in a Blocks panel for a single binary choice.", + "description": + [ "Panel toggle switches are used in a Blocks panel for a single binary choice.", + "> **Important**: ", + "> This element is available only in [custom panels built in Blocks](https://support.wix.com/en/article/wix-blocks-designing-custom-panels-for-your-widgets-action-bar-buttons). ", + "> [Wix Blocks](https://support.wix.com/en/article/wix-blocks-check-out-our-articles) is a workspace for building Wix apps. It is currently a Beta version, open to a limited number of users." ], + "links": [], + "examples": [], + "extra": + { } }, + "properties": + [ { "name": "checked", + "labels": [], + "get": true, + "set": true, + "type": "boolean", + "locations": + [ { "lineno": 38, + "filename": "PanelToggleSwitch.js" }, + { "lineno": 49, + "filename": "PanelToggleSwitch.js" } ], + "docs": + { "summary": "Sets or gets whether the toggle switch is on or off.", + "links": [], + "examples": + [ { "title": "Get whether a switch is toggled on or off", + "body": + [ "let isChecked = $w(\"#mySwitch\").checked; // true" ], + "extra": + { } }, + { "title": "Set a switch to be toggled on", + "body": + [ "$w(\"#mySwitch\").checked = true;" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "divider", + "labels": [], + "get": true, + "set": true, + "type": "string", + "locations": + [ { "lineno": 56, + "filename": "PanelToggleSwitch.js" }, + { "lineno": 72, + "filename": "PanelToggleSwitch.js" } ], + "docs": + { "summary": "Sets or gets the type of divider displayed under the element.", + "description": + [ "The divider type can be:", + "* `\"LONG\"`", + "* `\"SHORT\"`", + "* `\"NONE\"`" ], + "links": [], + "examples": + [ { "title": "Get an element's divider type", + "body": + [ "let divider = $w(\"#myElement\").divider; // \"none\"" ], + "extra": + { } }, + { "title": "Set an element's divider type", + "body": + [ "$w(\"#myElement\").divider = \"NONE\";" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "label", + "labels": [], + "get": true, + "set": true, + "type": "string", + "locations": + [ { "lineno": 19, + "filename": "PanelToggleSwitch.js" }, + { "lineno": 30, + "filename": "PanelToggleSwitch.js" } ], + "docs": + { "summary": "Sets or gets the label of an element. Maximum length is 120 characters.", + "links": [], + "examples": + [ { "title": "Get an element's label", + "body": + [ "let label = $w(\"#myElement\").label; // \"My element's label\"" ], + "extra": + { } }, + { "title": "Set an element's label", + "body": + [ "$w(\"#myElement\").label = \"New Label\";" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } } ], + "operations": + [ { "name": "onChange", + "labels": [], + "nameParams": [], + "params": + [ { "name": "handler", + "type": "$w.EventHandler", + "doc": "The name of the function or\n the function expression to run when the element's value changes." } ], + "ret": + { "type": "$w.Element", + "doc": "The element on which the event is now registered." }, + "locations": + [ { "lineno": 80, + "filename": "PanelToggleSwitch.js" } ], + "docs": + { "summary": "Adds an event handler that runs when an input element's value\n is changed.", + "description": + [ "An element receives a `change` event when a user changes the value", + " in an input element.", + "", + " A `change` event is not triggered when you change an element's value using", + " the element's [`value`](#value) property.", + "", + " Because `onChange()` is fired before validations are performed, do not check", + " any of the validation properties in the `onChange()` event handler. For example,", + " do not code an if statement that checks the `valid` property in the `onChange()`", + " because the property at this point contains values prior to the `onChange()`.", + "", + " You can also [define an event handler using the Properties and Events panel](https://support.wix.com/en/article/velo-reacting-to-user-actions-using-events)." ], + "links": [], + "examples": + [ { "title": "Get the value of the element that was changed", + "body": + [ "$w(\"#myElement\").onChange( (event) => {", + " let newValue = event.target.value; // \"new value\"", + "});" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { "eventType": "change" } } ], + "callbacks": [], + "messages": [], + "extra": + { "queryable": true } } \ No newline at end of file diff --git a/wix-editor/wix-editor.service.json b/wix-editor/wix-editor.service.json new file mode 100644 index 0000000000..acba3a3a82 --- /dev/null +++ b/wix-editor/wix-editor.service.json @@ -0,0 +1,347 @@ +{ "name": "wix-editor", + "mixes": [], + "labels": + [ "changed" ], + "location": + { "lineno": 1, + "filename": "editor.js" }, + "docs": + { "summary": "The wix-editor module contains functionality for working with the Editor from [Blocks Panel](https://support.wix.com/en/article/creating-custom-panels-for-your-widgets-action-bar-buttons) code.", + "description": + [ "> **This module is available only in Wix Blocks** ", + "> [Wix Blocks](https://support.wix.com/en/article/wix-blocks-check-out-our-articles) is a workspace for building Wix apps. It is currently a Beta version, open to a limited number of users.", + "", + "The Editor API is used within the code of panels built with the [Blocks Panel Builder](https://support.wix.com/en/article/creating-custom-panels-for-your-widgets-action-bar-buttons).", + "It enables your panel to interact with the Wix editors by removing or restoring widget elements, opening Dashboard panels, and more.", + "To use the Editor API, import `wixEditor` from the `wix-editor` module:", + "", + "```javascript", + "import wixEditor from 'wix-editor';", + "```" ], + "links": [], + "examples": [], + "extra": + { } }, + "properties": [], + "operations": + [ { "name": "getCurrentViewport", + "labels": [], + "nameParams": [], + "params": [], + "ret": + { "type": + { "name": "Promise", + "typeParams": + [ "wix-editor.Viewport" ] }, + "doc": "Fulfilled - Object with the current Editor viewport." }, + "locations": + [ { "lineno": 111, + "filename": "editor.js" } ], + "docs": + { "summary": "Gets the viewport currently selected in the Editor.", + "description": + [ "The `getCurrentViewport()` function returns a Promise that resolves to an object containing details about the currently selected viewport." ], + "links": [], + "examples": + [ { "title": "Get the current viewport", + "body": + [ "import wixEditor from 'wix-editor';", + "", + "// ...", + "", + "const viewport = await wixEditor.getCurrentViewport(); ", + "", + "/* Returns:", + "", + "{", + " type: \"DESKTOP\",", + " range: {", + " minWidth: 1001,", + " maxWidth: undefined", + " }", + "}", + "", + "*/" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "isRemoved", + "labels": [], + "nameParams": [], + "params": + [ { "name": "selector", + "type": "string", + "doc": "An element selector." } ], + "ret": + { "type": + { "name": "Promise", + "typeParams": + [ "void" ] }, + "doc": "Fulfilled - `true` if the element was removed and `false` if it exists." }, + "locations": + [ { "lineno": 73, + "filename": "editor.js" } ], + "docs": + { "summary": "Checks if an element is removed from the widget.", + "description": + [ "The `isRemoved()` function returns a Promise that resolves to `true` if the element is removed.", + "", + "The element selector is a string with the hash symbol (`#`) followed by the ID of the item you want to select (e.g. `\"#myElement\"`)." ], + "links": [], + "examples": + [ { "title": "Check if an element is removed", + "body": + [ "import wixEditor from 'wix-editor';", + "", + "// ...", + "", + "const isRemoved = await wixEditor.isRemoved('#title');" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "listRemovedElements", + "labels": [], + "nameParams": [], + "params": [], + "ret": + { "type": + { "name": "Promise", + "typeParams": + [ { "name": "Array", + "typeParams": + [ "string" ] } ] }, + "doc": "Fulfilled - A list of of selectors of removed elements." }, + "locations": + [ { "lineno": 87, + "filename": "editor.js" } ], + "docs": + { "summary": "Gets a list of all removed widget elements.", + "description": + [ "The `listRemovedElements()` function returns a Promise that resolves to a list of selectors of removed elements that are part of the widget with which the panel is associated, for example: `[‘title’, ‘description’]`." ], + "links": [], + "examples": + [ { "title": "Get all the removed elements", + "body": + [ "import wixEditor from 'wix-editor';", + "", + "// ...", + "", + "const allRemovedElements = wixEditor.listRemovedElements(); // [\"#title\", \"#button1\"]" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "openDashboardPanel", + "labels": [], + "nameParams": [], + "params": + [ { "name": "options", + "type": "wix-editor.DashboardOptions", + "doc": "Relative URL for the Dashboard page." } ], + "ret": + { "type": + { "name": "Promise", + "typeParams": + [ "void" ] }, + "doc": "Fulfilled - when the Dashboard is open." }, + "locations": + [ { "lineno": 98, + "filename": "editor.js" } ], + "docs": + { "summary": "Opens the [Dashboard](https://support.wix.com/en/article/about-your-wix-dashboard) for the current site.", + "description": + [ "The `openDashboardPanel()` function returns a Promise that resolves when the Dashboard is open.", + "The `url` parameter specifies the page to open within the Dashboard." ], + "links": [], + "examples": + [ { "title": "Open a dashboard panel", + "body": + [ "import wixEditor from 'wix-editor';", + "", + "// ...", + "", + "wixEditor.openDashboardPanel({url: 'blog'});" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "removeElement", + "labels": [], + "nameParams": [], + "params": + [ { "name": "selector", + "type": "string", + "doc": "An element selector." } ], + "ret": + { "type": + { "name": "Promise", + "typeParams": + [ "void" ] }, + "doc": "Fulfilled - when the element is removed." }, + "locations": + [ { "lineno": 40, + "filename": "editor.js" } ], + "docs": + { "summary": "Removes a widget element from the stage.", + "description": + [ "The `removeElement()` function returns a Promise that is resolved when the element is removed. You can only remove elements that are part of the widget with which the panel is associated. ", + "The element selector is a string with the hash symbol (`#`) followed by the ID of the item you want to select (for example, `\"#myElement\"`). To select an element that is nested within an internal widget, include both the inner widget's ID and the nested element's ID, separated by a space, for example: `\"#inner-widget #text1\"`." ], + "links": + [ "[restoreElement( )](#restoreElement)", + "[isRemoved( )](#isRemoved)" ], + "examples": + [ { "title": "Remove an element", + "body": + [ "import wixEditor from 'wix-editor';", + "", + "// ...", + "", + "wixEditor.removeElement('#title');" ], + "extra": + { } }, + { "title": "Use a toggle switch to remove/restore a widget element", + "body": + [ "// In this example, we use a toggle switch to remove or restore an element in our widget.", + "", + "import wixEditor from 'wix-editor';", + "", + "$w.onReady(async function () {", + " $w('#toggleSwitch').onClick(async (event) => {", + " if (event.target.value) {", + " await wixEditor.removeElement('#title');", + " } else {", + " await wixEditor.restoreElement('#title');", + " }", + " });", + "});" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "restoreElement", + "labels": [], + "nameParams": [], + "params": + [ { "name": "selector", + "type": "string", + "doc": "An element selector." } ], + "ret": + { "type": + { "name": "Promise", + "typeParams": + [ "void" ] }, + "doc": "Fulfilled - when the element is restored." }, + "locations": + [ { "lineno": 56, + "filename": "editor.js" } ], + "docs": + { "summary": "Restores (shows) a widget element on the stage.", + "description": + [ "The `restoreElement()` function returns a Promise that is resolved when the element is restored. You can only restore elements that are part of the widget with which the panel is associated.", + "", + "The element selector is a string with the hash symbol (`#`) followed by the ID of the item you want to select (for example, `\"#myElement\"`). To select an element that is nested within an internal widget, include both the inner widget's ID and the nested element's ID, separated by a space, for example: `\"#inner-widget #text1\"`." ], + "links": + [ "[removeElement( )](#removeElement)", + "[isRemoved( )](#isRemoved)" ], + "examples": + [ { "title": "Show an element", + "body": + [ "import wixEditor from 'wix-editor';", + "", + "// ...", + "", + "wixEditor.restoreElement('#title');" ], + "extra": + { } }, + { "title": "Use a toggle switch to remove/restore a widget element", + "body": + [ "// In this example, we use a toggle switch to remove or restore an element in our widget.", + "", + "import wixEditor from 'wix-editor';", + "", + "$w.onReady(async function () {", + " $w('#toggleSwitch').onClick(async (event) => {", + " if (event.target.value) {", + " await wixEditor.removeElement('#title');", + " } else {", + " await wixEditor.restoreElement('#title');", + " }", + " });", + "});" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } } ], + "callbacks": [], + "messages": + [ { "name": "DashboardOptions", + "locations": + [ { "lineno": 17, + "filename": "editor.js" } ], + "docs": + { "summary": "An object representing the Dashboard parameters.", + "links": [], + "examples": [], + "extra": + { } }, + "members": + [ { "name": "url", + "type": "string", + "doc": "The relative URL to open in the Business Manager." } ], + "extra": + { }, + "labels": [] }, + { "name": "Viewport", + "locations": + [ { "lineno": 24, + "filename": "editor.js" } ], + "docs": + { "summary": "An object representing the current viewport.", + "links": [], + "examples": [], + "extra": + { } }, + "members": + [ { "name": "type", + "type": "string", + "doc": "Type of viewport (`DESKTOP`, `MOBILE`, or `TABLET`)" }, + { "type": "wix-editor.viewportRange" } ], + "extra": + { }, + "labels": [] }, + { "name": "viewportRange", + "locations": + [ { "lineno": 32, + "filename": "editor.js" } ], + "docs": + { "summary": "An object representing the current viewport's range.", + "links": [], + "examples": [], + "extra": + { } }, + "members": + [ { "name": "minWidth", + "type": "number", + "doc": "Minimum range in pixels for the current viewport." }, + { "name": "maxWidth", + "type": "number", + "doc": "Maximum range in pixels for the current viewport." } ], + "extra": + { }, + "labels": [] } ], + "extra": + { } } \ No newline at end of file diff --git a/wix-widget/wix-widget.service.json b/wix-widget/wix-widget.service.json new file mode 100644 index 0000000000..9087417e25 --- /dev/null +++ b/wix-widget/wix-widget.service.json @@ -0,0 +1,181 @@ +{ "name": "wix-widget", + "mixes": [], + "labels": + [ "changed" ], + "location": + { "lineno": 1, + "filename": "widget.js" }, + "docs": + { "summary": "The wix-widget module contains functionality for working with Blocks widgets from [Blocks Panel](https://support.wix.com/en/article/creating-custom-panels-for-your-widgets-action-bar-buttons) code.", + "description": + [ "> **This module is available only in Wix Blocks** ", + "> [Wix Blocks](https://support.wix.com/en/article/wix-blocks-check-out-our-articles) is a workspace for building Wix apps. It is currently a Beta version, open to a limited number of users.", + "", + "The `wix-widget` API is used within the code of panels built with the [Blocks Panel Builder](https://support.wix.com/en/article/creating-custom-panels-for-your-widgets-action-bar-buttons).", + "It enables your panel to interact with your Blocks widgets by controlling their properties, design presets, and more. ", + "To use this API, import `wixWidget` from the `wix-widget` module:", + "", + "```javascript", + "import wixWidget from 'wix-widget';", + "```" ], + "links": [], + "examples": [], + "extra": + { } }, + "properties": [], + "operations": + [ { "name": "getDesignPreset", + "labels": [], + "nameParams": [], + "params": [], + "ret": + { "type": + { "name": "Promise", + "typeParams": + [ "string" ] }, + "doc": "Fulfilled - Current preset name." }, + "locations": + [ { "lineno": 40, + "filename": "widget.js" } ], + "docs": + { "summary": "Gets the widget's current design preset.", + "description": + [ "The `getDesignPreset()` function returns a Promise that resolves to the widget's current preset name." ], + "links": [], + "examples": + [ { "title": "Get a widget's design preset", + "body": + [ "import wixWidget from 'wix-widget';", + "", + "// ...", + "", + "const designPreset = await wixWidget.getDesignPreset(); // \"preset-1-wide\"" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "getProps", + "labels": + [ "changed" ], + "nameParams": [], + "params": [], + "ret": + { "type": + { "name": "Promise", + "typeParams": + [ "Object" ] }, + "doc": "Fulfilled - Object with all of the widget's properties." }, + "locations": + [ { "lineno": 17, + "filename": "widget.js" } ], + "docs": + { "summary": "Gets the widget's [properties](https://support.wix.com/en/article/wix-blocks-widget-api-properties).", + "description": + [ "The `getProps()` function returns a Promise that resolves to an object with all of the widget's properties." ], + "links": [], + "examples": + [ { "title": "Get a widget's properties", + "body": + [ "import wixWidget from 'wix-widget';", + "", + "// ...", + "", + "const props = await wixWidget.getProps(); // {country: \"us\", upperLimit: 7}" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "setDesignPreset", + "labels": [], + "nameParams": [], + "params": + [ { "name": "preset", + "type": "string", + "doc": "Preset name." } ], + "ret": + { "type": + { "name": "Promise", + "typeParams": + [ "void" ] }, + "doc": "Fulfilled - when the design preset is set." }, + "locations": + [ { "lineno": 51, + "filename": "widget.js" } ], + "docs": + { "summary": "Sets the widget's design preset.", + "description": + [ "The `setDesignPreset()` function returns a Promise that resolves when the design preset is set." ], + "links": [], + "examples": + [ { "title": "Set a widget's design preset", + "body": + [ "import wixWidget from 'wix-widget';", + "", + "// ...", + "", + "await wixWidget.setDesignPreset('Mobile');" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } }, + { "name": "setProps", + "labels": + [ "changed" ], + "nameParams": [], + "params": + [ { "name": "props", + "type": "Object", + "doc": "Object with some or all of the widget's properties." } ], + "ret": + { "type": + { "name": "Promise", + "typeParams": + [ "void" ] }, + "doc": "Fulfilled - when the properties are set." }, + "locations": + [ { "lineno": 28, + "filename": "widget.js" } ], + "docs": + { "summary": "Sets the widget's [properties](https://support.wix.com/en/article/wix-blocks-widget-api-properties). You can also assign a partial subset of the widget's properties.", + "description": + [ "The `setProps()` function returns a Promise that resolves when the properties are set." ], + "links": [], + "examples": + [ { "title": "Set a widget's properties", + "body": + [ "import wixWidget from 'wix-widget';", + "", + "// ...", + "", + "await wixWidget.setProps({ saleIndicator: \"No Sale\" });" ], + "extra": + { } } ], + "extra": + { } }, + "extra": + { } } ], + "callbacks": [], + "messages": + [ { "name": "WidgetProps", + "locations": + [ { "lineno": 62, + "filename": "widget.js" } ], + "docs": + { "summary": "An object representing a set of widget properties.", + "links": [], + "examples": [], + "extra": + { } }, + "members": [], + "extra": + { }, + "labels": + [ "removed" ] } ], + "extra": + { } } \ No newline at end of file diff --git a/wixcode-bookings/wix-bookings/guides/Shareable Booking Form Links.md b/wixcode-bookings/wix-bookings/guides/Shareable Booking Form Links.md new file mode 100644 index 0000000000..7a18e27cfe --- /dev/null +++ b/wixcode-bookings/wix-bookings/guides/Shareable Booking Form Links.md @@ -0,0 +1,109 @@ + + +# Sharing a link to a preloaded booking form + +Once you add Wix Bookings, [certain pages](https://support.wix.com/en/article/about-wix-bookings-pages#get-details-you-need-from-clients-with-the-booking-form) are automatically added to your site. +You use these pages to run all aspects of your Booking business; from creating services to managing your schedule each week. +You can also customize each of the pages to suit your business and brand. + +Another way you can customize the client's booking experience is by updating the Booking Form page, which is the last page in the booking process, so that it is preloaded with default values. This way, your clients can skip the preceding pages and proceed directly to the Booking Form page. To do this, create and share a link to a Wix site's [booking form](https://support.wix.com/en/article/wix-bookings-creating-and-setting-up-your-booking-forms) with preset, default values you choose. You set the values by adding query parameters to the Booking Form page URL. + +By preloading booking form values, you can simplify the customer's booking experience when they sign up for a service. + +For example, if you are sending out invitations by email as part of promoting a class or a customer needs to sign up to a haircut, you can add a shareable link in the email that already contains the event ID, date, and time. The recipient can click the link and just enter their own personal details without having to enter the event details also. + +You can set default values for these fields: + ++ `bookings_startDate` and `bookings_endDate` ++ `bookings_timezone` ++ `bookings_resourceId` ++ `bookings_locationId` ++ `bookings_sessionId` ++ `bookings_serviceId` + +Note that each type of session requires a specific set of minimum parameters when constructing the URL. These sets of parameters correspond to the information the client would have had to select if they were progressing manually through the booking pages. +You can refer to the list below for the specific parameters required for each type of session + ++ Classes: `bookings_sessionId` and `bookings_timezone` ++ Courses: `bookings_serviceId` and `bookings_timezone` ++ Appointments: `bookings_serviceId`, `bookings_resourceId`, `bookings_startDate`, `bookings_endDate` and `bookings_timezone` + +## Creating a link to a preloaded booking form + +To create a URL with query parameters for creating a preloaded booking form, follow these steps: + +1. Get the Wix site's [Booking Form page URL](#booking-form-page-url). +2. Determine which [query parameters](#query-parameters) you want to use. + +### Getting the URL for the Booking Form page + +You can find the full URL for a Wix site's Booking Form page by navigating to the published page in a browser. + +Alternatively, you can construct the full URL for a Booking Form page on the basis of the site URL and the slug for the service. +The full URL for a Booking Form page is: + +```url +https:///booking-form? +``` + +To find the service slug using the Dashboard: + +1. Log into the Dashboard. +2. Click **Booking Services** in the sidebar menu. +3. Hover over the desired service in the list of services to make the **Edit** button appear. +4. Click **Edit** to open the page for managing the service. +5. Scroll down to the "Marketing & SEO" section on the right. +6. Click **Edit SEO Settings** to open the "SEO Settings" section. +7. The service slug appears in the "URL slug" field. + +For example, if a Wix site's URL is `www.my-example-site.com` and the service slug is `initial-consultation`, the shared link URL is: + +```url +https://www.my-example-site.com/booking-form/initial-consultation +``` + +### Choosing which settings to preload + +Attach any of the following query parameters to a Wix site Booking Form page URL to preset the booking form settings: + +| Query Parameter | Description | +| --------------- | ----------- | +| `bookings_resourceId` | The selected resource, identified by ID.| +| `bookings_timezone` | Default time zone for the Booking Form page, in [tz database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) format. For example: `America/Santiago`. **Note:** You can only select a time zone the page supports as an option. For more information, see [Setting the Time Zone Display](https://support.wix.com/en/article/setting-the-time-zone-display-in-wix-bookings).| +| `bookings_startDate` | Initial date to open in the Booking Form page, in `YYYY-MM-DDTHH:mmsss.SSS` format. | +| `bookings_endDate` | End date for the Booking Form Page, in `YYYY-MM-DDTHH:mmsss.SSS` format. | +| `bookings_locationId` | Business location, identified by ID.| +| `bookings_sessionId` | ID of session, needed for classes. | +| `bookings_serviceId` | ID of a service, needed for courses.| + +Velo APIs are the best way to get the IDs for the query parameters: + ++ For classes, use [`listSessions()`](/wix-bookings-v2/sessions/listsessions). ++ For appointments use [`queryAvailability`](/wix-bookings-v2/availabilitycalendar/queryavailability). + +## Examples + +The following are examples of shareable links for a Wix site's Booking Form page with query parameters that that set preloaded values. + +Preloading the class and the timezone: + +```url +www.your-site.com/booking-form?bookings_sessionId=y38a2405-0c8d-4ab9-9542-a440395c1747&bookings_timezone=Ireland/Dublin +``` + +Preloading the course and time-zone: + +```url +www.your-site.com/booking-form?bookings_serviceId=38a2405-0c8d-4ab9-9542-a440395c1747&bookings_timezone=Australia/Sidney +``` + +Preloading the appointment, with a resource, start date, end date and time zone: + +```url +www.your-site.com/booking-form?bookings_serviceId=38a2205-0c8d-5ad9-8877-a440395c1747&bookings_resourceId=76570209-101f-409b-af97-b445bdb63125&bookings_startDate=2023-02-20T10:00:00.000&bookings_endDate=2023-02-20T11:00:00.000&bookings_timezone=Jerusalem/Israel +``` + +## Sending the link to the client + + You can send the link through various channels such as email, chat, or text, depending on what you think is the most appropriate. + From 755b0bbd5c009cfd8103e8c8c50bc9459117a615 Mon Sep 17 00:00:00 2001 From: Wix Docs Feds Date: Wed, 12 Jul 2023 09:16:17 +0000 Subject: [PATCH 21/45] Auto commit to autodocs-wix-forum-v2 from WixDocs Server --- .../wix-forum-v2/Categories.service.json | 174 ++++++++++++++++++ 1 file changed, 174 insertions(+) diff --git a/wix-forum-v2/wix-forum-v2/Categories.service.json b/wix-forum-v2/wix-forum-v2/Categories.service.json index 55c9b77478..abc08d9cb0 100644 --- a/wix-forum-v2/wix-forum-v2/Categories.service.json +++ b/wix-forum-v2/wix-forum-v2/Categories.service.json @@ -808,6 +808,36 @@ ] } }, + { + "name": "Keyword", + "members": [ + { + "name": "isMain", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the keyword is the main focus keyword." + }, + { + "name": "term", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Keyword value." + } + ], + "docs": { + "description": [ + "" + ] + } + }, { "name": "MarkAllPostsAsReadOptions", "members": [ @@ -1151,6 +1181,150 @@ ] } }, + { + "name": "SeoSchema", + "members": [ + { + "name": "settings", + "optional": true, + "type": [ + { + "referenceType": "wix-forum-v2.Categories.Settings" + } + ], + "doc": "SEO general settings." + }, + { + "name": "tags", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-forum-v2.Categories.Tag" + } + ] + } + } + ], + "doc": "SEO tag information." + } + ], + "docs": { + "description": [ + "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.\nThe search engines use this information for ranking purposes, or to display snippets in the search results.\nThis data will override other sources of tags (for example patterns) and will be included in the section of the HTML document, while not being displayed on the page itself." + ] + } + }, + { + "name": "Settings", + "members": [ + { + "name": "keywords", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-forum-v2.Categories.Keyword" + } + ] + } + } + ], + "doc": "User-selected keyword terms for a specific page." + }, + { + "name": "preventAutoRedirect", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the Auto Redirect feature, which creates `301 redirects` on a slug change, is enabled.\n\nDefault: `false` (Auto Redirect is enabled.)\n" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "Tag", + "members": [ + { + "name": "children", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "SEO tag inner content. For example, ` inner content `." + }, + { + "name": "custom", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the tag is a custom tag." + }, + { + "name": "disabled", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the tag is disabled." + }, + { + "name": "meta", + "optional": true, + "type": [ + { + "nativeType": "Object" + } + ], + "doc": "SEO tag meta data. For example, `{height: 300, width: 240}`." + }, + { + "name": "props", + "optional": true, + "type": [ + { + "nativeType": "Object" + } + ], + "doc": "A `{'key':'value'}` pair object where each SEO tag property (`'name'`, `'content'`, `'rel'`, `'href'`) contains a value.\nFor example: `{'name': 'description', 'content': 'the description itself'}`." + }, + { + "name": "type", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "SEO tag type.\n\nSupported values: `title`, `meta`, `script`, `link`.\n" + } + ], + "docs": { + "description": [ + "" + ] + } + }, { "name": "UpdateCategoryOptions", "members": [ From b217745bde6f2660fd96b9171db0522cdfeed903 Mon Sep 17 00:00:00 2001 From: Wix Docs Feds Date: Wed, 12 Jul 2023 09:20:37 +0000 Subject: [PATCH 22/45] Auto commit to autodocs-wix-forum-v2 from WixDocs Server --- wix-forum-v2/wix-forum-v2/Events.service.json | 177 ++++++++++++++++++ 1 file changed, 177 insertions(+) diff --git a/wix-forum-v2/wix-forum-v2/Events.service.json b/wix-forum-v2/wix-forum-v2/Events.service.json index 96ce3dc220..f3fedeb675 100644 --- a/wix-forum-v2/wix-forum-v2/Events.service.json +++ b/wix-forum-v2/wix-forum-v2/Events.service.json @@ -1472,6 +1472,36 @@ ] } }, + { + "name": "forumV1CategoryKeyword", + "members": [ + { + "name": "isMain", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the keyword is the main focus keyword." + }, + { + "name": "term", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Keyword value." + } + ], + "docs": { + "description": [ + "" + ] + } + }, { "name": "forumV1CategoryMarkAllPostsAsReadRequest", "members": [ @@ -1735,6 +1765,153 @@ ] } }, + { + "name": "forumV1CategorySeoSchema", + "members": [ + { + "name": "settings", + "optional": true, + "type": [ + { + "referenceType": "wix-forum-v2.Events.forumV1CategorySettings", + "displayName": "Settings" + } + ], + "doc": "SEO general settings." + }, + { + "name": "tags", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-forum-v2.Events.forumV1CategoryTag", + "displayName": "Tag" + } + ] + } + } + ], + "doc": "SEO tag information." + } + ], + "docs": { + "description": [ + "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.\nThe search engines use this information for ranking purposes, or to display snippets in the search results.\nThis data will override other sources of tags (for example patterns) and will be included in the section of the HTML document, while not being displayed on the page itself." + ] + } + }, + { + "name": "forumV1CategorySettings", + "members": [ + { + "name": "keywords", + "optional": true, + "type": [ + { + "complexType": { + "nativeType": "Array", + "typeParams": [ + { + "referenceType": "wix-forum-v2.Events.forumV1CategoryKeyword", + "displayName": "Keyword" + } + ] + } + } + ], + "doc": "User-selected keyword terms for a specific page." + }, + { + "name": "preventAutoRedirect", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the Auto Redirect feature, which creates `301 redirects` on a slug change, is enabled.\n\nDefault: `false` (Auto Redirect is enabled.)\n" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "forumV1CategoryTag", + "members": [ + { + "name": "children", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "SEO tag inner content. For example, ` inner content `." + }, + { + "name": "custom", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the tag is a custom tag." + }, + { + "name": "disabled", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the tag is disabled." + }, + { + "name": "meta", + "optional": true, + "type": [ + { + "nativeType": "Object" + } + ], + "doc": "SEO tag meta data. For example, `{height: 300, width: 240}`." + }, + { + "name": "props", + "optional": true, + "type": [ + { + "nativeType": "Object" + } + ], + "doc": "A `{'key':'value'}` pair object where each SEO tag property (`'name'`, `'content'`, `'rel'`, `'href'`) contains a value.\nFor example: `{'name': 'description', 'content': 'the description itself'}`." + }, + { + "name": "type", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "SEO tag type.\n\nSupported values: `title`, `meta`, `script`, `link`.\n" + } + ], + "docs": { + "description": [ + "" + ] + } + }, { "name": "forumV1CategoryUpdateCategoryRequest", "members": [ From 3eee5aaa6aeb74420fc396a56a1f1dc24dca7488 Mon Sep 17 00:00:00 2001 From: Wix Docs Feds Date: Wed, 27 Sep 2023 07:53:12 +0000 Subject: [PATCH 23/45] Auto commit to autodocs-wix-forum-v2 from WixDocs Server --- .../wix-forum-v2/Categories.service.json | 25 ++++++++++++------- wix-forum-v2/wix-forum-v2/Posts.service.json | 25 ++++++++++++------- 2 files changed, 32 insertions(+), 18 deletions(-) diff --git a/wix-forum-v2/wix-forum-v2/Categories.service.json b/wix-forum-v2/wix-forum-v2/Categories.service.json index abc08d9cb0..6ab39d975d 100644 --- a/wix-forum-v2/wix-forum-v2/Categories.service.json +++ b/wix-forum-v2/wix-forum-v2/Categories.service.json @@ -29,7 +29,7 @@ "referenceType": "wix-forum-v2.Categories.GetCategoryOptions" } ], - "doc": "Options specifying which fields to return.\n", + "doc": "Options specifying which fields to return.", "required": false } ], @@ -53,7 +53,9 @@ }, "docs": { "summary": "Returns a single category by ID.", - "description": [], + "description": [ + "This function is not a universal function and runs only on the backend." + ], "examples": [ { "title": "getCategory example", @@ -81,7 +83,8 @@ "id": "maturity-beta" } ], - "syntaxName": "getCategory" + "syntaxName": "getCategory", + "isAdminMethod": true }, { "name": "getCategoryBySlug", @@ -103,7 +106,7 @@ "referenceType": "wix-forum-v2.Categories.GetCategoryBySlugOptions" } ], - "doc": "Options specifying which fields to return.\n", + "doc": "Options specifying which fields to return.", "required": false } ], @@ -127,7 +130,9 @@ }, "docs": { "summary": "Returns a single category by URL slug.", - "description": [], + "description": [ + "This function is not a universal function and runs only on the backend." + ], "examples": [ { "title": "getCategoryBySlug example", @@ -155,7 +160,8 @@ "id": "maturity-beta" } ], - "syntaxName": "getCategoryBySlug" + "syntaxName": "getCategoryBySlug", + "isAdminMethod": true }, { "name": "queryCategories", @@ -167,7 +173,7 @@ "referenceType": "wix-forum-v2.Categories.QueryCategoriesOptions" } ], - "doc": "Options for sorting, filtering, paging, and specifying return fields.\n", + "doc": "Options for sorting, filtering, paging, and specifying return fields.", "required": false } ], @@ -190,7 +196,7 @@ "docs": { "summary": "Returns a list of categories by [query](https://github.com/wix-private/platformization-guidelines/blob/master/Server/API-Query.md)", "description": [ - "Paging\n- limit: default - 10, min - 0, max - 100\n- offset: default - 0, min - 0\n\nFilterable fields:\n- id\n- parentId\n- name\n- rank\n- headerTitle\n- headerType\n- headerDescription\n- postCount\n- postViewCount\n- slug\n\nSortable fields:\n- rank\n- postCount\n- postViewCount" + "Paging\n- limit: default - 10, min - 0, max - 100\n- offset: default - 0, min - 0\n\nFilterable fields:\n- id\n- parentId\n- name\n- rank\n- headerTitle\n- headerType\n- headerDescription\n- postCount\n- postViewCount\n- slug\n\nSortable fields:\n- rank\n- postCount\n- postViewCount\n\nThis function is not a universal function and runs only on the backend." ], "examples": [ { @@ -219,7 +225,8 @@ "id": "maturity-beta" } ], - "syntaxName": "queryCategories" + "syntaxName": "queryCategories", + "isAdminMethod": true } ], "messages": [ diff --git a/wix-forum-v2/wix-forum-v2/Posts.service.json b/wix-forum-v2/wix-forum-v2/Posts.service.json index 012ab60be5..e33c3e1c84 100644 --- a/wix-forum-v2/wix-forum-v2/Posts.service.json +++ b/wix-forum-v2/wix-forum-v2/Posts.service.json @@ -29,7 +29,7 @@ "referenceType": "wix-forum-v2.Posts.GetPostOptions" } ], - "doc": "Options specifying which additional fields to return.\n", + "doc": "Options specifying which additional fields to return.", "required": false } ], @@ -53,7 +53,9 @@ }, "docs": { "summary": "Retrieves a single post by ID.", - "description": [], + "description": [ + "This function is not a universal function and runs only on the backend." + ], "examples": [ { "title": "getPost example", @@ -81,7 +83,8 @@ "id": "maturity-beta" } ], - "syntaxName": "getPost" + "syntaxName": "getPost", + "isAdminMethod": true }, { "name": "getPostBySlug", @@ -103,7 +106,7 @@ "referenceType": "wix-forum-v2.Posts.GetPostBySlugOptions" } ], - "doc": "Options specifying which additional fields to return.\n", + "doc": "Options specifying which additional fields to return.", "required": false } ], @@ -127,7 +130,9 @@ }, "docs": { "summary": "Retrieves a single post by URL slug.", - "description": [], + "description": [ + "This function is not a universal function and runs only on the backend." + ], "examples": [ { "title": "getPostBySlug example", @@ -155,7 +160,8 @@ "id": "maturity-beta" } ], - "syntaxName": "getPostBySlug" + "syntaxName": "getPostBySlug", + "isAdminMethod": true }, { "name": "queryPosts", @@ -167,7 +173,7 @@ "referenceType": "wix-forum-v2.Posts.QueryPostsOptions" } ], - "doc": "Options for sorting, filtering, paging, and specifying return fields.\n", + "doc": "Options for sorting, filtering, paging, and specifying return fields.", "required": false } ], @@ -190,7 +196,7 @@ "docs": { "summary": "Returns a list of posts by query.", "description": [ - "Paging\n- limit: default - 10, min - 0, max - 100\n- offset: default - 0, min - 0\n\nFilterable fields:\n- id\n- categoryId\n- ownerId\n- title\n- contentText\n- bestAnswerCommentId\n- pinned\n- commentingEnabled\n- commentCount\n- likeCount\n- viewCount\n- createdDate\n- editedDate\n- lastActivityDate\n- slug\n\nSortable fields:\n- lastActivityDate\n- createdDate\n- commentCount\n- viewCount\n- likeCount\n- pinned" + "Paging\n- limit: default - 10, min - 0, max - 100\n- offset: default - 0, min - 0\n\nFilterable fields:\n- id\n- categoryId\n- ownerId\n- title\n- contentText\n- bestAnswerCommentId\n- pinned\n- commentingEnabled\n- commentCount\n- likeCount\n- viewCount\n- createdDate\n- editedDate\n- lastActivityDate\n- slug\n\nSortable fields:\n- lastActivityDate\n- createdDate\n- commentCount\n- viewCount\n- likeCount\n- pinned\n\nThis function is not a universal function and runs only on the backend." ], "examples": [ { @@ -219,7 +225,8 @@ "id": "maturity-beta" } ], - "syntaxName": "queryPosts" + "syntaxName": "queryPosts", + "isAdminMethod": true } ], "messages": [ From 50e4b7ba964ba5c5220526b1642c5d1c596ed17d Mon Sep 17 00:00:00 2001 From: Wix Docs Feds Date: Wed, 25 Oct 2023 11:56:55 +0000 Subject: [PATCH 24/45] Auto commit to autodocs-wix-forum-v2 from WixDocs Server --- wix-forum-v2/wix-forum-v2/Events.service.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/wix-forum-v2/wix-forum-v2/Events.service.json b/wix-forum-v2/wix-forum-v2/Events.service.json index f3fedeb675..20364177a8 100644 --- a/wix-forum-v2/wix-forum-v2/Events.service.json +++ b/wix-forum-v2/wix-forum-v2/Events.service.json @@ -1076,7 +1076,7 @@ "displayName": "Reaction" } ], - "doc": "Defines which icon will be used for main reaction (like) on the comment under the posts created in this category." + "doc": "Defines which icon will be used for the main reaction on the comment under the posts created in this category.\n\nDefault `type`: `\"LIKE\"`.\n" }, { "name": "mainPostReaction", @@ -1087,7 +1087,7 @@ "displayName": "Reaction" } ], - "doc": "Defines which icon will be used for main reaction (like) on the posts created in this category." + "doc": "Defines which icon will be used for main reaction on the posts created in this category.\n\nDefault `type`: `\"LIKE\"`.\n" }, { "name": "name", From 19dec31602ef9ce2775d093ed2d613d4cbe66e10 Mon Sep 17 00:00:00 2001 From: Wix Docs Feds Date: Wed, 15 Nov 2023 15:42:53 +0000 Subject: [PATCH 25/45] Auto commit to autodocs-wix-forum-v2 from WixDocs Server --- wix-forum-v2/wix-forum-v2/Categories.service.json | 8 ++++---- wix-forum-v2/wix-forum-v2/Posts.service.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/wix-forum-v2/wix-forum-v2/Categories.service.json b/wix-forum-v2/wix-forum-v2/Categories.service.json index 6ab39d975d..717c2e0e52 100644 --- a/wix-forum-v2/wix-forum-v2/Categories.service.json +++ b/wix-forum-v2/wix-forum-v2/Categories.service.json @@ -194,9 +194,9 @@ "doc": null }, "docs": { - "summary": "Returns a list of categories by [query](https://github.com/wix-private/platformization-guidelines/blob/master/Server/API-Query.md)", + "summary": "Retrieves a list of categories, given the provided paging, filtering, and sorting.", "description": [ - "Paging\n- limit: default - 10, min - 0, max - 100\n- offset: default - 0, min - 0\n\nFilterable fields:\n- id\n- parentId\n- name\n- rank\n- headerTitle\n- headerType\n- headerDescription\n- postCount\n- postViewCount\n- slug\n\nSortable fields:\n- rank\n- postCount\n- postViewCount\n\nThis function is not a universal function and runs only on the backend." + "Query Categories runs with these defaults, which you can override:\n\n- `paging.limit` is `10`\n- `paging.offset` is `0`\n\nFor field support for filters and sorting,\nsee [Categories: Supported Filters and Sorting](https://dev.wix.com/docs/rest/api-reference/wix-forum/wix-forum/filter-and-sort#category-api-supported-filters-and-sorting).\n\nTo learn about working with _Query_ endpoints, see\n[API Query Language](https://dev.wix.com/api/rest/getting-started/api-query-language),\n[Sorting and Paging](https://dev.wix.com/docs/rest/articles/getting-started/sorting-and-paging),\nand [Field Projection](https://dev.wix.com/api/rest/getting-started/field-projection).\n\nThis function is not a universal function and runs only on the backend." ], "examples": [ { @@ -446,7 +446,7 @@ "referenceType": "wix-forum-v2.Categories.Reaction" } ], - "doc": "Defines which icon will be used for main reaction (like) on the comment under the posts created in this category." + "doc": "Defines which icon will be used for the main reaction on the comment under the posts created in this category.\n\nDefault `type`: `\"LIKE\"`.\n" }, { "name": "mainPostReaction", @@ -456,7 +456,7 @@ "referenceType": "wix-forum-v2.Categories.Reaction" } ], - "doc": "Defines which icon will be used for main reaction (like) on the posts created in this category." + "doc": "Defines which icon will be used for main reaction on the posts created in this category.\n\nDefault `type`: `\"LIKE\"`.\n" }, { "name": "name", diff --git a/wix-forum-v2/wix-forum-v2/Posts.service.json b/wix-forum-v2/wix-forum-v2/Posts.service.json index e33c3e1c84..28fba5c7f5 100644 --- a/wix-forum-v2/wix-forum-v2/Posts.service.json +++ b/wix-forum-v2/wix-forum-v2/Posts.service.json @@ -969,7 +969,7 @@ "referenceType": "wix-forum-v2.Posts.RecentActivity" } ], - "doc": "Recent activity of post (e.g., activity of the latest comment was added to post)." + "doc": "Recent activity of post. For example, a comment added to a post." }, { "name": "slug", From 3e651b9ac61518f0d146976a297f4944fe2f1e67 Mon Sep 17 00:00:00 2001 From: Wix Docs Feds Date: Wed, 15 Nov 2023 16:22:54 +0000 Subject: [PATCH 26/45] Auto commit to autodocs-wix-forum-v2 from WixDocs Server --- wix-forum-v2/wix-forum-v2/Events.service.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/wix-forum-v2/wix-forum-v2/Events.service.json b/wix-forum-v2/wix-forum-v2/Events.service.json index 20364177a8..2100b80e96 100644 --- a/wix-forum-v2/wix-forum-v2/Events.service.json +++ b/wix-forum-v2/wix-forum-v2/Events.service.json @@ -2588,7 +2588,7 @@ } } ], - "doc": "IDs of the marked comment for this post (selected by forum admin or post owner)." + "doc": "IDs of the marked comments for this post. Posts are marked by the forum admin or the post owner." }, { "name": "ownerId", @@ -2640,7 +2640,7 @@ "displayName": "RecentActivity" } ], - "doc": "Recent activity of post (e.g., activity of the latest comment was added to post)." + "doc": "Recent activity of post. For example, a comment added to a post." }, { "name": "slug", From f21cf9ec99e1d6289c16c64d3f70e7b99759d076 Mon Sep 17 00:00:00 2001 From: Wix Docs Feds Date: Thu, 25 Jan 2024 08:16:32 +0000 Subject: [PATCH 27/45] Auto commit to autodocs-wix-forum-v2 from WixDocs Server --- .../wix-forum-v2/Categories.service.json | 44 ++----------------- wix-forum-v2/wix-forum-v2/Posts.service.json | 44 ++----------------- 2 files changed, 6 insertions(+), 82 deletions(-) diff --git a/wix-forum-v2/wix-forum-v2/Categories.service.json b/wix-forum-v2/wix-forum-v2/Categories.service.json index 717c2e0e52..74e2df542e 100644 --- a/wix-forum-v2/wix-forum-v2/Categories.service.json +++ b/wix-forum-v2/wix-forum-v2/Categories.service.json @@ -53,9 +53,7 @@ }, "docs": { "summary": "Returns a single category by ID.", - "description": [ - "This function is not a universal function and runs only on the backend." - ], + "description": [], "examples": [ { "title": "getCategory example", @@ -130,9 +128,7 @@ }, "docs": { "summary": "Returns a single category by URL slug.", - "description": [ - "This function is not a universal function and runs only on the backend." - ], + "description": [], "examples": [ { "title": "getCategoryBySlug example", @@ -196,7 +192,7 @@ "docs": { "summary": "Retrieves a list of categories, given the provided paging, filtering, and sorting.", "description": [ - "Query Categories runs with these defaults, which you can override:\n\n- `paging.limit` is `10`\n- `paging.offset` is `0`\n\nFor field support for filters and sorting,\nsee [Categories: Supported Filters and Sorting](https://dev.wix.com/docs/rest/api-reference/wix-forum/wix-forum/filter-and-sort#category-api-supported-filters-and-sorting).\n\nTo learn about working with _Query_ endpoints, see\n[API Query Language](https://dev.wix.com/api/rest/getting-started/api-query-language),\n[Sorting and Paging](https://dev.wix.com/docs/rest/articles/getting-started/sorting-and-paging),\nand [Field Projection](https://dev.wix.com/api/rest/getting-started/field-projection).\n\nThis function is not a universal function and runs only on the backend." + "Query Categories runs with these defaults, which you can override:\n\n- `paging.limit` is `10`\n- `paging.offset` is `0`\n\nFor field support for filters and sorting,\nsee [Categories: Supported Filters and Sorting](https://dev.wix.com/docs/rest/api-reference/wix-forum/wix-forum/filter-and-sort#category-api-supported-filters-and-sorting).\n\nTo learn about working with _Query_ endpoints, see\n[API Query Language](https://dev.wix.com/api/rest/getting-started/api-query-language),\n[Sorting and Paging](https://dev.wix.com/docs/rest/articles/getting-started/sorting-and-paging),\nand [Field Projection](https://dev.wix.com/api/rest/getting-started/field-projection)." ], "examples": [ { @@ -1344,23 +1340,6 @@ } ], "doc": "Editable category data." - }, - { - "name": "fieldMask", - "optional": true, - "type": [ - { - "complexType": { - "nativeType": "Array", - "typeParams": [ - { - "nativeType": "string" - } - ] - } - } - ], - "doc": "Field mask of fields to update." } ], "docs": { @@ -1390,23 +1369,6 @@ } ], "doc": "ID of category." - }, - { - "name": "fieldMask", - "optional": true, - "type": [ - { - "complexType": { - "nativeType": "Array", - "typeParams": [ - { - "nativeType": "string" - } - ] - } - } - ], - "doc": "Field mask of fields to update." } ], "docs": { diff --git a/wix-forum-v2/wix-forum-v2/Posts.service.json b/wix-forum-v2/wix-forum-v2/Posts.service.json index 28fba5c7f5..8a0ec19ad7 100644 --- a/wix-forum-v2/wix-forum-v2/Posts.service.json +++ b/wix-forum-v2/wix-forum-v2/Posts.service.json @@ -53,9 +53,7 @@ }, "docs": { "summary": "Retrieves a single post by ID.", - "description": [ - "This function is not a universal function and runs only on the backend." - ], + "description": [], "examples": [ { "title": "getPost example", @@ -130,9 +128,7 @@ }, "docs": { "summary": "Retrieves a single post by URL slug.", - "description": [ - "This function is not a universal function and runs only on the backend." - ], + "description": [], "examples": [ { "title": "getPostBySlug example", @@ -196,7 +192,7 @@ "docs": { "summary": "Returns a list of posts by query.", "description": [ - "Paging\n- limit: default - 10, min - 0, max - 100\n- offset: default - 0, min - 0\n\nFilterable fields:\n- id\n- categoryId\n- ownerId\n- title\n- contentText\n- bestAnswerCommentId\n- pinned\n- commentingEnabled\n- commentCount\n- likeCount\n- viewCount\n- createdDate\n- editedDate\n- lastActivityDate\n- slug\n\nSortable fields:\n- lastActivityDate\n- createdDate\n- commentCount\n- viewCount\n- likeCount\n- pinned\n\nThis function is not a universal function and runs only on the backend." + "Paging\n- limit: default - 10, min - 0, max - 100\n- offset: default - 0, min - 0\n\nFilterable fields:\n- id\n- categoryId\n- ownerId\n- title\n- contentText\n- bestAnswerCommentId\n- pinned\n- commentingEnabled\n- commentCount\n- likeCount\n- viewCount\n- createdDate\n- editedDate\n- lastActivityDate\n- slug\n\nSortable fields:\n- lastActivityDate\n- createdDate\n- commentCount\n- viewCount\n- likeCount\n- pinned" ], "examples": [ { @@ -1905,23 +1901,6 @@ { "name": "UpdatePostOptions", "members": [ - { - "name": "fieldMask", - "optional": true, - "type": [ - { - "complexType": { - "nativeType": "Array", - "typeParams": [ - { - "nativeType": "string" - } - ] - } - } - ], - "doc": "Field mask of fields to update." - }, { "name": "post", "optional": true, @@ -1942,23 +1921,6 @@ { "name": "UpdatePostRequest", "members": [ - { - "name": "fieldMask", - "optional": true, - "type": [ - { - "complexType": { - "nativeType": "Array", - "typeParams": [ - { - "nativeType": "string" - } - ] - } - } - ], - "doc": "Field mask of fields to update." - }, { "name": "post", "optional": true, From 2330acf6f2a9488f992bf13bbbcadc8dac90469a Mon Sep 17 00:00:00 2001 From: Wix Docs Feds Date: Thu, 25 Jan 2024 14:31:53 +0000 Subject: [PATCH 28/45] Auto commit to autodocs-wix-forum-v2 from WixDocs Server --- wix-forum-v2/wix-forum-v2/Events.service.json | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/wix-forum-v2/wix-forum-v2/Events.service.json b/wix-forum-v2/wix-forum-v2/Events.service.json index 2100b80e96..542a894f91 100644 --- a/wix-forum-v2/wix-forum-v2/Events.service.json +++ b/wix-forum-v2/wix-forum-v2/Events.service.json @@ -1934,23 +1934,6 @@ } ], "doc": "ID of category." - }, - { - "name": "fieldMask", - "optional": true, - "type": [ - { - "complexType": { - "nativeType": "Array", - "typeParams": [ - { - "nativeType": "string" - } - ] - } - } - ], - "doc": "Field mask of fields to update." } ], "docs": { From 3deef3730a1f2c8e1300eff21512b82a6ff2c642 Mon Sep 17 00:00:00 2001 From: Wix Docs Feds Date: Fri, 26 Jan 2024 14:38:55 +0000 Subject: [PATCH 29/45] Auto commit to autodocs-wix-forum-v2 from WixDocs Server --- wix-forum-v2/wix-forum-v2/Events.service.json | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/wix-forum-v2/wix-forum-v2/Events.service.json b/wix-forum-v2/wix-forum-v2/Events.service.json index 542a894f91..1bde73df15 100644 --- a/wix-forum-v2/wix-forum-v2/Events.service.json +++ b/wix-forum-v2/wix-forum-v2/Events.service.json @@ -3862,23 +3862,6 @@ { "name": "forumV1PostUpdatePostRequest", "members": [ - { - "name": "fieldMask", - "optional": true, - "type": [ - { - "complexType": { - "nativeType": "Array", - "typeParams": [ - { - "nativeType": "string" - } - ] - } - } - ], - "doc": "Field mask of fields to update." - }, { "name": "post", "optional": true, From 443d39937f8d136f8d4dda9139bc570b07783e4b Mon Sep 17 00:00:00 2001 From: Wix Docs Feds Date: Mon, 5 Feb 2024 16:21:00 +0000 Subject: [PATCH 30/45] Auto commit to autodocs-wix-forum-v2 from WixDocs Server --- wix-forum-v2/wix-forum-v2/Categories.service.json | 4 ++-- wix-forum-v2/wix-forum-v2/Posts.service.json | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/wix-forum-v2/wix-forum-v2/Categories.service.json b/wix-forum-v2/wix-forum-v2/Categories.service.json index 74e2df542e..d3b90bf7ab 100644 --- a/wix-forum-v2/wix-forum-v2/Categories.service.json +++ b/wix-forum-v2/wix-forum-v2/Categories.service.json @@ -43,13 +43,13 @@ "nativeType": "Promise", "typeParams": [ { - "referenceType": "wix-forum-v2.Categories.CategoryResponse" + "referenceType": "wix-forum-v2.Categories.Category" } ] } } ], - "doc": null + "doc": "Retrieved category for the provided category ID.\n" }, "docs": { "summary": "Returns a single category by ID.", diff --git a/wix-forum-v2/wix-forum-v2/Posts.service.json b/wix-forum-v2/wix-forum-v2/Posts.service.json index 8a0ec19ad7..2ef989ee8f 100644 --- a/wix-forum-v2/wix-forum-v2/Posts.service.json +++ b/wix-forum-v2/wix-forum-v2/Posts.service.json @@ -43,13 +43,13 @@ "nativeType": "Promise", "typeParams": [ { - "referenceType": "wix-forum-v2.Posts.PostResponse" + "referenceType": "wix-forum-v2.Posts.Post" } ] } } ], - "doc": null + "doc": "Post for the provided post ID.\n" }, "docs": { "summary": "Retrieves a single post by ID.", From b07c4136107ecb9dc7ada4f00c464cf2448c6946 Mon Sep 17 00:00:00 2001 From: Wix Docs Feds Date: Mon, 12 Feb 2024 15:18:26 +0000 Subject: [PATCH 31/45] Auto commit to autodocs-wix-forum-v2 from WixDocs Server --- .../wix-forum-v2/Categories.service.json | 273 ++++++++++++++++++ wix-forum-v2/wix-forum-v2/Posts.service.json | 273 ++++++++++++++++++ 2 files changed, 546 insertions(+) diff --git a/wix-forum-v2/wix-forum-v2/Categories.service.json b/wix-forum-v2/wix-forum-v2/Categories.service.json index d3b90bf7ab..e8ebd69c8c 100644 --- a/wix-forum-v2/wix-forum-v2/Categories.service.json +++ b/wix-forum-v2/wix-forum-v2/Categories.service.json @@ -226,6 +226,26 @@ } ], "messages": [ + { + "name": "ActionEvent", + "members": [ + { + "name": "bodyAsJson", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, { "name": "CategoriesPaging", "members": [ @@ -757,6 +777,259 @@ ] } }, + { + "name": "DomainEvent", + "members": [ + { + "name": "_id", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Unique event ID.\nAllows clients to ignore duplicate webhooks." + }, + { + "name": "actionEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-forum-v2.Categories.ActionEvent" + } + ], + "doc": "" + }, + { + "name": "createdEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-forum-v2.Categories.EntityCreatedEvent" + } + ], + "doc": "" + }, + { + "name": "deletedEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-forum-v2.Categories.EntityDeletedEvent" + } + ], + "doc": "" + }, + { + "name": "entityEventSequence", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "A sequence number defining the order of updates to the underlying entity.\nFor example, given that some entity was updated at 16:00 and than again at 16:01,\nit is guaranteed that the sequence number of the second update is strictly higher than the first.\nAs the consumer, you can use this value to ensure that you handle messages in the correct order.\nTo do so, you will need to persist this number on your end, and compare the sequence number from the\nmessage against the one you have stored. Given that the stored number is higher, you should ignore the message." + }, + { + "name": "entityFqdn", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Assumes actions are also always typed to an entity_type\nExample: wix.stores.catalog.product, wix.bookings.session, wix.payments.transaction" + }, + { + "name": "entityId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the entity associated with the event." + }, + { + "name": "eventTime", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "Event timestamp." + }, + { + "name": "originatedFrom", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "If present, indicates the action that triggered the event." + }, + { + "name": "slug", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "This is top level to ease client code dispatching of messages (switch on entity_fqdn+slug)\nThis is although the created/updated/deleted notion is duplication of the oneof types\nExample: created/updated/deleted/started/completed/email_opened" + }, + { + "name": "triggeredByAnonymizeRequest", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the event was triggered as a result of a privacy regulation application\n(for example, GDPR)." + }, + { + "name": "updatedEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-forum-v2.Categories.EntityUpdatedEvent" + } + ], + "doc": "" + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfDomainEventBodyOneOf", + "members": [ + "actionEvent", + "createdEvent", + "deletedEvent", + "updatedEvent" + ] + } + ] + }, + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "DomainEventBodyOneOf", + "members": [ + { + "name": "actionEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-forum-v2.Categories.ActionEvent" + } + ], + "doc": "" + }, + { + "name": "createdEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-forum-v2.Categories.EntityCreatedEvent" + } + ], + "doc": "" + }, + { + "name": "deletedEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-forum-v2.Categories.EntityDeletedEvent" + } + ], + "doc": "" + }, + { + "name": "updatedEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-forum-v2.Categories.EntityUpdatedEvent" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "EntityCreatedEvent", + "members": [ + { + "name": "entityAsJson", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "EntityDeletedEvent", + "members": [ + { + "name": "deletedEntityAsJson", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Entity that was deleted" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "EntityUpdatedEvent", + "members": [ + { + "name": "currentEntityAsJson", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Since platformized APIs only expose PATCH and not PUT we can't assume that the fields sent from the client are the actual diff.\nThis means that to generate a list of changed fields (as opposed to sent fields) one needs to traverse both objects.\nWe don't want to impose this on all developers and so we leave this traversal to the notification recipients which need it." + } + ], + "docs": { + "description": [ + "" + ] + } + }, { "name": "GetCategoryBySlugOptions", "members": [ diff --git a/wix-forum-v2/wix-forum-v2/Posts.service.json b/wix-forum-v2/wix-forum-v2/Posts.service.json index 2ef989ee8f..d5a7d07c25 100644 --- a/wix-forum-v2/wix-forum-v2/Posts.service.json +++ b/wix-forum-v2/wix-forum-v2/Posts.service.json @@ -226,6 +226,26 @@ } ], "messages": [ + { + "name": "ActionEvent", + "members": [ + { + "name": "bodyAsJson", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, { "name": "AddReactionRequest", "members": [ @@ -412,6 +432,259 @@ ] } }, + { + "name": "DomainEvent", + "members": [ + { + "name": "_id", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Unique event ID.\nAllows clients to ignore duplicate webhooks." + }, + { + "name": "actionEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-forum-v2.Posts.ActionEvent" + } + ], + "doc": "" + }, + { + "name": "createdEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-forum-v2.Posts.EntityCreatedEvent" + } + ], + "doc": "" + }, + { + "name": "deletedEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-forum-v2.Posts.EntityDeletedEvent" + } + ], + "doc": "" + }, + { + "name": "entityEventSequence", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "A sequence number defining the order of updates to the underlying entity.\nFor example, given that some entity was updated at 16:00 and than again at 16:01,\nit is guaranteed that the sequence number of the second update is strictly higher than the first.\nAs the consumer, you can use this value to ensure that you handle messages in the correct order.\nTo do so, you will need to persist this number on your end, and compare the sequence number from the\nmessage against the one you have stored. Given that the stored number is higher, you should ignore the message." + }, + { + "name": "entityFqdn", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Assumes actions are also always typed to an entity_type\nExample: wix.stores.catalog.product, wix.bookings.session, wix.payments.transaction" + }, + { + "name": "entityId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the entity associated with the event." + }, + { + "name": "eventTime", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "Event timestamp." + }, + { + "name": "originatedFrom", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "If present, indicates the action that triggered the event." + }, + { + "name": "slug", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "This is top level to ease client code dispatching of messages (switch on entity_fqdn+slug)\nThis is although the created/updated/deleted notion is duplication of the oneof types\nExample: created/updated/deleted/started/completed/email_opened" + }, + { + "name": "triggeredByAnonymizeRequest", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the event was triggered as a result of a privacy regulation application\n(for example, GDPR)." + }, + { + "name": "updatedEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-forum-v2.Posts.EntityUpdatedEvent" + } + ], + "doc": "" + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfDomainEventBodyOneOf", + "members": [ + "actionEvent", + "createdEvent", + "deletedEvent", + "updatedEvent" + ] + } + ] + }, + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "DomainEventBodyOneOf", + "members": [ + { + "name": "actionEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-forum-v2.Posts.ActionEvent" + } + ], + "doc": "" + }, + { + "name": "createdEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-forum-v2.Posts.EntityCreatedEvent" + } + ], + "doc": "" + }, + { + "name": "deletedEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-forum-v2.Posts.EntityDeletedEvent" + } + ], + "doc": "" + }, + { + "name": "updatedEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-forum-v2.Posts.EntityUpdatedEvent" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "EntityCreatedEvent", + "members": [ + { + "name": "entityAsJson", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "EntityDeletedEvent", + "members": [ + { + "name": "deletedEntityAsJson", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Entity that was deleted" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "EntityUpdatedEvent", + "members": [ + { + "name": "currentEntityAsJson", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Since platformized APIs only expose PATCH and not PUT we can't assume that the fields sent from the client are the actual diff.\nThis means that to generate a list of changed fields (as opposed to sent fields) one needs to traverse both objects.\nWe don't want to impose this on all developers and so we leave this traversal to the notification recipients which need it." + } + ], + "docs": { + "description": [ + "" + ] + } + }, { "name": "GetPostBySlugOptions", "members": [ From 73e55dd7b8d24a59b2687aa3d6cfd31f9c8d33b7 Mon Sep 17 00:00:00 2001 From: Wix Docs Feds Date: Tue, 13 Feb 2024 08:04:22 +0000 Subject: [PATCH 32/45] Auto commit to autodocs-wix-forum-v2 from WixDocs Server --- wix-forum-v2/wix-forum-v2/Events.service.json | 622 +++++++++++++++++- 1 file changed, 592 insertions(+), 30 deletions(-) diff --git a/wix-forum-v2/wix-forum-v2/Events.service.json b/wix-forum-v2/wix-forum-v2/Events.service.json index 1bde73df15..3f7b29ff1f 100644 --- a/wix-forum-v2/wix-forum-v2/Events.service.json +++ b/wix-forum-v2/wix-forum-v2/Events.service.json @@ -811,6 +811,26 @@ } ], "messages": [ + { + "name": "forumV1CategoryActionEvent", + "members": [ + { + "name": "bodyAsJson", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, { "name": "forumV1CategoryBackendEventMetadata", "members": [ @@ -1219,7 +1239,7 @@ "displayName": "Category" } ], - "doc": "" + "doc": "Created category." }, { "name": "metadata", @@ -1229,7 +1249,7 @@ "displayName": "BackendEventMetadata" } ], - "doc": "" + "doc": "Event metadata." } ], "docs": { @@ -1249,7 +1269,7 @@ "displayName": "BackendEventMetadata" } ], - "doc": "" + "doc": "Event metadata." } ], "docs": { @@ -1362,7 +1382,7 @@ "displayName": "Category" } ], - "doc": "" + "doc": "Updated category." }, { "name": "metadata", @@ -1372,7 +1392,7 @@ "displayName": "BackendEventMetadata" } ], - "doc": "" + "doc": "Event metadata." } ], "docs": { @@ -1472,6 +1492,267 @@ ] } }, + { + "name": "forumV1CategoryDomainEvent", + "members": [ + { + "name": "_id", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Unique event ID.\nAllows clients to ignore duplicate webhooks." + }, + { + "name": "actionEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-forum-v2.Events.forumV1CategoryActionEvent", + "displayName": "ActionEvent" + } + ], + "doc": "" + }, + { + "name": "createdEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-forum-v2.Events.forumV1CategoryEntityCreatedEvent", + "displayName": "EntityCreatedEvent" + } + ], + "doc": "" + }, + { + "name": "deletedEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-forum-v2.Events.forumV1CategoryEntityDeletedEvent", + "displayName": "EntityDeletedEvent" + } + ], + "doc": "" + }, + { + "name": "entityEventSequence", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "A sequence number defining the order of updates to the underlying entity.\nFor example, given that some entity was updated at 16:00 and than again at 16:01,\nit is guaranteed that the sequence number of the second update is strictly higher than the first.\nAs the consumer, you can use this value to ensure that you handle messages in the correct order.\nTo do so, you will need to persist this number on your end, and compare the sequence number from the\nmessage against the one you have stored. Given that the stored number is higher, you should ignore the message." + }, + { + "name": "entityFqdn", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Assumes actions are also always typed to an entity_type\nExample: wix.stores.catalog.product, wix.bookings.session, wix.payments.transaction" + }, + { + "name": "entityId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the entity associated with the event." + }, + { + "name": "eventTime", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "Event timestamp." + }, + { + "name": "originatedFrom", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "If present, indicates the action that triggered the event." + }, + { + "name": "slug", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "This is top level to ease client code dispatching of messages (switch on entity_fqdn+slug)\nThis is although the created/updated/deleted notion is duplication of the oneof types\nExample: created/updated/deleted/started/completed/email_opened" + }, + { + "name": "triggeredByAnonymizeRequest", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the event was triggered as a result of a privacy regulation application\n(for example, GDPR)." + }, + { + "name": "updatedEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-forum-v2.Events.forumV1CategoryEntityUpdatedEvent", + "displayName": "EntityUpdatedEvent" + } + ], + "doc": "" + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfDomainEventBodyOneOf", + "members": [ + "actionEvent", + "createdEvent", + "deletedEvent", + "updatedEvent" + ] + } + ] + }, + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "forumV1CategoryDomainEventBodyOneOf", + "members": [ + { + "name": "actionEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-forum-v2.Events.forumV1CategoryActionEvent", + "displayName": "ActionEvent" + } + ], + "doc": "" + }, + { + "name": "createdEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-forum-v2.Events.forumV1CategoryEntityCreatedEvent", + "displayName": "EntityCreatedEvent" + } + ], + "doc": "" + }, + { + "name": "deletedEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-forum-v2.Events.forumV1CategoryEntityDeletedEvent", + "displayName": "EntityDeletedEvent" + } + ], + "doc": "" + }, + { + "name": "updatedEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-forum-v2.Events.forumV1CategoryEntityUpdatedEvent", + "displayName": "EntityUpdatedEvent" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "forumV1CategoryEntityCreatedEvent", + "members": [ + { + "name": "entityAsJson", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "forumV1CategoryEntityDeletedEvent", + "members": [ + { + "name": "deletedEntityAsJson", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Entity that was deleted" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "forumV1CategoryEntityUpdatedEvent", + "members": [ + { + "name": "currentEntityAsJson", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Since platformized APIs only expose PATCH and not PUT we can't assume that the fields sent from the client are the actual diff.\nThis means that to generate a list of changed fields (as opposed to sent fields) one needs to traverse both objects.\nWe don't want to impose this on all developers and so we leave this traversal to the notification recipients which need it." + } + ], + "docs": { + "description": [ + "" + ] + } + }, { "name": "forumV1CategoryKeyword", "members": [ @@ -1942,6 +2223,26 @@ ] } }, + { + "name": "forumV1PostActionEvent", + "members": [ + { + "name": "bodyAsJson", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, { "name": "forumV1PostAddReactionRequest", "members": [ @@ -2158,6 +2459,267 @@ ] } }, + { + "name": "forumV1PostDomainEvent", + "members": [ + { + "name": "_id", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Unique event ID.\nAllows clients to ignore duplicate webhooks." + }, + { + "name": "actionEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-forum-v2.Events.forumV1PostActionEvent", + "displayName": "ActionEvent" + } + ], + "doc": "" + }, + { + "name": "createdEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-forum-v2.Events.forumV1PostEntityCreatedEvent", + "displayName": "EntityCreatedEvent" + } + ], + "doc": "" + }, + { + "name": "deletedEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-forum-v2.Events.forumV1PostEntityDeletedEvent", + "displayName": "EntityDeletedEvent" + } + ], + "doc": "" + }, + { + "name": "entityEventSequence", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "A sequence number defining the order of updates to the underlying entity.\nFor example, given that some entity was updated at 16:00 and than again at 16:01,\nit is guaranteed that the sequence number of the second update is strictly higher than the first.\nAs the consumer, you can use this value to ensure that you handle messages in the correct order.\nTo do so, you will need to persist this number on your end, and compare the sequence number from the\nmessage against the one you have stored. Given that the stored number is higher, you should ignore the message." + }, + { + "name": "entityFqdn", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Assumes actions are also always typed to an entity_type\nExample: wix.stores.catalog.product, wix.bookings.session, wix.payments.transaction" + }, + { + "name": "entityId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of the entity associated with the event." + }, + { + "name": "eventTime", + "optional": true, + "type": [ + { + "nativeType": "Date" + } + ], + "doc": "Event timestamp." + }, + { + "name": "originatedFrom", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "If present, indicates the action that triggered the event." + }, + { + "name": "slug", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "This is top level to ease client code dispatching of messages (switch on entity_fqdn+slug)\nThis is although the created/updated/deleted notion is duplication of the oneof types\nExample: created/updated/deleted/started/completed/email_opened" + }, + { + "name": "triggeredByAnonymizeRequest", + "optional": true, + "type": [ + { + "nativeType": "boolean" + } + ], + "doc": "Whether the event was triggered as a result of a privacy regulation application\n(for example, GDPR)." + }, + { + "name": "updatedEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-forum-v2.Events.forumV1PostEntityUpdatedEvent", + "displayName": "EntityUpdatedEvent" + } + ], + "doc": "" + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfDomainEventBodyOneOf", + "members": [ + "actionEvent", + "createdEvent", + "deletedEvent", + "updatedEvent" + ] + } + ] + }, + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "forumV1PostDomainEventBodyOneOf", + "members": [ + { + "name": "actionEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-forum-v2.Events.forumV1PostActionEvent", + "displayName": "ActionEvent" + } + ], + "doc": "" + }, + { + "name": "createdEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-forum-v2.Events.forumV1PostEntityCreatedEvent", + "displayName": "EntityCreatedEvent" + } + ], + "doc": "" + }, + { + "name": "deletedEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-forum-v2.Events.forumV1PostEntityDeletedEvent", + "displayName": "EntityDeletedEvent" + } + ], + "doc": "" + }, + { + "name": "updatedEvent", + "optional": true, + "type": [ + { + "referenceType": "wix-forum-v2.Events.forumV1PostEntityUpdatedEvent", + "displayName": "EntityUpdatedEvent" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "forumV1PostEntityCreatedEvent", + "members": [ + { + "name": "entityAsJson", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "forumV1PostEntityDeletedEvent", + "members": [ + { + "name": "deletedEntityAsJson", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Entity that was deleted" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "forumV1PostEntityUpdatedEvent", + "members": [ + { + "name": "currentEntityAsJson", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Since platformized APIs only expose PATCH and not PUT we can't assume that the fields sent from the client are the actual diff.\nThis means that to generate a list of changed fields (as opposed to sent fields) one needs to traverse both objects.\nWe don't want to impose this on all developers and so we leave this traversal to the notification recipients which need it." + } + ], + "docs": { + "description": [ + "" + ] + } + }, { "name": "forumV1PostIdentity", "members": [ @@ -2704,7 +3266,7 @@ "displayName": "Closed" } ], - "doc": "" + "doc": "Event data." }, { "name": "metadata", @@ -2714,7 +3276,7 @@ "displayName": "BackendEventMetadata" } ], - "doc": "" + "doc": "Event metadata." } ], "docs": { @@ -2734,7 +3296,7 @@ "displayName": "Post" } ], - "doc": "" + "doc": "Created post." }, { "name": "metadata", @@ -2744,7 +3306,7 @@ "displayName": "BackendEventMetadata" } ], - "doc": "" + "doc": "Event metadata." } ], "docs": { @@ -2764,7 +3326,7 @@ "displayName": "BackendEventMetadata" } ], - "doc": "" + "doc": "Event metadata." } ], "docs": { @@ -2784,7 +3346,7 @@ "displayName": "Liked" } ], - "doc": "" + "doc": "Event data." }, { "name": "metadata", @@ -2794,7 +3356,7 @@ "displayName": "BackendEventMetadata" } ], - "doc": "" + "doc": "Event metadata." } ], "docs": { @@ -2814,7 +3376,7 @@ "displayName": "Moved" } ], - "doc": "" + "doc": "Event data." }, { "name": "metadata", @@ -2824,7 +3386,7 @@ "displayName": "BackendEventMetadata" } ], - "doc": "" + "doc": "Event metadata." } ], "docs": { @@ -2844,7 +3406,7 @@ "displayName": "Opened" } ], - "doc": "" + "doc": "Event data." }, { "name": "metadata", @@ -2854,7 +3416,7 @@ "displayName": "BackendEventMetadata" } ], - "doc": "" + "doc": "Event metadata." } ], "docs": { @@ -2874,7 +3436,7 @@ "displayName": "Pinned" } ], - "doc": "" + "doc": "Event data." }, { "name": "metadata", @@ -2884,7 +3446,7 @@ "displayName": "BackendEventMetadata" } ], - "doc": "" + "doc": "Event metadata." } ], "docs": { @@ -2904,7 +3466,7 @@ "displayName": "Reacted" } ], - "doc": "" + "doc": "Event data." }, { "name": "metadata", @@ -2914,7 +3476,7 @@ "displayName": "BackendEventMetadata" } ], - "doc": "" + "doc": "Event metadata." } ], "docs": { @@ -2934,7 +3496,7 @@ "displayName": "Reported" } ], - "doc": "" + "doc": "Event data." }, { "name": "metadata", @@ -2944,7 +3506,7 @@ "displayName": "BackendEventMetadata" } ], - "doc": "" + "doc": "Event metadata." } ], "docs": { @@ -3057,7 +3619,7 @@ "displayName": "Unliked" } ], - "doc": "" + "doc": "Event data." }, { "name": "metadata", @@ -3067,7 +3629,7 @@ "displayName": "BackendEventMetadata" } ], - "doc": "" + "doc": "Event metadata." } ], "docs": { @@ -3087,7 +3649,7 @@ "displayName": "Unpinned" } ], - "doc": "" + "doc": "Event data." }, { "name": "metadata", @@ -3097,7 +3659,7 @@ "displayName": "BackendEventMetadata" } ], - "doc": "" + "doc": "Event metadata." } ], "docs": { @@ -3117,7 +3679,7 @@ "displayName": "Unreacted" } ], - "doc": "" + "doc": "Event data." }, { "name": "metadata", @@ -3127,7 +3689,7 @@ "displayName": "BackendEventMetadata" } ], - "doc": "" + "doc": "Event metadata." } ], "docs": { @@ -3147,7 +3709,7 @@ "displayName": "Post" } ], - "doc": "" + "doc": "Updated post." }, { "name": "metadata", @@ -3157,7 +3719,7 @@ "displayName": "BackendEventMetadata" } ], - "doc": "" + "doc": "Event metadata." } ], "docs": { From 1fa1a6dc154ab769fd96aa6accde1aaaf9c3dcae Mon Sep 17 00:00:00 2001 From: Wix Docs Feds Date: Thu, 21 Mar 2024 14:44:34 +0000 Subject: [PATCH 33/45] Auto commit to autodocs-wix-forum-v2 from WixDocs Server --- wix-forum-v2/wix-forum-v2/Events.service.json | 76 +++++++++++++++++++ 1 file changed, 76 insertions(+) diff --git a/wix-forum-v2/wix-forum-v2/Events.service.json b/wix-forum-v2/wix-forum-v2/Events.service.json index 3f7b29ff1f..d7ff4b95de 100644 --- a/wix-forum-v2/wix-forum-v2/Events.service.json +++ b/wix-forum-v2/wix-forum-v2/Events.service.json @@ -2123,6 +2123,44 @@ ] } }, + { + "name": "forumV1CategorySubscribeToCategoryRequest", + "members": [ + { + "name": "categoryId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of category." + }, + { + "name": "contactId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Contact Id" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "forumV1CategorySubscribeToCategoryResponse", + "members": [], + "docs": { + "description": [ + "" + ] + } + }, { "name": "forumV1CategoryTag", "members": [ @@ -2193,6 +2231,44 @@ ] } }, + { + "name": "forumV1CategoryUnsubscribeFromCategoryRequest", + "members": [ + { + "name": "categoryId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of category." + }, + { + "name": "contactId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Contact Id" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "forumV1CategoryUnsubscribeFromCategoryResponse", + "members": [], + "docs": { + "description": [ + "" + ] + } + }, { "name": "forumV1CategoryUpdateCategoryRequest", "members": [ From aa9197c93b5014067348857d8256f5aa63907e6f Mon Sep 17 00:00:00 2001 From: Wix Docs Feds Date: Mon, 25 Mar 2024 09:04:50 +0000 Subject: [PATCH 34/45] Auto commit to autodocs-wix-forum-v2 from WixDocs Server --- .../wix-forum-v2/Categories.service.json | 76 +++++++++++++++++++ 1 file changed, 76 insertions(+) diff --git a/wix-forum-v2/wix-forum-v2/Categories.service.json b/wix-forum-v2/wix-forum-v2/Categories.service.json index e8ebd69c8c..1aea45a69c 100644 --- a/wix-forum-v2/wix-forum-v2/Categories.service.json +++ b/wix-forum-v2/wix-forum-v2/Categories.service.json @@ -1531,6 +1531,44 @@ ] } }, + { + "name": "SubscribeToCategoryRequest", + "members": [ + { + "name": "categoryId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of category." + }, + { + "name": "contactId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Contact Id" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "SubscribeToCategoryResponse", + "members": [], + "docs": { + "description": [ + "" + ] + } + }, { "name": "Tag", "members": [ @@ -1601,6 +1639,44 @@ ] } }, + { + "name": "UnsubscribeFromCategoryRequest", + "members": [ + { + "name": "categoryId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of category." + }, + { + "name": "contactId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Contact Id" + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "UnsubscribeFromCategoryResponse", + "members": [], + "docs": { + "description": [ + "" + ] + } + }, { "name": "UpdateCategoryOptions", "members": [ From ca8a5b4d97b7bcf9e4097771ca77bbf0fa6cfe3d Mon Sep 17 00:00:00 2001 From: Wix Docs Feds Date: Tue, 26 Mar 2024 14:22:07 +0000 Subject: [PATCH 35/45] Auto commit to autodocs-wix-forum-v2 from WixDocs Server --- .../wix-forum-v2/Categories.service.json | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/wix-forum-v2/wix-forum-v2/Categories.service.json b/wix-forum-v2/wix-forum-v2/Categories.service.json index 1aea45a69c..64fd8af438 100644 --- a/wix-forum-v2/wix-forum-v2/Categories.service.json +++ b/wix-forum-v2/wix-forum-v2/Categories.service.json @@ -1531,6 +1531,26 @@ ] } }, + { + "name": "SubscribeToCategoryOptions", + "members": [ + { + "name": "contactId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Contact Id" + } + ], + "docs": { + "description": [ + "" + ] + } + }, { "name": "SubscribeToCategoryRequest", "members": [ @@ -1639,6 +1659,26 @@ ] } }, + { + "name": "UnsubscribeFromCategoryOptions", + "members": [ + { + "name": "contactId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Contact Id" + } + ], + "docs": { + "description": [ + "" + ] + } + }, { "name": "UnsubscribeFromCategoryRequest", "members": [ From a95b5a153286de54b723ecf5b8383268f79aa728 Mon Sep 17 00:00:00 2001 From: Wix Docs Feds Date: Wed, 27 Mar 2024 09:20:22 +0000 Subject: [PATCH 36/45] Auto commit to autodocs-wix-forum-v2 from WixDocs Server --- wix-forum-v2/wix-forum-v2/Categories.service.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/wix-forum-v2/wix-forum-v2/Categories.service.json b/wix-forum-v2/wix-forum-v2/Categories.service.json index 64fd8af438..562928efae 100644 --- a/wix-forum-v2/wix-forum-v2/Categories.service.json +++ b/wix-forum-v2/wix-forum-v2/Categories.service.json @@ -1532,7 +1532,7 @@ } }, { - "name": "SubscribeToCategoryOptions", + "name": "SubscribeContactToCategoryOptions", "members": [ { "name": "contactId", @@ -1552,7 +1552,7 @@ } }, { - "name": "SubscribeToCategoryRequest", + "name": "SubscribeContactToCategoryRequest", "members": [ { "name": "categoryId", @@ -1581,7 +1581,7 @@ } }, { - "name": "SubscribeToCategoryResponse", + "name": "SubscribeContactToCategoryResponse", "members": [], "docs": { "description": [ @@ -1660,7 +1660,7 @@ } }, { - "name": "UnsubscribeFromCategoryOptions", + "name": "UnsubscribeContactToCategoryOptions", "members": [ { "name": "contactId", @@ -1680,7 +1680,7 @@ } }, { - "name": "UnsubscribeFromCategoryRequest", + "name": "UnsubscribeContactToCategoryRequest", "members": [ { "name": "categoryId", @@ -1709,7 +1709,7 @@ } }, { - "name": "UnsubscribeFromCategoryResponse", + "name": "UnsubscribeContactToCategoryResponse", "members": [], "docs": { "description": [ From 43320fcb0669c23ed9c4a3f1faf616ed9883d62f Mon Sep 17 00:00:00 2001 From: Wix Docs Feds Date: Wed, 27 Mar 2024 12:34:30 +0000 Subject: [PATCH 37/45] Auto commit to autodocs-wix-forum-v2 from WixDocs Server --- wix-forum-v2/wix-forum-v2/Events.service.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/wix-forum-v2/wix-forum-v2/Events.service.json b/wix-forum-v2/wix-forum-v2/Events.service.json index d7ff4b95de..bbaf24e5d4 100644 --- a/wix-forum-v2/wix-forum-v2/Events.service.json +++ b/wix-forum-v2/wix-forum-v2/Events.service.json @@ -2124,7 +2124,7 @@ } }, { - "name": "forumV1CategorySubscribeToCategoryRequest", + "name": "forumV1CategorySubscribeContactToCategoryRequest", "members": [ { "name": "categoryId", @@ -2153,7 +2153,7 @@ } }, { - "name": "forumV1CategorySubscribeToCategoryResponse", + "name": "forumV1CategorySubscribeContactToCategoryResponse", "members": [], "docs": { "description": [ @@ -2232,7 +2232,7 @@ } }, { - "name": "forumV1CategoryUnsubscribeFromCategoryRequest", + "name": "forumV1CategoryUnsubscribeContactToCategoryRequest", "members": [ { "name": "categoryId", @@ -2261,7 +2261,7 @@ } }, { - "name": "forumV1CategoryUnsubscribeFromCategoryResponse", + "name": "forumV1CategoryUnsubscribeContactToCategoryResponse", "members": [], "docs": { "description": [ From 624b4ac02ed541b38229f7041001230e7dbb81d4 Mon Sep 17 00:00:00 2001 From: Wix Docs Feds Date: Thu, 11 Apr 2024 16:15:48 +0000 Subject: [PATCH 38/45] Auto commit to autodocs-wix-forum-v2 from WixDocs Server --- wix-forum-v2/wix-forum-v2/Events.service.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/wix-forum-v2/wix-forum-v2/Events.service.json b/wix-forum-v2/wix-forum-v2/Events.service.json index bbaf24e5d4..62d1f53f1c 100644 --- a/wix-forum-v2/wix-forum-v2/Events.service.json +++ b/wix-forum-v2/wix-forum-v2/Events.service.json @@ -2232,7 +2232,7 @@ } }, { - "name": "forumV1CategoryUnsubscribeContactToCategoryRequest", + "name": "forumV1CategoryUnsubscribeContactFromCategoryRequest", "members": [ { "name": "categoryId", @@ -2261,7 +2261,7 @@ } }, { - "name": "forumV1CategoryUnsubscribeContactToCategoryResponse", + "name": "forumV1CategoryUnsubscribeContactFromCategoryResponse", "members": [], "docs": { "description": [ From 122765c606abba6d48bedaa0683abde49f76052d Mon Sep 17 00:00:00 2001 From: Wix Docs Feds Date: Fri, 12 Apr 2024 11:12:17 +0000 Subject: [PATCH 39/45] Auto commit to autodocs-wix-forum-v2 from WixDocs Server --- wix-forum-v2/wix-forum-v2/Categories.service.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/wix-forum-v2/wix-forum-v2/Categories.service.json b/wix-forum-v2/wix-forum-v2/Categories.service.json index 562928efae..24da8a72ba 100644 --- a/wix-forum-v2/wix-forum-v2/Categories.service.json +++ b/wix-forum-v2/wix-forum-v2/Categories.service.json @@ -1660,7 +1660,7 @@ } }, { - "name": "UnsubscribeContactToCategoryOptions", + "name": "UnsubscribeContactFromCategoryOptions", "members": [ { "name": "contactId", @@ -1680,7 +1680,7 @@ } }, { - "name": "UnsubscribeContactToCategoryRequest", + "name": "UnsubscribeContactFromCategoryRequest", "members": [ { "name": "categoryId", @@ -1709,7 +1709,7 @@ } }, { - "name": "UnsubscribeContactToCategoryResponse", + "name": "UnsubscribeContactFromCategoryResponse", "members": [], "docs": { "description": [ From f75fffe7d0af2f4a338a820db2d81e57a7bf3c3c Mon Sep 17 00:00:00 2001 From: Wix Docs Feds Date: Thu, 18 Apr 2024 14:18:23 +0000 Subject: [PATCH 40/45] Auto commit to autodocs-wix-forum-v2 from WixDocs Server --- .../wix-forum-v2/Categories.service.json | 172 +++++++++++++++++- wix-forum-v2/wix-forum-v2/Posts.service.json | 6 +- 2 files changed, 166 insertions(+), 12 deletions(-) diff --git a/wix-forum-v2/wix-forum-v2/Categories.service.json b/wix-forum-v2/wix-forum-v2/Categories.service.json index 24da8a72ba..e6e6d37405 100644 --- a/wix-forum-v2/wix-forum-v2/Categories.service.json +++ b/wix-forum-v2/wix-forum-v2/Categories.service.json @@ -58,7 +58,7 @@ { "title": "getCategory example", "body": [ - "import { categories } from 'wix-forum.v2';", + "import { categories } from '@wix/wix-forum.v2';", " ", " async function getCategory(categoryId, options) {", " try {", @@ -133,7 +133,7 @@ { "title": "getCategoryBySlug example", "body": [ - "import { categories } from 'wix-forum.v2';", + "import { categories } from '@wix/wix-forum.v2';", " ", " async function getCategoryBySlug(slug, options) {", " try {", @@ -198,7 +198,7 @@ { "title": "queryCategories example", "body": [ - "import { categories } from 'wix-forum.v2';", + "import { categories } from '@wix/wix-forum.v2';", " ", " async function queryCategories(options) {", " try {", @@ -223,6 +223,160 @@ ], "syntaxName": "queryCategories", "isAdminMethod": true + }, + { + "name": "subscribeContactToCategory", + "params": [ + { + "name": "categoryId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Category ID.", + "required": true + }, + { + "name": "options", + "type": [ + { + "referenceType": "wix-forum-v2.Categories.SubscribeContactToCategoryOptions" + } + ], + "doc": "", + "required": false + } + ], + "requiredFields": [ + "categoryId" + ], + "ret": { + "type": [ + { + "complexType": { + "nativeType": "Promise", + "typeParams": [ + { + "nativeType": "void" + } + ] + } + } + ], + "doc": null + }, + "docs": { + "summary": "Subscribes a contact to a specific forum category.", + "description": [ + "By default a contact isn't subscribed to any forum categories.\n\nBy subscribing a contact to a category, the contact receives notifications for that category.\n\nIf `contactId` is not provided, it is implicitly resolved from the caller's context." + ], + "examples": [ + { + "title": "subscribeContactToCategory example", + "body": [ + "import { categories } from '@wix/wix-forum.v2';", + " ", + " async function subscribeContactToCategory(categoryId, options) {", + " try {", + " const result = await categories.subscribeContactToCategory(categoryId, options);", + "", + " return result;", + " } catch (error) {", + " console.error(error);", + " // Handle the error", + " }", + " }", + " " + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ], + "syntaxName": "subscribeContactToCategory", + "isAdminMethod": true + }, + { + "name": "unsubscribeContactFromCategory", + "params": [ + { + "name": "categoryId", + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Category ID.", + "required": true + }, + { + "name": "options", + "type": [ + { + "referenceType": "wix-forum-v2.Categories.UnsubscribeContactFromCategoryOptions" + } + ], + "doc": "", + "required": false + } + ], + "requiredFields": [ + "categoryId" + ], + "ret": { + "type": [ + { + "complexType": { + "nativeType": "Promise", + "typeParams": [ + { + "nativeType": "void" + } + ] + } + } + ], + "doc": null + }, + "docs": { + "summary": "Unsubscribes a contact from a specific forum category.", + "description": [ + "By default a contact isn't subscribed to any forum categories.\n\nBy unsubscribing a contact from a category, the contact won’t receive notifications for that category.\n\nIf `contactId` is not provided, it is implicitly resolved from the caller's context." + ], + "examples": [ + { + "title": "unsubscribeContactFromCategory example", + "body": [ + "import { categories } from '@wix/wix-forum.v2';", + " ", + " async function unsubscribeContactFromCategory(categoryId, options) {", + " try {", + " const result = await categories.unsubscribeContactFromCategory(categoryId, options);", + "", + " return result;", + " } catch (error) {", + " console.error(error);", + " // Handle the error", + " }", + " }", + " " + ] + } + ] + }, + "isVeloEvent": false, + "customLabels": [ + { + "id": "maturity-beta" + } + ], + "syntaxName": "unsubscribeContactFromCategory", + "isAdminMethod": true } ], "messages": [ @@ -1542,7 +1696,7 @@ "nativeType": "string" } ], - "doc": "Contact Id" + "doc": "Contact ID." } ], "docs": { @@ -1561,7 +1715,7 @@ "nativeType": "string" } ], - "doc": "ID of category." + "doc": "Category ID." }, { "name": "contactId", @@ -1571,7 +1725,7 @@ "nativeType": "string" } ], - "doc": "Contact Id" + "doc": "Contact ID." } ], "docs": { @@ -1670,7 +1824,7 @@ "nativeType": "string" } ], - "doc": "Contact Id" + "doc": "Contact ID." } ], "docs": { @@ -1689,7 +1843,7 @@ "nativeType": "string" } ], - "doc": "ID of category." + "doc": "Category ID." }, { "name": "contactId", @@ -1699,7 +1853,7 @@ "nativeType": "string" } ], - "doc": "Contact Id" + "doc": "Contact ID." } ], "docs": { diff --git a/wix-forum-v2/wix-forum-v2/Posts.service.json b/wix-forum-v2/wix-forum-v2/Posts.service.json index d5a7d07c25..355808f3e2 100644 --- a/wix-forum-v2/wix-forum-v2/Posts.service.json +++ b/wix-forum-v2/wix-forum-v2/Posts.service.json @@ -58,7 +58,7 @@ { "title": "getPost example", "body": [ - "import { posts } from 'wix-forum.v2';", + "import { posts } from '@wix/wix-forum.v2';", " ", " async function getPost(postId, options) {", " try {", @@ -133,7 +133,7 @@ { "title": "getPostBySlug example", "body": [ - "import { posts } from 'wix-forum.v2';", + "import { posts } from '@wix/wix-forum.v2';", " ", " async function getPostBySlug(slug, options) {", " try {", @@ -198,7 +198,7 @@ { "title": "queryPosts example", "body": [ - "import { posts } from 'wix-forum.v2';", + "import { posts } from '@wix/wix-forum.v2';", " ", " async function queryPosts(options) {", " try {", From 9f2370243fabea21949463af1a07907f25562d56 Mon Sep 17 00:00:00 2001 From: Wix Docs Feds Date: Fri, 19 Apr 2024 08:52:36 +0000 Subject: [PATCH 41/45] Auto commit to autodocs-wix-forum-v2 from WixDocs Server --- wix-forum-v2/wix-forum-v2/Categories.service.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/wix-forum-v2/wix-forum-v2/Categories.service.json b/wix-forum-v2/wix-forum-v2/Categories.service.json index e6e6d37405..30780c842e 100644 --- a/wix-forum-v2/wix-forum-v2/Categories.service.json +++ b/wix-forum-v2/wix-forum-v2/Categories.service.json @@ -244,7 +244,7 @@ "referenceType": "wix-forum-v2.Categories.SubscribeContactToCategoryOptions" } ], - "doc": "", + "doc": "Options for subscribing the contact.", "required": false } ], @@ -321,7 +321,7 @@ "referenceType": "wix-forum-v2.Categories.UnsubscribeContactFromCategoryOptions" } ], - "doc": "", + "doc": "Options for unsubscribing the contact.", "required": false } ], From 2d55e4120f8a5dbd4bdb93fbd6284c546edd613f Mon Sep 17 00:00:00 2001 From: Wix Docs Feds Date: Fri, 19 Apr 2024 08:56:02 +0000 Subject: [PATCH 42/45] Auto commit to autodocs-wix-forum-v2 from WixDocs Server --- wix-forum-v2/wix-forum-v2/Events.service.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/wix-forum-v2/wix-forum-v2/Events.service.json b/wix-forum-v2/wix-forum-v2/Events.service.json index 62d1f53f1c..097368ea0e 100644 --- a/wix-forum-v2/wix-forum-v2/Events.service.json +++ b/wix-forum-v2/wix-forum-v2/Events.service.json @@ -2133,7 +2133,7 @@ "nativeType": "string" } ], - "doc": "ID of category." + "doc": "Category ID." }, { "name": "contactId", @@ -2143,7 +2143,7 @@ "nativeType": "string" } ], - "doc": "Contact Id" + "doc": "Contact ID." } ], "docs": { @@ -2241,7 +2241,7 @@ "nativeType": "string" } ], - "doc": "ID of category." + "doc": "Category ID." }, { "name": "contactId", @@ -2251,7 +2251,7 @@ "nativeType": "string" } ], - "doc": "Contact Id" + "doc": "Contact ID." } ], "docs": { From 3627723da67d4b6b48393ea2d9bc74a520701628 Mon Sep 17 00:00:00 2001 From: Wix Docs Feds Date: Mon, 3 Jun 2024 07:41:25 +0000 Subject: [PATCH 43/45] Auto commit to autodocs-wix-forum-v2 from WixDocs Server --- .../wix-forum-v2/Categories.service.json | 431 +++++++++++++++--- wix-forum-v2/wix-forum-v2/Posts.service.json | 321 +++++++++++-- 2 files changed, 642 insertions(+), 110 deletions(-) diff --git a/wix-forum-v2/wix-forum-v2/Categories.service.json b/wix-forum-v2/wix-forum-v2/Categories.service.json index 30780c842e..21c0c9e537 100644 --- a/wix-forum-v2/wix-forum-v2/Categories.service.json +++ b/wix-forum-v2/wix-forum-v2/Categories.service.json @@ -56,21 +56,44 @@ "description": [], "examples": [ { - "title": "getCategory example", + "title": "getCategory example for dashboard page code", "body": [ - "import { categories } from '@wix/wix-forum.v2';", - " ", - " async function getCategory(categoryId, options) {", - " try {", - " const result = await categories.getCategory(categoryId, options);", + "import { categories } from 'wix-forum.v2';", "", - " return result;", - " } catch (error) {", - " console.error(error);", - " // Handle the error", - " }", - " }", - " " + "async function getCategory(categoryId, options) {", + " try {", + " const result = await categories.getCategory(categoryId, options);", + " return result;", + " } catch (error) {", + " console.error(error);", + " // Handle the error", + " }", + "}", + "" + ] + }, + { + "title": "getCategory example for exporting from backend code", + "body": [ + "import { categories } from 'wix-forum.v2';", + "import { webMethod, Permissions } from 'wix-web-module';", + "import { elevate } from 'wix-auth';", + "", + "const elevatedGetCategory = elevate(categories.getCategory);", + "", + "export const getCategory = webMethod(", + " Permissions.Anyone,", + " async (categoryId, options) => {", + " try {", + " const result = await elevatedGetCategory(categoryId, options);", + " return result;", + " } catch (error) {", + " console.error(error);", + " // Handle the error", + " }", + " }", + ");", + "" ] } ] @@ -131,21 +154,44 @@ "description": [], "examples": [ { - "title": "getCategoryBySlug example", + "title": "getCategoryBySlug example for dashboard page code", "body": [ - "import { categories } from '@wix/wix-forum.v2';", - " ", - " async function getCategoryBySlug(slug, options) {", - " try {", - " const result = await categories.getCategoryBySlug(slug, options);", + "import { categories } from 'wix-forum.v2';", "", - " return result;", - " } catch (error) {", - " console.error(error);", - " // Handle the error", - " }", - " }", - " " + "async function getCategoryBySlug(slug, options) {", + " try {", + " const result = await categories.getCategoryBySlug(slug, options);", + " return result;", + " } catch (error) {", + " console.error(error);", + " // Handle the error", + " }", + "}", + "" + ] + }, + { + "title": "getCategoryBySlug example for exporting from backend code", + "body": [ + "import { categories } from 'wix-forum.v2';", + "import { webMethod, Permissions } from 'wix-web-module';", + "import { elevate } from 'wix-auth';", + "", + "const elevatedGetCategoryBySlug = elevate(categories.getCategoryBySlug);", + "", + "export const getCategoryBySlug = webMethod(", + " Permissions.Anyone,", + " async (slug, options) => {", + " try {", + " const result = await elevatedGetCategoryBySlug(slug, options);", + " return result;", + " } catch (error) {", + " console.error(error);", + " // Handle the error", + " }", + " }", + ");", + "" ] } ] @@ -196,21 +242,44 @@ ], "examples": [ { - "title": "queryCategories example", + "title": "queryCategories example for dashboard page code", "body": [ - "import { categories } from '@wix/wix-forum.v2';", - " ", - " async function queryCategories(options) {", - " try {", - " const result = await categories.queryCategories(options);", + "import { categories } from 'wix-forum.v2';", "", - " return result;", - " } catch (error) {", - " console.error(error);", - " // Handle the error", - " }", - " }", - " " + "async function queryCategories(options) {", + " try {", + " const result = await categories.queryCategories(options);", + " return result;", + " } catch (error) {", + " console.error(error);", + " // Handle the error", + " }", + "}", + "" + ] + }, + { + "title": "queryCategories example for exporting from backend code", + "body": [ + "import { categories } from 'wix-forum.v2';", + "import { webMethod, Permissions } from 'wix-web-module';", + "import { elevate } from 'wix-auth';", + "", + "const elevatedQueryCategories = elevate(categories.queryCategories);", + "", + "export const queryCategories = webMethod(", + " Permissions.Anyone,", + " async (options) => {", + " try {", + " const result = await elevatedQueryCategories(options);", + " return result;", + " } catch (error) {", + " console.error(error);", + " // Handle the error", + " }", + " }", + ");", + "" ] } ] @@ -273,21 +342,44 @@ ], "examples": [ { - "title": "subscribeContactToCategory example", + "title": "subscribeContactToCategory example for dashboard page code", + "body": [ + "import { categories } from 'wix-forum.v2';", + "", + "async function subscribeContactToCategory(categoryId, options) {", + " try {", + " const result = await categories.subscribeContactToCategory(categoryId, options);", + " return result;", + " } catch (error) {", + " console.error(error);", + " // Handle the error", + " }", + "}", + "" + ] + }, + { + "title": "subscribeContactToCategory example for exporting from backend code", "body": [ - "import { categories } from '@wix/wix-forum.v2';", - " ", - " async function subscribeContactToCategory(categoryId, options) {", - " try {", - " const result = await categories.subscribeContactToCategory(categoryId, options);", + "import { categories } from 'wix-forum.v2';", + "import { webMethod, Permissions } from 'wix-web-module';", + "import { elevate } from 'wix-auth';", "", - " return result;", - " } catch (error) {", - " console.error(error);", - " // Handle the error", - " }", - " }", - " " + "const elevatedSubscribeContactToCategory = elevate(categories.subscribeContactToCategory);", + "", + "export const subscribeContactToCategory = webMethod(", + " Permissions.Anyone,", + " async (categoryId, options) => {", + " try {", + " const result = await elevatedSubscribeContactToCategory(categoryId, options);", + " return result;", + " } catch (error) {", + " console.error(error);", + " // Handle the error", + " }", + " }", + ");", + "" ] } ] @@ -350,21 +442,44 @@ ], "examples": [ { - "title": "unsubscribeContactFromCategory example", + "title": "unsubscribeContactFromCategory example for dashboard page code", "body": [ - "import { categories } from '@wix/wix-forum.v2';", - " ", - " async function unsubscribeContactFromCategory(categoryId, options) {", - " try {", - " const result = await categories.unsubscribeContactFromCategory(categoryId, options);", + "import { categories } from 'wix-forum.v2';", "", - " return result;", - " } catch (error) {", - " console.error(error);", - " // Handle the error", - " }", - " }", - " " + "async function unsubscribeContactFromCategory(categoryId, options) {", + " try {", + " const result = await categories.unsubscribeContactFromCategory(categoryId, options);", + " return result;", + " } catch (error) {", + " console.error(error);", + " // Handle the error", + " }", + "}", + "" + ] + }, + { + "title": "unsubscribeContactFromCategory example for exporting from backend code", + "body": [ + "import { categories } from 'wix-forum.v2';", + "import { webMethod, Permissions } from 'wix-web-module';", + "import { elevate } from 'wix-auth';", + "", + "const elevatedUnsubscribeContactFromCategory = elevate(categories.unsubscribeContactFromCategory);", + "", + "export const unsubscribeContactFromCategory = webMethod(", + " Permissions.Anyone,", + " async (categoryId, options) => {", + " try {", + " const result = await elevatedUnsubscribeContactFromCategory(categoryId, options);", + " return result;", + " } catch (error) {", + " console.error(error);", + " // Handle the error", + " }", + " }", + ");", + "" ] } ] @@ -538,7 +653,7 @@ "nativeType": "string" } ], - "doc": "Whether all site visitors and members (`PUBLIC`), all members (`MEMBERS_ONLY`), or only specific members and groups of members with roles, badges or paid subscriptions (`PRIVATE`) can access posts in category.\n\nSupported values: `\"UNKNOWN\"`, `\"PUBLIC\"`, `\"MEMBERS_ONLY\"`, `\"PRIVATE\"`." + "doc": "Whether all site visitors and members (`PUBLIC`), all members (`MEMBERS_ONLY`), or only specific members and groups of members with roles, badges or paid subscriptions (`PRIVATE`) can access posts in category." }, { "name": "commentInteraction", @@ -548,7 +663,7 @@ "nativeType": "string" } ], - "doc": "Defines what interactions may be applied on the comment under the posts created in this category.\n\nSupported values: `\"REACTION\"`, `\"VOTE\"`.\n" + "doc": "Defines what interactions may be applied on the comment under the posts created in this category." }, { "name": "description", @@ -606,7 +721,7 @@ "nativeType": "string" } ], - "doc": "Category header type.\n\nSupported values: `\"NONE\"`, `\"COLOR\"`, `\"IMAGE\"`.\n" + "doc": "Category header type." }, { "name": "mainCommentReaction", @@ -1202,7 +1317,7 @@ } } ], - "doc": "Array of extra category fields to be included in the response.\n\nSupported Values: `\"URL\"`.\n" + "doc": "Array of extra category fields to be included in the response." } ], "docs": { @@ -1229,7 +1344,131 @@ } } ], - "doc": "Array of extra category fields to be included in the response.\n\nSupported Values: `\"URL\"`.\n" + "doc": "Array of extra category fields to be included in the response." + } + ], + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "IdentificationData", + "members": [ + { + "name": "anonymousVisitorId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of a site visitor that has not logged in to the site." + }, + { + "name": "appId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of an app." + }, + { + "name": "identityType", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Supported values:\n- `'ANONYMOUS_VISITOR'`\n- `'APP'`\n- `'MEMBER'`\n- `'UNKNOWN'`\n- `'WIX_USER'`" + }, + { + "name": "memberId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of a site visitor that has logged in to the site." + }, + { + "name": "wixUserId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of a Wix user (site owner, contributor, etc.)." + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfIdentificationDataIdOneOf", + "members": [ + "anonymousVisitorId", + "appId", + "memberId", + "wixUserId" + ] + } + ] + }, + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "IdentificationDataIdOneOf", + "members": [ + { + "name": "anonymousVisitorId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of a site visitor that has not logged in to the site." + }, + { + "name": "appId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of an app." + }, + { + "name": "memberId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of a site visitor that has logged in to the site." + }, + { + "name": "wixUserId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of a Wix user (site owner, contributor, etc.)." } ], "docs": { @@ -1345,6 +1584,56 @@ ] } }, + { + "name": "MessageEnvelope", + "members": [ + { + "name": "data", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Stringify payload." + }, + { + "name": "eventType", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Event type." + }, + { + "name": "identity", + "optional": true, + "type": [ + { + "referenceType": "wix-forum-v2.Categories.IdentificationData" + } + ], + "doc": "The identification type and identity data." + }, + { + "name": "instanceId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "App instance ID." + } + ], + "docs": { + "description": [ + "" + ] + } + }, { "name": "QueryCategoriesOptions", "members": [ @@ -1363,7 +1652,7 @@ } } ], - "doc": "Array of extra category fields to be included in the response.\n\nSupported Values: `\"URL\"`.\n" + "doc": "Array of extra category fields to be included in the response." }, { "name": "filter", diff --git a/wix-forum-v2/wix-forum-v2/Posts.service.json b/wix-forum-v2/wix-forum-v2/Posts.service.json index 355808f3e2..3c375026f4 100644 --- a/wix-forum-v2/wix-forum-v2/Posts.service.json +++ b/wix-forum-v2/wix-forum-v2/Posts.service.json @@ -56,21 +56,44 @@ "description": [], "examples": [ { - "title": "getPost example", + "title": "getPost example for dashboard page code", "body": [ - "import { posts } from '@wix/wix-forum.v2';", - " ", - " async function getPost(postId, options) {", - " try {", - " const result = await posts.getPost(postId, options);", + "import { posts } from 'wix-forum.v2';", "", - " return result;", - " } catch (error) {", - " console.error(error);", - " // Handle the error", - " }", - " }", - " " + "async function getPost(postId, options) {", + " try {", + " const result = await posts.getPost(postId, options);", + " return result;", + " } catch (error) {", + " console.error(error);", + " // Handle the error", + " }", + "}", + "" + ] + }, + { + "title": "getPost example for exporting from backend code", + "body": [ + "import { posts } from 'wix-forum.v2';", + "import { webMethod, Permissions } from 'wix-web-module';", + "import { elevate } from 'wix-auth';", + "", + "const elevatedGetPost = elevate(posts.getPost);", + "", + "export const getPost = webMethod(", + " Permissions.Anyone,", + " async (postId, options) => {", + " try {", + " const result = await elevatedGetPost(postId, options);", + " return result;", + " } catch (error) {", + " console.error(error);", + " // Handle the error", + " }", + " }", + ");", + "" ] } ] @@ -131,21 +154,44 @@ "description": [], "examples": [ { - "title": "getPostBySlug example", + "title": "getPostBySlug example for dashboard page code", "body": [ - "import { posts } from '@wix/wix-forum.v2';", - " ", - " async function getPostBySlug(slug, options) {", - " try {", - " const result = await posts.getPostBySlug(slug, options);", + "import { posts } from 'wix-forum.v2';", + "", + "async function getPostBySlug(slug, options) {", + " try {", + " const result = await posts.getPostBySlug(slug, options);", + " return result;", + " } catch (error) {", + " console.error(error);", + " // Handle the error", + " }", + "}", + "" + ] + }, + { + "title": "getPostBySlug example for exporting from backend code", + "body": [ + "import { posts } from 'wix-forum.v2';", + "import { webMethod, Permissions } from 'wix-web-module';", + "import { elevate } from 'wix-auth';", + "", + "const elevatedGetPostBySlug = elevate(posts.getPostBySlug);", "", - " return result;", - " } catch (error) {", - " console.error(error);", - " // Handle the error", - " }", - " }", - " " + "export const getPostBySlug = webMethod(", + " Permissions.Anyone,", + " async (slug, options) => {", + " try {", + " const result = await elevatedGetPostBySlug(slug, options);", + " return result;", + " } catch (error) {", + " console.error(error);", + " // Handle the error", + " }", + " }", + ");", + "" ] } ] @@ -196,21 +242,44 @@ ], "examples": [ { - "title": "queryPosts example", + "title": "queryPosts example for dashboard page code", "body": [ - "import { posts } from '@wix/wix-forum.v2';", - " ", - " async function queryPosts(options) {", - " try {", - " const result = await posts.queryPosts(options);", + "import { posts } from 'wix-forum.v2';", "", - " return result;", - " } catch (error) {", - " console.error(error);", - " // Handle the error", - " }", - " }", - " " + "async function queryPosts(options) {", + " try {", + " const result = await posts.queryPosts(options);", + " return result;", + " } catch (error) {", + " console.error(error);", + " // Handle the error", + " }", + "}", + "" + ] + }, + { + "title": "queryPosts example for exporting from backend code", + "body": [ + "import { posts } from 'wix-forum.v2';", + "import { webMethod, Permissions } from 'wix-web-module';", + "import { elevate } from 'wix-auth';", + "", + "const elevatedQueryPosts = elevate(posts.queryPosts);", + "", + "export const queryPosts = webMethod(", + " Permissions.Anyone,", + " async (options) => {", + " try {", + " const result = await elevatedQueryPosts(options);", + " return result;", + " } catch (error) {", + " console.error(error);", + " // Handle the error", + " }", + " }", + ");", + "" ] } ] @@ -739,6 +808,130 @@ ] } }, + { + "name": "IdentificationData", + "members": [ + { + "name": "anonymousVisitorId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of a site visitor that has not logged in to the site." + }, + { + "name": "appId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of an app." + }, + { + "name": "identityType", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Supported values:\n- `'ANONYMOUS_VISITOR'`\n- `'APP'`\n- `'MEMBER'`\n- `'UNKNOWN'`\n- `'WIX_USER'`" + }, + { + "name": "memberId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of a site visitor that has logged in to the site." + }, + { + "name": "wixUserId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of a Wix user (site owner, contributor, etc.)." + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfIdentificationDataIdOneOf", + "members": [ + "anonymousVisitorId", + "appId", + "memberId", + "wixUserId" + ] + } + ] + }, + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "IdentificationDataIdOneOf", + "members": [ + { + "name": "anonymousVisitorId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of a site visitor that has not logged in to the site." + }, + { + "name": "appId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of an app." + }, + { + "name": "memberId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of a site visitor that has logged in to the site." + }, + { + "name": "wixUserId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of a Wix user (site owner, contributor, etc.)." + } + ], + "docs": { + "description": [ + "" + ] + } + }, { "name": "Identity", "members": [ @@ -908,6 +1101,56 @@ ] } }, + { + "name": "MessageEnvelope", + "members": [ + { + "name": "data", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Stringify payload." + }, + { + "name": "eventType", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Event type." + }, + { + "name": "identity", + "optional": true, + "type": [ + { + "referenceType": "wix-forum-v2.Posts.IdentificationData" + } + ], + "doc": "The identification type and identity data." + }, + { + "name": "instanceId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "App instance ID." + } + ], + "docs": { + "description": [ + "" + ] + } + }, { "name": "Moved", "members": [ From 1928e2987402ef6ed9ba0911ab6ca336e2a22b47 Mon Sep 17 00:00:00 2001 From: Wix Docs Feds Date: Mon, 3 Jun 2024 09:03:54 +0000 Subject: [PATCH 44/45] Auto commit to autodocs-wix-forum-v2 from WixDocs Server --- wix-forum-v2/wix-forum-v2/Posts.service.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/wix-forum-v2/wix-forum-v2/Posts.service.json b/wix-forum-v2/wix-forum-v2/Posts.service.json index 3c375026f4..d44310f9ca 100644 --- a/wix-forum-v2/wix-forum-v2/Posts.service.json +++ b/wix-forum-v2/wix-forum-v2/Posts.service.json @@ -772,7 +772,7 @@ } } ], - "doc": "Array of extra post fields to be included in the response.\n\nSupported values: `\"IMAGES\"`, `\"VIDEOS\"`, `\"URL\"`, `\"REACTION_IDENTITIES\"`.\n" + "doc": "Array of extra post fields to be included in the response." } ], "docs": { @@ -799,7 +799,7 @@ } } ], - "doc": "Array of extra post fields to be included in the response.\n\nSupported values: `\"IMAGES\"`, `\"VIDEOS\"`, `\"URL\"`, `\"REACTION_IDENTITIES\"`.\n" + "doc": "Array of extra post fields to be included in the response." } ], "docs": { @@ -1363,7 +1363,7 @@ "nativeType": "string" } ], - "doc": "Defines what interactions may be applied on the comment under the post.\n\nSupported values: `\"REACTION\"`, `\"VOTE\"`.\n\n" + "doc": "Defines what interactions may be applied on the comment under the post." }, { "name": "contentText", @@ -1721,7 +1721,7 @@ } } ], - "doc": "Array of extra post fields to be included in the response.\n\nSupported values: `\"IMAGES\"`, `\"VIDEOS\"`, `\"URL\"`, `\"REACTION_IDENTITIES\"`.\n" + "doc": "Array of extra post fields to be included in the response." }, { "name": "filter", From c5fc6552ef1dece5f909dc6bb3c6f05143e1c05f Mon Sep 17 00:00:00 2001 From: Wix Docs Feds Date: Mon, 3 Jun 2024 09:51:51 +0000 Subject: [PATCH 45/45] Auto commit to autodocs-wix-forum-v2 from WixDocs Server --- wix-forum-v2/wix-forum-v2/Events.service.json | 406 ++++++++++++++++-- 1 file changed, 378 insertions(+), 28 deletions(-) diff --git a/wix-forum-v2/wix-forum-v2/Events.service.json b/wix-forum-v2/wix-forum-v2/Events.service.json index 097368ea0e..50180ce491 100644 --- a/wix-forum-v2/wix-forum-v2/Events.service.json +++ b/wix-forum-v2/wix-forum-v2/Events.service.json @@ -41,7 +41,7 @@ "title": "onCategoryCreated example", "body": [ "", - " export function wixForum_onCategoryCreated(event) {", + " export function wixForumV1_onCategoryCreated(event) {", " const eventId = event.metadata.id", " const entityId = event.entity._id;", " }", @@ -57,7 +57,7 @@ "id": "maturity-beta" } ], - "syntaxName": "wixForum_onCategoryCreated" + "syntaxName": "wixForumV1_onCategoryCreated" }, { "name": "onCategoryDeleted", @@ -91,7 +91,7 @@ "title": "onCategoryDeleted example", "body": [ "", - " export function wixForum_onCategoryDeleted(event) {", + " export function wixForumV1_onCategoryDeleted(event) {", " const eventId = event.metadata.id", " const entityId = event.entity._id;", " }", @@ -107,7 +107,7 @@ "id": "maturity-beta" } ], - "syntaxName": "wixForum_onCategoryDeleted" + "syntaxName": "wixForumV1_onCategoryDeleted" }, { "name": "onCategoryUpdated", @@ -141,7 +141,7 @@ "title": "onCategoryUpdated example", "body": [ "", - " export function wixForum_onCategoryUpdated(event) {", + " export function wixForumV1_onCategoryUpdated(event) {", " const eventId = event.metadata.id", " const entityId = event.entity._id;", " }", @@ -157,7 +157,7 @@ "id": "maturity-beta" } ], - "syntaxName": "wixForum_onCategoryUpdated" + "syntaxName": "wixForumV1_onCategoryUpdated" }, { "name": "onPostClosed", @@ -191,7 +191,7 @@ "title": "onPostClosed example", "body": [ "", - " export function wixForum_onPostClosed(event) {", + " export function wixForumV1_onPostClosed(event) {", " const eventId = event.metadata.id", " const entityId = event.data.post._id;", " }", @@ -207,7 +207,7 @@ "id": "maturity-beta" } ], - "syntaxName": "wixForum_onPostClosed" + "syntaxName": "wixForumV1_onPostClosed" }, { "name": "onPostCreated", @@ -241,7 +241,7 @@ "title": "onPostCreated example", "body": [ "", - " export function wixForum_onPostCreated(event) {", + " export function wixForumV1_onPostCreated(event) {", " const eventId = event.metadata.id", " const entityId = event.entity._id;", " }", @@ -257,7 +257,7 @@ "id": "maturity-beta" } ], - "syntaxName": "wixForum_onPostCreated" + "syntaxName": "wixForumV1_onPostCreated" }, { "name": "onPostDeleted", @@ -291,7 +291,7 @@ "title": "onPostDeleted example", "body": [ "", - " export function wixForum_onPostDeleted(event) {", + " export function wixForumV1_onPostDeleted(event) {", " const eventId = event.metadata.id", " const entityId = event.entity._id;", " }", @@ -307,7 +307,7 @@ "id": "maturity-beta" } ], - "syntaxName": "wixForum_onPostDeleted" + "syntaxName": "wixForumV1_onPostDeleted" }, { "name": "onPostLiked", @@ -341,7 +341,7 @@ "title": "onPostLiked example", "body": [ "", - " export function wixForum_onPostLiked(event) {", + " export function wixForumV1_onPostLiked(event) {", " const eventId = event.metadata.id", " const entityId = event.data.post._id;", " }", @@ -357,7 +357,7 @@ "id": "maturity-beta" } ], - "syntaxName": "wixForum_onPostLiked" + "syntaxName": "wixForumV1_onPostLiked" }, { "name": "onPostMoved", @@ -391,7 +391,7 @@ "title": "onPostMoved example", "body": [ "", - " export function wixForum_onPostMoved(event) {", + " export function wixForumV1_onPostMoved(event) {", " const eventId = event.metadata.id", " const entityId = event.data.post._id;", " }", @@ -407,7 +407,7 @@ "id": "maturity-beta" } ], - "syntaxName": "wixForum_onPostMoved" + "syntaxName": "wixForumV1_onPostMoved" }, { "name": "onPostOpened", @@ -441,7 +441,7 @@ "title": "onPostOpened example", "body": [ "", - " export function wixForum_onPostOpened(event) {", + " export function wixForumV1_onPostOpened(event) {", " const eventId = event.metadata.id", " const entityId = event.data.post._id;", " }", @@ -457,7 +457,7 @@ "id": "maturity-beta" } ], - "syntaxName": "wixForum_onPostOpened" + "syntaxName": "wixForumV1_onPostOpened" }, { "name": "onPostPinned", @@ -491,7 +491,7 @@ "title": "onPostPinned example", "body": [ "", - " export function wixForum_onPostPinned(event) {", + " export function wixForumV1_onPostPinned(event) {", " const eventId = event.metadata.id", " const entityId = event.data.post._id;", " }", @@ -507,7 +507,7 @@ "id": "maturity-beta" } ], - "syntaxName": "wixForum_onPostPinned" + "syntaxName": "wixForumV1_onPostPinned" }, { "name": "onPostReacted", @@ -591,7 +591,7 @@ "title": "onPostReported example", "body": [ "", - " export function wixForum_onPostReported(event) {", + " export function wixForumV1_onPostReported(event) {", " const eventId = event.metadata.id", " const entityId = event.data.post._id;", " }", @@ -607,7 +607,7 @@ "id": "maturity-beta" } ], - "syntaxName": "wixForum_onPostReported" + "syntaxName": "wixForumV1_onPostReported" }, { "name": "onPostUnliked", @@ -641,7 +641,7 @@ "title": "onPostUnliked example", "body": [ "", - " export function wixForum_onPostUnliked(event) {", + " export function wixForumV1_onPostUnliked(event) {", " const eventId = event.metadata.id", " const entityId = event.data.post._id;", " }", @@ -657,7 +657,7 @@ "id": "maturity-beta" } ], - "syntaxName": "wixForum_onPostUnliked" + "syntaxName": "wixForumV1_onPostUnliked" }, { "name": "onPostUnpinned", @@ -691,7 +691,7 @@ "title": "onPostUnpinned example", "body": [ "", - " export function wixForum_onPostUnpinned(event) {", + " export function wixForumV1_onPostUnpinned(event) {", " const eventId = event.metadata.id", " const entityId = event.data.post._id;", " }", @@ -707,7 +707,7 @@ "id": "maturity-beta" } ], - "syntaxName": "wixForum_onPostUnpinned" + "syntaxName": "wixForumV1_onPostUnpinned" }, { "name": "onPostUnreacted", @@ -791,7 +791,7 @@ "title": "onPostUpdated example", "body": [ "", - " export function wixForum_onPostUpdated(event) {", + " export function wixForumV1_onPostUpdated(event) {", " const eventId = event.metadata.id", " const entityId = event.entity._id;", " }", @@ -807,7 +807,7 @@ "id": "maturity-beta" } ], - "syntaxName": "wixForum_onPostUpdated" + "syntaxName": "wixForumV1_onPostUpdated" } ], "messages": [ @@ -1753,6 +1753,130 @@ ] } }, + { + "name": "forumV1CategoryIdentificationData", + "members": [ + { + "name": "anonymousVisitorId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of a site visitor that has not logged in to the site." + }, + { + "name": "appId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of an app." + }, + { + "name": "identityType", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Supported values:\n- `'ANONYMOUS_VISITOR'`\n- `'APP'`\n- `'MEMBER'`\n- `'UNKNOWN'`\n- `'WIX_USER'`" + }, + { + "name": "memberId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of a site visitor that has logged in to the site." + }, + { + "name": "wixUserId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of a Wix user (site owner, contributor, etc.)." + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfIdentificationDataIdOneOf", + "members": [ + "anonymousVisitorId", + "appId", + "memberId", + "wixUserId" + ] + } + ] + }, + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "forumV1CategoryIdentificationDataIdOneOf", + "members": [ + { + "name": "anonymousVisitorId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of a site visitor that has not logged in to the site." + }, + { + "name": "appId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of an app." + }, + { + "name": "memberId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of a site visitor that has logged in to the site." + }, + { + "name": "wixUserId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of a Wix user (site owner, contributor, etc.)." + } + ], + "docs": { + "description": [ + "" + ] + } + }, { "name": "forumV1CategoryKeyword", "members": [ @@ -1840,6 +1964,57 @@ ] } }, + { + "name": "forumV1CategoryMessageEnvelope", + "members": [ + { + "name": "data", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Stringify payload." + }, + { + "name": "eventType", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Event type." + }, + { + "name": "identity", + "optional": true, + "type": [ + { + "referenceType": "wix-forum-v2.Events.forumV1CategoryIdentificationData", + "displayName": "IdentificationData" + } + ], + "doc": "The identification type and identity data." + }, + { + "name": "instanceId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "App instance ID." + } + ], + "docs": { + "description": [ + "" + ] + } + }, { "name": "forumV1CategoryQueryCategoriesRequest", "members": [ @@ -2796,6 +2971,130 @@ ] } }, + { + "name": "forumV1PostIdentificationData", + "members": [ + { + "name": "anonymousVisitorId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of a site visitor that has not logged in to the site." + }, + { + "name": "appId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of an app." + }, + { + "name": "identityType", + "readOnly": true, + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Supported values:\n- `'ANONYMOUS_VISITOR'`\n- `'APP'`\n- `'MEMBER'`\n- `'UNKNOWN'`\n- `'WIX_USER'`" + }, + { + "name": "memberId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of a site visitor that has logged in to the site." + }, + { + "name": "wixUserId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of a Wix user (site owner, contributor, etc.)." + } + ], + "extra": { + "oneOfGroups": [ + { + "name": "oneOfIdentificationDataIdOneOf", + "members": [ + "anonymousVisitorId", + "appId", + "memberId", + "wixUserId" + ] + } + ] + }, + "docs": { + "description": [ + "" + ] + } + }, + { + "name": "forumV1PostIdentificationDataIdOneOf", + "members": [ + { + "name": "anonymousVisitorId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of a site visitor that has not logged in to the site." + }, + { + "name": "appId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of an app." + }, + { + "name": "memberId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of a site visitor that has logged in to the site." + }, + { + "name": "wixUserId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "ID of a Wix user (site owner, contributor, etc.)." + } + ], + "docs": { + "description": [ + "" + ] + } + }, { "name": "forumV1PostIdentity", "members": [ @@ -2938,6 +3237,57 @@ ] } }, + { + "name": "forumV1PostMessageEnvelope", + "members": [ + { + "name": "data", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Stringify payload." + }, + { + "name": "eventType", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "Event type." + }, + { + "name": "identity", + "optional": true, + "type": [ + { + "referenceType": "wix-forum-v2.Events.forumV1PostIdentificationData", + "displayName": "IdentificationData" + } + ], + "doc": "The identification type and identity data." + }, + { + "name": "instanceId", + "optional": true, + "type": [ + { + "nativeType": "string" + } + ], + "doc": "App instance ID." + } + ], + "docs": { + "description": [ + "" + ] + } + }, { "name": "forumV1PostMoved", "members": [