@wix/auto_sdk_bookings_resources 1.0.28 → 1.0.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -323,26 +323,43 @@ interface ListDeletedResourcesResponse {
323
323
  pagingMetadata?: CursorPagingMetadata;
324
324
  }
325
325
  interface CursorPagingMetadata {
326
- /** Number of items returned in the response. */
326
+ /**
327
+ * Number of items returned in the current response page.
328
+ *
329
+ * This count reflects the actual number of items in the current result set,
330
+ * which may be less than the requested limit if fewer items are available.
331
+ */
327
332
  count?: number | null;
328
- /** Cursor strings that point to the next page, previous page, or both. */
333
+ /**
334
+ * Navigation cursors for moving between result pages.
335
+ *
336
+ * Contains `next` and `prev` cursor tokens for pagination. Use the `next` cursor
337
+ * to retrieve subsequent pages and `prev` cursor to go back to previous pages.
338
+ * Learn more about cursor paging in the [API Query Language guide](https://dev.wix.com/api/rest/getting-started/api-query-language#getting-started_api-query-language_cursor-paging).
339
+ */
329
340
  cursors?: Cursors;
330
341
  /**
331
- * Whether there are more pages to retrieve following the current page.
342
+ * Indicates whether additional results are available beyond the current page.
332
343
  *
333
- * + `true`: Another page of results can be retrieved.
334
- * + `false`: This is the last page.
344
+ * - `true`: More results exist and can be retrieved using the `next` cursor.
345
+ * - `false`: This is the final page of results.
335
346
  */
336
347
  hasNext?: boolean | null;
337
348
  }
338
349
  interface Cursors {
339
350
  /**
340
- * Cursor string pointing to the next page in the list of results.
351
+ * Cursor token for retrieving the next page of results.
352
+ *
353
+ * Use this token in subsequent requests to continue pagination forward.
354
+ * Value is `null` when on the last page of results.
341
355
  * @maxLength 16000
342
356
  */
343
357
  next?: string | null;
344
358
  /**
345
- * Cursor pointing to the previous page in the list of results.
359
+ * Cursor token for retrieving the previous page of results.
360
+ *
361
+ * Use this token to navigate backwards through result pages.
362
+ * Value is `null` when on the first page of results.
346
363
  * @maxLength 16000
347
364
  */
348
365
  prev?: string | null;
@@ -426,40 +443,43 @@ interface BulkDeleteResourcesResponse {
426
443
  }
427
444
  interface SearchResourcesRequest {
428
445
  /**
429
- * Search condition. Refer to the *supported filters article*
430
- * ([SDK](https://dev.wix.com/docs/sdk/backend-modules/bookings/resources/supported-filters) | [REST](https://dev.wix.com/docs/rest/business-solutions/bookings/resources/resources-v2/filtering-and-sorting))
431
- * for a complete list of supported filters and sorting options.
446
+ * Search criteria including filter, sort, aggregations, and paging options.
447
+ *
448
+ * Refer to the supported filters article ([SDK](https://dev.wix.com/docs/sdk/backend-modules/bookings/resources/supported-filters) | [REST](https://dev.wix.com/docs/rest/business-solutions/bookings/resources/resources-v2/filtering-and-sorting)) for complete filter and sorting options.
432
449
  */
433
450
  search?: CursorSearch;
434
451
  }
435
452
  interface CursorSearch extends CursorSearchPagingMethodOneOf {
436
453
  /**
437
- * Cursor pointing to page of results.
438
- * When requesting 'cursor_paging.cursor', no `filter`, `sort` or `search` can be provided.
454
+ * Cursor-based paging for result navigation. When requesting `cursor_paging.cursor`,
455
+ * `filter`, `sort`, or `search` can't be specified.
439
456
  */
440
457
  cursorPaging?: CursorPaging;
441
- /** A filter object. See documentation [here](https://bo.wix.com/wix-docs/rnd/platformization-guidelines/api-query-language#platformization-guidelines_api-query-language_defining-in-protobuf) */
458
+ /**
459
+ * Filter object for narrowing search results. For example, to return only resources available at specific business locations: `"filter": {"single_resource.location_options.specific_location_options.business_locations.location_id": {"$in": ["location-id-1", "location-id-2"]}}`.
460
+ *
461
+ * Learn more about the filter format in the supported filters article ([SDK](https://dev.wix.com/docs/sdk/backend-modules/bookings/resources/supported-filters) | [REST](https://dev.wix.com/docs/rest/business-solutions/bookings/resources/resources-v2/filtering-and-sorting)).
462
+ */
442
463
  filter?: Record<string, any> | null;
443
464
  /**
444
- * Sort object in the form [{"fieldName":"sortField1"},{"fieldName":"sortField2","direction":"DESC"}]
465
+ * Array of sort objects specifying result order. For example, to sort by resource name in ascending order: `"sort": [{"fieldName": "name", "order": "ASC"}]`.
466
+ *
467
+ * Learn more about the sort format in the supported filters article ([SDK](https://dev.wix.com/docs/sdk/backend-modules/bookings/resources/supported-filters) | [REST](https://dev.wix.com/docs/rest/business-solutions/bookings/resources/resources-v2/filtering-and-sorting)).
445
468
  * @maxSize 10
446
469
  */
447
470
  sort?: Sorting[];
448
471
  /**
449
- * Aggregations | Faceted search: refers to a way to explore large amounts of data by displaying summaries about various partitions of the data and later allowing to narrow the navigation to a specific partition.
472
+ * Aggregations for grouping data into categories (facets) and providing summaries for each category.
473
+ * For example, use aggregations to categorize search results by resource type, management type, or location availability.
450
474
  * @maxSize 10
451
475
  */
452
476
  aggregations?: Aggregation[];
453
- /** Free text to match in searchable fields */
477
+ /** Free text to match in searchable fields. */
454
478
  search?: SearchDetails;
455
479
  /**
456
- * UTC offset or IANA time zone. Valid values are
457
- * ISO 8601 UTC offsets, such as +02:00 or -06:00,
458
- * and IANA time zone IDs, such as Europe/Rome
480
+ * Time zone in [IANA tz database format](https://en.wikipedia.org/wiki/Tz_database) or [ISO 8601 UTC offset format](https://en.wikipedia.org/wiki/ISO_8601#Time_offsets_from_UTC) for adjusting time fields in the specified filters and returned aggregation data. For example, `America/New_York`, `UTC`, or `+02:00`.
459
481
  *
460
- * Affects all filters and aggregations returned values.
461
- * You may override this behavior in a specific filter by providing
462
- * timestamps including time zone. e.g. `"2023-12-20T10:52:34.795Z"`
482
+ * Default: Time zone specified in the business [site properties](https://dev.wix.com/docs/rest/business-management/site-properties/properties/get-site-properties).
463
483
  * @maxLength 50
464
484
  */
465
485
  timeZone?: string | null;
@@ -467,8 +487,8 @@ interface CursorSearch extends CursorSearchPagingMethodOneOf {
467
487
  /** @oneof */
468
488
  interface CursorSearchPagingMethodOneOf {
469
489
  /**
470
- * Cursor pointing to page of results.
471
- * When requesting 'cursor_paging.cursor', no `filter`, `sort` or `search` can be provided.
490
+ * Cursor-based paging for result navigation. When requesting `cursor_paging.cursor`,
491
+ * `filter`, `sort`, or `search` can't be specified.
472
492
  */
473
493
  cursorPaging?: CursorPaging;
474
494
  }
@@ -488,31 +508,31 @@ declare enum SortOrder {
488
508
  /** @enumType */
489
509
  type SortOrderWithLiterals = SortOrder | 'ASC' | 'DESC';
490
510
  interface Aggregation extends AggregationKindOneOf {
491
- /** Value aggregation */
511
+ /** Value aggregation configuration. */
492
512
  value?: ValueAggregation;
493
- /** Range aggregation */
513
+ /** Range aggregation configuration. */
494
514
  range?: RangeAggregation;
495
- /** Scalar aggregation */
515
+ /** Scalar aggregation configuration. */
496
516
  scalar?: ScalarAggregation;
497
- /** Date histogram aggregation */
517
+ /** Date histogram aggregation configuration. */
498
518
  dateHistogram?: DateHistogramAggregation;
499
- /** Nested aggregation */
519
+ /** Nested aggregation configuration. */
500
520
  nested?: NestedAggregation;
501
521
  /**
502
- * User-defined name of aggregation, should be unique, will appear in aggregation results
522
+ * Aggregation name, returned in `aggregations.results.name`.
503
523
  * @maxLength 100
504
524
  */
505
525
  name?: string | null;
506
- /** Type of aggregation, client must provide matching aggregation field below */
526
+ /** Type of aggregation. Client must specify matching aggregation field below. */
507
527
  type?: AggregationTypeWithLiterals;
508
528
  /**
509
- * Field to aggregate by, use dot notation to specify json path
529
+ * Field to aggregate by. Use dot notation to specify a JSON path. For example `name` or `locationOptions.businessLocations.locationId`.
510
530
  * @maxLength 200
511
531
  */
512
532
  fieldPath?: string;
513
533
  /**
514
- * deprecated, use `nested` instead
515
- * @deprecated deprecated, use `nested` instead
534
+ * Deprecated. Use `nested` instead.
535
+ * @deprecated Deprecated. Use `nested` instead.
516
536
  * @replacedBy kind.nested
517
537
  * @targetRemovalDate 2024-03-30
518
538
  */
@@ -520,108 +540,123 @@ interface Aggregation extends AggregationKindOneOf {
520
540
  }
521
541
  /** @oneof */
522
542
  interface AggregationKindOneOf {
523
- /** Value aggregation */
543
+ /** Value aggregation configuration. */
524
544
  value?: ValueAggregation;
525
- /** Range aggregation */
545
+ /** Range aggregation configuration. */
526
546
  range?: RangeAggregation;
527
- /** Scalar aggregation */
547
+ /** Scalar aggregation configuration. */
528
548
  scalar?: ScalarAggregation;
529
- /** Date histogram aggregation */
549
+ /** Date histogram aggregation configuration. */
530
550
  dateHistogram?: DateHistogramAggregation;
531
- /** Nested aggregation */
551
+ /** Nested aggregation configuration. */
532
552
  nested?: NestedAggregation;
533
553
  }
534
554
  interface RangeBucket {
535
- /** Inclusive lower bound of the range. Required if to is not given */
555
+ /** Inclusive lower bound of the range. Required if `to` isn't specified. */
536
556
  from?: number | null;
537
- /** Exclusive upper bound of the range. Required if from is not given */
557
+ /** Exclusive upper bound of the range. Required if `from` isn't specified. */
538
558
  to?: number | null;
539
559
  }
540
560
  declare enum SortType {
541
- /** Should sort by number of matches */
561
+ /** Number of matches in the results. */
542
562
  COUNT = "COUNT",
543
- /** Should sort by value of the field alphabetically */
563
+ /** Alphabetically by the field value. */
544
564
  VALUE = "VALUE"
545
565
  }
546
566
  /** @enumType */
547
567
  type SortTypeWithLiterals = SortType | 'COUNT' | 'VALUE';
548
568
  declare enum SortDirection {
549
- /** Should sort in descending order */
569
+ /** Descending order. */
550
570
  DESC = "DESC",
551
- /** Should sort in ascending order */
571
+ /** Ascending order. */
552
572
  ASC = "ASC"
553
573
  }
554
574
  /** @enumType */
555
575
  type SortDirectionWithLiterals = SortDirection | 'DESC' | 'ASC';
556
576
  declare enum MissingValues {
557
- /** Should missing values be excluded from the aggregation results */
577
+ /** Exclude missing values from the aggregation results. */
558
578
  EXCLUDE = "EXCLUDE",
559
- /** Should missing values be included in the aggregation results */
579
+ /** Include missing values in the aggregation results. */
560
580
  INCLUDE = "INCLUDE"
561
581
  }
562
582
  /** @enumType */
563
583
  type MissingValuesWithLiterals = MissingValues | 'EXCLUDE' | 'INCLUDE';
564
584
  interface IncludeMissingValuesOptions {
565
585
  /**
566
- * Can specify custom bucket name. Defaults are [string -> "N/A"], [int -> "0"], [bool -> "false"] ...
586
+ * Custom bucket name for missing values.
587
+ *
588
+ * Default values:
589
+ * - string: `N/A`
590
+ * - int: `0`
591
+ * - bool: `false`
567
592
  * @maxLength 20
568
593
  */
569
594
  addToBucket?: string;
570
595
  }
571
596
  declare enum ScalarType {
572
597
  UNKNOWN_SCALAR_TYPE = "UNKNOWN_SCALAR_TYPE",
573
- /** Count of distinct values */
598
+ /** Total number of distinct values. */
574
599
  COUNT_DISTINCT = "COUNT_DISTINCT",
575
- /** Minimum value */
600
+ /** Minimum value. */
576
601
  MIN = "MIN",
577
- /** Maximum value */
602
+ /** Maximum value. */
578
603
  MAX = "MAX"
579
604
  }
580
605
  /** @enumType */
581
606
  type ScalarTypeWithLiterals = ScalarType | 'UNKNOWN_SCALAR_TYPE' | 'COUNT_DISTINCT' | 'MIN' | 'MAX';
582
607
  interface ValueAggregation extends ValueAggregationOptionsOneOf {
583
- /** Options for including missing values */
608
+ /** Options for including missing values in the aggregation results. */
584
609
  includeOptions?: IncludeMissingValuesOptions;
585
- /** Should sort by number of matches or value of the field */
610
+ /** Whether to sort by number of matches or value of the field. */
586
611
  sortType?: SortTypeWithLiterals;
587
- /** Should sort in ascending or descending order */
612
+ /** Whether to sort in ascending or descending order. */
588
613
  sortDirection?: SortDirectionWithLiterals;
589
- /** How many aggregations would you like to return? Can be between 1 and 250. 10 is the default. */
614
+ /**
615
+ * Number of aggregations to return.
616
+ *
617
+ * Min: `1`
618
+ * Max: `250`
619
+ * Default: `10`
620
+ */
590
621
  limit?: number | null;
591
- /** Should missing values be included or excluded from the aggregation results. Default is EXCLUDE */
622
+ /**
623
+ * Whether missing values should be included or excluded from the aggregation results.
624
+ *
625
+ * Default: `EXCLUDE`
626
+ */
592
627
  missingValues?: MissingValuesWithLiterals;
593
628
  }
594
629
  /** @oneof */
595
630
  interface ValueAggregationOptionsOneOf {
596
- /** Options for including missing values */
631
+ /** Options for including missing values in the aggregation results. */
597
632
  includeOptions?: IncludeMissingValuesOptions;
598
633
  }
599
634
  declare enum NestedAggregationType {
600
635
  UNKNOWN_AGGREGATION_TYPE = "UNKNOWN_AGGREGATION_TYPE",
601
- /** An aggregation where result buckets are dynamically built - one per unique value */
636
+ /** Calculates the distribution of a specific field's values within a dataset, providing insights into the overall distribution and key statistics of those values. */
602
637
  VALUE = "VALUE",
603
- /** An aggregation, where user can define set of ranges - each representing a bucket */
638
+ /** Calculates the count of the values from the specified field in the dataset that fall within the range of each bucket you define. */
604
639
  RANGE = "RANGE",
605
- /** A single-value metric aggregation - e.g. min, max, sum, avg */
640
+ /** Calculates a single numerical value from a dataset, summarizing the dataset into 1 key metric: `COUNT_DISTINCT`, `SUM`, `AVG`, `MIN`, or `MAX`. */
606
641
  SCALAR = "SCALAR",
607
- /** An aggregation, where result buckets are dynamically built - one per time interval (hour, day, week, etc.) */
642
+ /** Calculates the count of time values from the specified field in the dataset that fall within each time interval you define (hour, day, week, etc.). */
608
643
  DATE_HISTOGRAM = "DATE_HISTOGRAM"
609
644
  }
610
645
  /** @enumType */
611
646
  type NestedAggregationTypeWithLiterals = NestedAggregationType | 'UNKNOWN_AGGREGATION_TYPE' | 'VALUE' | 'RANGE' | 'SCALAR' | 'DATE_HISTOGRAM';
612
647
  interface RangeAggregation {
613
648
  /**
614
- * List of range buckets, where during aggregation each entity will be placed in the first bucket where its value falls into based on provided range bounds
649
+ * List of range buckets defining the ranges for aggregation. During aggregation, each entity is placed in the first bucket where its value falls within the specified range bounds.
615
650
  * @maxSize 50
616
651
  */
617
652
  buckets?: RangeBucket[];
618
653
  }
619
654
  interface ScalarAggregation {
620
- /** Define the operator for the scalar aggregation */
655
+ /** Operator for the scalar aggregation, for example `COUNT_DISTINCT`, `MIN`, `MAX`. */
621
656
  type?: ScalarTypeWithLiterals;
622
657
  }
623
658
  interface DateHistogramAggregation {
624
- /** Interval for date histogram aggregation */
659
+ /** Time interval for date histogram aggregation, for example `DAY`, `HOUR`, `MONTH`. */
625
660
  interval?: IntervalWithLiterals;
626
661
  }
627
662
  declare enum Interval {
@@ -644,315 +679,331 @@ declare enum Interval {
644
679
  /** @enumType */
645
680
  type IntervalWithLiterals = Interval | 'UNKNOWN_INTERVAL' | 'YEAR' | 'MONTH' | 'WEEK' | 'DAY' | 'HOUR' | 'MINUTE' | 'SECOND';
646
681
  interface NestedAggregationItem extends NestedAggregationItemKindOneOf {
647
- /** Value aggregation */
682
+ /** Value aggregation configuration. Calculates the distribution of field values within the dataset. */
648
683
  value?: ValueAggregation;
649
- /** Range aggregation */
684
+ /** Range aggregation configuration. Calculates counts within user-defined value ranges. */
650
685
  range?: RangeAggregation;
651
- /** Scalar aggregation */
686
+ /** Scalar aggregation configuration. Calculates single numerical metrics like count, min, max, sum, or average. */
652
687
  scalar?: ScalarAggregation;
653
- /** Date histogram aggregation */
688
+ /** Date histogram aggregation configuration. Calculates counts within time intervals. */
654
689
  dateHistogram?: DateHistogramAggregation;
655
690
  /**
656
- * User-defined name of aggregation, should be unique, will appear in aggregation results
691
+ * User-defined name of aggregation. Must be unique and will appear in aggregation results.
657
692
  * @maxLength 100
658
693
  */
659
694
  name?: string | null;
660
- /** Type of aggregation, client must provide matching aggregation field below */
695
+ /** Type of aggregation. Client must specify matching aggregation field below. */
661
696
  type?: NestedAggregationTypeWithLiterals;
662
697
  /**
663
- * Field to aggregate by, use dont notation to specify json path
698
+ * Path to the field to aggregate by in dot notation. For example `name` or `locationOptions.businessLocations.locationId`.
664
699
  * @maxLength 200
665
700
  */
666
701
  fieldPath?: string;
667
702
  }
668
703
  /** @oneof */
669
704
  interface NestedAggregationItemKindOneOf {
670
- /** Value aggregation */
705
+ /** Value aggregation configuration. Calculates the distribution of field values within the dataset. */
671
706
  value?: ValueAggregation;
672
- /** Range aggregation */
707
+ /** Range aggregation configuration. Calculates counts within user-defined value ranges. */
673
708
  range?: RangeAggregation;
674
- /** Scalar aggregation */
709
+ /** Scalar aggregation configuration. Calculates single numerical metrics like count, min, max, sum, or average. */
675
710
  scalar?: ScalarAggregation;
676
- /** Date histogram aggregation */
711
+ /** Date histogram aggregation configuration. Calculates counts within time intervals. */
677
712
  dateHistogram?: DateHistogramAggregation;
678
713
  }
679
714
  declare enum AggregationType {
680
715
  UNKNOWN_AGGREGATION_TYPE = "UNKNOWN_AGGREGATION_TYPE",
681
- /** An aggregation where result buckets are dynamically built - one per unique value */
716
+ /** Calculates the distribution of a specific field's values within a dataset, providing insights into the overall distribution and key statistics of those values. */
682
717
  VALUE = "VALUE",
683
- /** An aggregation, where user can define set of ranges - each representing a bucket */
718
+ /** Calculates the count of the values from the specified field in the dataset that fall within the range of each bucket you define. */
684
719
  RANGE = "RANGE",
685
- /** A single-value metric aggregation - e.g. min, max, sum, avg */
720
+ /** Calculates a single numerical value from a dataset, summarizing the dataset into 1 key metric: `COUNT_DISTINCT`, `SUM`, `AVG`, `MIN`, or `MAX`. */
686
721
  SCALAR = "SCALAR",
687
- /** An aggregation, where result buckets are dynamically built - one per time interval (hour, day, week, etc.) */
722
+ /** Calculates the count of time values from the specified field in the dataset that fall within each time interval you define (hour, day, week, etc.). */
688
723
  DATE_HISTOGRAM = "DATE_HISTOGRAM",
689
- /** Multi-level aggregation, where each next aggregation is nested within previous one */
724
+ /** Flattened list of aggregations, where each aggregation is nested within previous 1. */
690
725
  NESTED = "NESTED"
691
726
  }
692
727
  /** @enumType */
693
728
  type AggregationTypeWithLiterals = AggregationType | 'UNKNOWN_AGGREGATION_TYPE' | 'VALUE' | 'RANGE' | 'SCALAR' | 'DATE_HISTOGRAM' | 'NESTED';
694
- /** Nested aggregation expressed through a list of aggregation where each next aggregation is nested within previous one */
729
+ /** Nested aggregation for multi-level faceted search. Allows exploring large amounts of data through multiple levels of categorization, where each subsequent aggregation is nested within the previous aggregation to create hierarchical data summaries. */
695
730
  interface NestedAggregation {
696
731
  /**
697
- * Flattened list of aggregations, where each next aggregation is nested within previous one
732
+ * Flattened list of aggregations where each next aggregation is nested within the previous 1.
698
733
  * @minSize 2
699
734
  * @maxSize 3
700
735
  */
701
736
  nestedAggregations?: NestedAggregationItem[];
702
737
  }
703
738
  interface GroupByAggregation extends GroupByAggregationKindOneOf {
704
- /** Value aggregation configuration */
739
+ /** Value aggregation configuration. */
705
740
  value?: ValueAggregation;
706
741
  /**
707
- * User-defined name of aggregation, should be unique, will appear in aggregation results
742
+ * User-defined name of aggregation. Must be unique and will appear in aggregation results.
708
743
  * @maxLength 100
709
744
  */
710
745
  name?: string | null;
711
746
  /**
712
- * Field to aggregate by
747
+ * Path to the field to aggregate by in dot notation. For example `name` or `locationOptions.businessLocations.locationId`.
713
748
  * @maxLength 200
714
749
  */
715
750
  fieldPath?: string;
716
751
  }
717
752
  /** @oneof */
718
753
  interface GroupByAggregationKindOneOf {
719
- /** Value aggregation configuration */
754
+ /** Value aggregation configuration. */
720
755
  value?: ValueAggregation;
721
756
  }
722
757
  interface SearchDetails {
723
- /** Defines how separate search terms in `expression` are combined */
758
+ /** Search mode. Defines the search logic for combining multiple terms in the `expression`. */
724
759
  mode?: ModeWithLiterals;
725
760
  /**
726
- * Search term or expression
761
+ * Search term or expression.
727
762
  * @maxLength 100
728
763
  */
729
764
  expression?: string | null;
730
765
  /**
731
- * Fields to search in. If empty - will search in all searchable fields. Use dot notation to specify json path
766
+ * Fields to search in. If the array is empty, all searchable fields are searched. Use dot notation to specify a JSON path. For example, `locationOptions.availableInAllLocations`.
732
767
  * @maxLength 200
733
768
  * @maxSize 20
734
769
  */
735
770
  fields?: string[];
736
- /** Flag if should use auto fuzzy search (allowing typos by a managed proximity algorithm) */
771
+ /** Whether to enable the search function to use an algorithm to automatically find results that are close to the search expression, such as typos and declensions. */
737
772
  fuzzy?: boolean;
738
773
  }
739
774
  declare enum Mode {
740
- /** Any of the search terms must be present */
775
+ /** At least 1 of the search terms must be present. */
741
776
  OR = "OR",
742
- /** All search terms must be present */
777
+ /** All search terms must be present. */
743
778
  AND = "AND"
744
779
  }
745
780
  /** @enumType */
746
781
  type ModeWithLiterals = Mode | 'OR' | 'AND';
747
782
  interface SearchResourcesResponse {
748
- /** Retrieved resources. */
783
+ /**
784
+ * Retrieved resources that match the search criteria specified in the request.
785
+ *
786
+ * Each resource includes all available information such as name, type, management details,
787
+ * location options, working hour schedules, and availability configurations.
788
+ */
749
789
  resources?: Resource[];
750
- /** Paging metadata. */
790
+ /**
791
+ * Cursor-based paging metadata for navigating through search results.
792
+ *
793
+ * Contains navigation information including the current page cursor, whether additional
794
+ * results are available, and result counts. Use the `next` cursor to fetch subsequent pages.
795
+ */
751
796
  pagingMetadata?: CursorPagingMetadata;
752
- /** Aggregation results. */
797
+ /**
798
+ * Aggregation results derived from the aggregations specified in the search request.
799
+ *
800
+ * Provides analytical summaries such as resource counts by type, location distribution,
801
+ * management type statistics, or custom groupings. Only populated when aggregations
802
+ * are included in the search criteria.
803
+ */
753
804
  aggregationData?: AggregationData;
754
805
  }
755
806
  interface AggregationData {
756
807
  /**
757
- * key = aggregation name (as derived from search request)
808
+ * Array of aggregation results, each containing the aggregation metadata and its calculated values for the specified search criteria.
758
809
  * @maxSize 10000
759
810
  */
760
811
  results?: AggregationResults[];
761
812
  }
762
813
  interface ValueAggregationResult {
763
814
  /**
764
- * Value of the field
815
+ * Value of the field.
765
816
  * @maxLength 100
766
817
  */
767
818
  value?: string;
768
- /** Count of entities with this value */
819
+ /** Count of entities with this value. */
769
820
  count?: number;
770
821
  }
771
822
  interface RangeAggregationResult {
772
- /** Inclusive lower bound of the range */
823
+ /** Inclusive lower bound of the range. */
773
824
  from?: number | null;
774
- /** Exclusive upper bound of the range */
825
+ /** Exclusive upper bound of the range. */
775
826
  to?: number | null;
776
- /** Count of entities in this range */
827
+ /** Count of entities in this range. */
777
828
  count?: number;
778
829
  }
779
830
  interface NestedAggregationResults extends NestedAggregationResultsResultOneOf {
780
- /** Value aggregation results */
831
+ /** Value aggregation results. */
781
832
  values?: ValueResults;
782
- /** Range aggregation results */
833
+ /** Range aggregation results. */
783
834
  ranges?: RangeResults;
784
- /** Scalar aggregation results */
835
+ /** Scalar aggregation results. */
785
836
  scalar?: AggregationResultsScalarResult;
786
837
  /**
787
- * User-defined name of aggregation, matches the one provided in request
838
+ * User-defined name of aggregation, matches the one specified in request.
788
839
  * @maxLength 100
789
840
  */
790
841
  name?: string;
791
- /** Type of aggregation that matches result */
842
+ /** Type of aggregation that matches result. */
792
843
  type?: AggregationTypeWithLiterals;
793
844
  /**
794
- * Field to aggregate by, matches the one provided in request
845
+ * Path to the field to aggregate by in dot notation. For example `name` or `locationOptions.businessLocations.locationId`.
795
846
  * @maxLength 200
796
847
  */
797
848
  fieldPath?: string;
798
849
  }
799
850
  /** @oneof */
800
851
  interface NestedAggregationResultsResultOneOf {
801
- /** Value aggregation results */
852
+ /** Value aggregation results. */
802
853
  values?: ValueResults;
803
- /** Range aggregation results */
854
+ /** Range aggregation results. */
804
855
  ranges?: RangeResults;
805
- /** Scalar aggregation results */
856
+ /** Scalar aggregation results. */
806
857
  scalar?: AggregationResultsScalarResult;
807
858
  }
808
859
  interface ValueResults {
809
860
  /**
810
- * List of value aggregations
861
+ * Array of value aggregation results, each containing a field value and the count of entities with that value.
811
862
  * @maxSize 250
812
863
  */
813
864
  results?: ValueAggregationResult[];
814
865
  }
815
866
  interface RangeResults {
816
867
  /**
817
- * List of ranges returned in same order as requested
868
+ * Array of range aggregation results returned in the same order as requested, each containing range bounds and count of entities within that range.
818
869
  * @maxSize 50
819
870
  */
820
871
  results?: RangeAggregationResult[];
821
872
  }
822
873
  interface AggregationResultsScalarResult {
823
- /** Type of scalar aggregation */
874
+ /** Type of scalar aggregation. */
824
875
  type?: ScalarTypeWithLiterals;
825
- /** Value of the scalar aggregation */
876
+ /** Value of the scalar aggregation. */
826
877
  value?: number;
827
878
  }
828
879
  interface NestedValueAggregationResult {
829
880
  /**
830
- * Value of the field
881
+ * Value of the field.
831
882
  * @maxLength 1000
832
883
  */
833
884
  value?: string;
834
- /** Nested aggregations */
885
+ /** Nested aggregations result data. */
835
886
  nestedResults?: NestedAggregationResults;
836
887
  }
837
888
  interface ValueResult {
838
889
  /**
839
- * Value of the field
890
+ * Value of the field.
840
891
  * @maxLength 1000
841
892
  */
842
893
  value?: string;
843
- /** Count of entities with this value */
894
+ /** Count of entities with this value. */
844
895
  count?: number | null;
845
896
  }
846
897
  interface RangeResult {
847
- /** Inclusive lower bound of the range */
898
+ /** Inclusive lower bound of the range. */
848
899
  from?: number | null;
849
- /** Exclusive upper bound of the range */
900
+ /** Exclusive upper bound of the range. */
850
901
  to?: number | null;
851
- /** Count of entities in this range */
902
+ /** Count of entities in this range. */
852
903
  count?: number | null;
853
904
  }
854
905
  interface ScalarResult {
855
- /** Value of the scalar aggregation */
906
+ /** Value of the scalar aggregation. */
856
907
  value?: number;
857
908
  }
858
909
  interface NestedResultValue extends NestedResultValueResultOneOf {
859
- /** Value aggregation result */
910
+ /** Value aggregation result. */
860
911
  value?: ValueResult;
861
- /** Range aggregation result */
912
+ /** Range aggregation result. */
862
913
  range?: RangeResult;
863
- /** Scalar aggregation result */
914
+ /** Scalar aggregation result. */
864
915
  scalar?: ScalarResult;
865
- /** Date histogram aggregation result */
916
+ /** Date histogram aggregation result. */
866
917
  dateHistogram?: ValueResult;
867
918
  }
868
919
  /** @oneof */
869
920
  interface NestedResultValueResultOneOf {
870
- /** Value aggregation result */
921
+ /** Value aggregation result. */
871
922
  value?: ValueResult;
872
- /** Range aggregation result */
923
+ /** Range aggregation result. */
873
924
  range?: RangeResult;
874
- /** Scalar aggregation result */
925
+ /** Scalar aggregation result. */
875
926
  scalar?: ScalarResult;
876
- /** Date histogram aggregation result */
927
+ /** Date histogram aggregation result. */
877
928
  dateHistogram?: ValueResult;
878
929
  }
879
930
  interface Results {
880
- /** List of nested aggregations */
931
+ /** Map of nested aggregation results, keyed by aggregation name. */
881
932
  results?: Record<string, NestedResultValue>;
882
933
  }
883
934
  interface DateHistogramResult {
884
935
  /**
885
- * Date in ISO 8601 format
936
+ * Date in [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601).
886
937
  * @maxLength 100
887
938
  */
888
939
  value?: string;
889
- /** Count of documents in the bucket */
940
+ /** Count of documents in the bucket. */
890
941
  count?: number;
891
942
  }
892
943
  interface GroupByValueResults {
893
944
  /**
894
- * List of value aggregations
945
+ * Array of nested value aggregation results, each containing a field value and the associated nested aggregation data.
895
946
  * @maxSize 1000
896
947
  */
897
948
  results?: NestedValueAggregationResult[];
898
949
  }
899
950
  interface DateHistogramResults {
900
951
  /**
901
- * List of date histogram aggregations
952
+ * Array of date histogram aggregation results, each containing a date bucket and its count.
902
953
  * @maxSize 200
903
954
  */
904
955
  results?: DateHistogramResult[];
905
956
  }
906
957
  /**
907
958
  * Results of `NESTED` aggregation type in a flattened form
908
- * aggregations in resulting array are keyed by requested aggregation `name`.
959
+ * Aggregations in resulting array are keyed by requested aggregation `name`.
909
960
  */
910
961
  interface NestedResults {
911
962
  /**
912
- * List of nested aggregations
963
+ * Array of nested aggregation result groups, each containing multiple aggregation results.
913
964
  * @maxSize 1000
914
965
  */
915
966
  results?: Results[];
916
967
  }
917
968
  interface AggregationResults extends AggregationResultsResultOneOf {
918
- /** Value aggregation results */
969
+ /** Value aggregation results. */
919
970
  values?: ValueResults;
920
- /** Range aggregation results */
971
+ /** Range aggregation results. */
921
972
  ranges?: RangeResults;
922
- /** Scalar aggregation results */
973
+ /** Scalar aggregation results. */
923
974
  scalar?: AggregationResultsScalarResult;
924
- /** Group by value aggregation results */
975
+ /** Group by value aggregation results. */
925
976
  groupedByValue?: GroupByValueResults;
926
- /** Date histogram aggregation results */
977
+ /** Date histogram aggregation results. */
927
978
  dateHistogram?: DateHistogramResults;
928
- /** Nested aggregation results */
979
+ /** Nested aggregation results. */
929
980
  nested?: NestedResults;
930
981
  /**
931
- * User-defined name of aggregation as derived from search request
982
+ * User-defined name of aggregation as derived from search request.
932
983
  * @maxLength 100
933
984
  */
934
985
  name?: string;
935
- /** Type of aggregation that must match provided kind as derived from search request */
986
+ /** Type of aggregation that must match specified kind as derived from search request. */
936
987
  type?: AggregationTypeWithLiterals;
937
988
  /**
938
- * Field to aggregate by as derived from search request
989
+ * Path to the field to aggregate by in dot notation. For example `name` or `locationOptions.businessLocations.locationId`.
939
990
  * @maxLength 200
940
991
  */
941
992
  fieldPath?: string;
942
993
  }
943
994
  /** @oneof */
944
995
  interface AggregationResultsResultOneOf {
945
- /** Value aggregation results */
996
+ /** Value aggregation results. */
946
997
  values?: ValueResults;
947
- /** Range aggregation results */
998
+ /** Range aggregation results. */
948
999
  ranges?: RangeResults;
949
- /** Scalar aggregation results */
1000
+ /** Scalar aggregation results. */
950
1001
  scalar?: AggregationResultsScalarResult;
951
- /** Group by value aggregation results */
1002
+ /** Group by value aggregation results. */
952
1003
  groupedByValue?: GroupByValueResults;
953
- /** Date histogram aggregation results */
1004
+ /** Date histogram aggregation results. */
954
1005
  dateHistogram?: DateHistogramResults;
955
- /** Nested aggregation results */
1006
+ /** Nested aggregation results. */
956
1007
  nested?: NestedResults;
957
1008
  }
958
1009
  interface QueryResourcesRequest {
@@ -1343,8 +1394,8 @@ interface ResourceSearchSpec extends SearchSpec {
1343
1394
  type CommonSearchWithEntityContext = Search<Resource, ResourceSearchSpec>;
1344
1395
  type ResourceSearch = {
1345
1396
  /**
1346
- Cursor pointing to page of results.
1347
- When requesting 'cursor_paging.cursor', no `filter`, `sort` or `search` can be provided.
1397
+ Cursor-based paging for result navigation. When requesting `cursor_paging.cursor`,
1398
+ `filter`, `sort`, or `search` can't be specified.
1348
1399
  */
1349
1400
  cursorPaging?: {
1350
1401
  /**
@@ -1362,11 +1413,15 @@ type ResourceSearch = {
1362
1413
  cursor?: NonNullable<CommonSearchWithEntityContext['cursorPaging']>['cursor'] | null;
1363
1414
  };
1364
1415
  /**
1365
- A filter object. See documentation [here](https://bo.wix.com/wix-docs/rnd/platformization-guidelines/api-query-language#platformization-guidelines_api-query-language_defining-in-protobuf)
1416
+ Filter object for narrowing search results. For example, to return only resources available at specific business locations: `"filter": {"single_resource.location_options.specific_location_options.business_locations.location_id": {"$in": ["location-id-1", "location-id-2"]}}`.
1417
+
1418
+ Learn more about the filter format in the supported filters article ([SDK](https://dev.wix.com/docs/sdk/backend-modules/bookings/resources/supported-filters) | [REST](https://dev.wix.com/docs/rest/business-solutions/bookings/resources/resources-v2/filtering-and-sorting)).
1366
1419
  */
1367
1420
  filter?: CommonSearchWithEntityContext['filter'] | null;
1368
1421
  /**
1369
- Sort object in the form [{"fieldName":"sortField1"},{"fieldName":"sortField2","direction":"DESC"}]
1422
+ Array of sort objects specifying result order. For example, to sort by resource name in ascending order: `"sort": [{"fieldName": "name", "order": "ASC"}]`.
1423
+
1424
+ Learn more about the sort format in the supported filters article ([SDK](https://dev.wix.com/docs/sdk/backend-modules/bookings/resources/supported-filters) | [REST](https://dev.wix.com/docs/rest/business-solutions/bookings/resources/resources-v2/filtering-and-sorting)).
1370
1425
  @maxSize: 10
1371
1426
  */
1372
1427
  sort?: {
@@ -1381,84 +1436,81 @@ type ResourceSearch = {
1381
1436
  order?: NonNullable<CommonSearchWithEntityContext['sort']>[number]['order'];
1382
1437
  }[];
1383
1438
  /**
1384
- Aggregations | Faceted search: refers to a way to explore large amounts of data by displaying summaries about various partitions of the data and later allowing to narrow the navigation to a specific partition.
1439
+ Aggregations for grouping data into categories (facets) and providing summaries for each category.
1440
+ For example, use aggregations to categorize search results by resource type, management type, or location availability.
1385
1441
  @maxSize: 10
1386
1442
  */
1387
1443
  aggregations?: {
1388
1444
  /**
1389
- Value aggregation
1445
+ Value aggregation configuration.
1390
1446
  */
1391
1447
  value?: NonNullable<CommonSearchWithEntityContext['aggregations']>[number]['value'];
1392
1448
  /**
1393
- Range aggregation
1449
+ Range aggregation configuration.
1394
1450
  */
1395
1451
  range?: NonNullable<CommonSearchWithEntityContext['aggregations']>[number]['range'];
1396
1452
  /**
1397
- Scalar aggregation
1453
+ Scalar aggregation configuration.
1398
1454
  */
1399
1455
  scalar?: NonNullable<CommonSearchWithEntityContext['aggregations']>[number]['scalar'];
1400
1456
  /**
1401
- Date histogram aggregation
1457
+ Date histogram aggregation configuration.
1402
1458
  */
1403
1459
  dateHistogram?: NonNullable<CommonSearchWithEntityContext['aggregations']>[number]['dateHistogram'];
1404
1460
  /**
1405
- Nested aggregation
1461
+ Nested aggregation configuration.
1406
1462
  */
1407
1463
  nested?: NonNullable<CommonSearchWithEntityContext['aggregations']>[number]['nested'];
1408
1464
  /**
1409
- User-defined name of aggregation, should be unique, will appear in aggregation results
1465
+ Aggregation name, returned in `aggregations.results.name`.
1410
1466
  @maxLength: 100
1411
1467
  */
1412
1468
  name?: NonNullable<CommonSearchWithEntityContext['aggregations']>[number]['name'] | null;
1413
1469
  /**
1414
- Type of aggregation, client must provide matching aggregation field below
1470
+ Type of aggregation. Client must specify matching aggregation field below.
1415
1471
  */
1416
1472
  type?: NonNullable<CommonSearchWithEntityContext['aggregations']>[number]['type'];
1417
1473
  /**
1418
- Field to aggregate by, use dot notation to specify json path
1474
+ Field to aggregate by. Use dot notation to specify a JSON path. For example `name` or `locationOptions.businessLocations.locationId`.
1419
1475
  @maxLength: 200
1420
1476
  */
1421
1477
  fieldPath?: NonNullable<CommonSearchWithEntityContext['aggregations']>[number]['fieldPath'];
1422
1478
  /**
1423
- deprecated, use `nested` instead
1424
- @deprecated: deprecated, use `nested` instead,
1479
+ Deprecated. Use `nested` instead.
1480
+ @deprecated: Deprecated. Use `nested` instead.,
1425
1481
  @replacedBy: kind.nested,
1426
1482
  @targetRemovalDate: 2024-03-30
1427
1483
  */
1428
1484
  groupBy?: NonNullable<CommonSearchWithEntityContext['aggregations']>[number]['groupBy'];
1429
1485
  }[];
1430
1486
  /**
1431
- Free text to match in searchable fields
1487
+ Free text to match in searchable fields.
1432
1488
  */
1433
1489
  search?: {
1434
1490
  /**
1435
- Defines how separate search terms in `expression` are combined
1491
+ Search mode. Defines the search logic for combining multiple terms in the `expression`.
1436
1492
  */
1437
1493
  mode?: NonNullable<CommonSearchWithEntityContext['search']>['mode'];
1438
1494
  /**
1439
- Search term or expression
1495
+ Search term or expression.
1440
1496
  @maxLength: 100
1441
1497
  */
1442
1498
  expression?: NonNullable<CommonSearchWithEntityContext['search']>['expression'] | null;
1443
1499
  /**
1444
- Fields to search in. If empty - will search in all searchable fields. Use dot notation to specify json path
1500
+ Fields to search in. If the array is empty, all searchable fields are searched. Use dot notation to specify a JSON path. For example, `locationOptions.availableInAllLocations`.
1445
1501
  @maxLength: 200,
1446
1502
  @maxSize: 20
1447
1503
  */
1448
1504
  fields?: NonNullable<CommonSearchWithEntityContext['search']>['fields'];
1449
1505
  /**
1450
- Flag if should use auto fuzzy search (allowing typos by a managed proximity algorithm)
1506
+ Whether to enable the search function to use an algorithm to automatically find results that are close to the search expression, such as typos and declensions.
1451
1507
  */
1452
1508
  fuzzy?: NonNullable<CommonSearchWithEntityContext['search']>['fuzzy'];
1453
1509
  };
1454
1510
  /**
1455
- UTC offset or IANA time zone. Valid values are
1456
- ISO 8601 UTC offsets, such as +02:00 or -06:00,
1457
- and IANA time zone IDs, such as Europe/Rome
1511
+ Time zone in [IANA tz database format](https://en.wikipedia.org/wiki/Tz_database) or [ISO 8601 UTC offset format](https://en.wikipedia.org/wiki/ISO_8601#Time_offsets_from_UTC) for adjusting time fields in the specified filters and returned aggregation data. For example, `America/New_York`, `UTC`, or `+02:00`.
1458
1512
 
1459
- Affects all filters and aggregations returned values.
1460
- You may override this behavior in a specific filter by providing
1461
- timestamps including time zone. e.g. `"2023-12-20T10:52:34.795Z"`
1513
+ Default: Time zone specified in the business [site properties](https://dev.wix.com/docs/rest/business-management/site-properties/properties/get-site-properties).
1462
1514
  @maxLength: 50
1463
1515
  */
1464
1516
  timeZone?: CommonSearchWithEntityContext['timeZone'] | null;