{"version":3,"sources":["../../../src/hub-v1-job-movement-jobs.public.ts","../../../src/hub-v1-job-movement-jobs.universal.ts","../../../src/hub-v1-job-movement-jobs.http.ts","../../../src/hub-v1-job-movement-jobs.context.ts"],"sourcesContent":["import { renameKeysFromRESTResponseToSDKResponse } from '@wix/sdk-runtime/rename-all-nested-keys';\nimport { transformRESTFloatToSDKFloat } from '@wix/sdk-runtime/transformations/float';\nimport { transformRESTTimestampToSDKTimestamp } from '@wix/sdk-runtime/transformations/timestamp';\nimport { transformPaths } from '@wix/sdk-runtime/transformations/transform-paths';\nimport { EventDefinition, HttpClient, NonNullablePaths } from '@wix/sdk-types';\nimport {\n  CreateFileUploadUrlOptions,\n  CreateFileUploadUrlResponse,\n  DataMovementJob,\n  DataMovementJobQuery,\n  Destination,\n  JobCreatedEnvelope,\n  JobDeletedEnvelope,\n  JobUpdatedEnvelope,\n  JobsQueryBuilder,\n  ListJobsOptions,\n  ListJobsResponse,\n  ListMovementLogsOptions,\n  ListMovementLogsResponse,\n  QueryJobsResponse,\n  Source,\n  SubmitJobOptions,\n  SubmitJobResponse,\n  TerminateJobResponse,\n  createFileUploadUrl as universalCreateFileUploadUrl,\n  getJob as universalGetJob,\n  listJobs as universalListJobs,\n  listMovementLogs as universalListMovementLogs,\n  queryJobs as universalQueryJobs,\n  submitJob as universalSubmitJob,\n  terminateJob as universalTerminateJob,\n  typedQueryJobs as universalTypedQueryJobs,\n} from './hub-v1-job-movement-jobs.universal.js';\n\nexport const __metadata = { PACKAGE_NAME: '@wix/data' };\n\nexport function submitJob(httpClient: HttpClient): SubmitJobSignature {\n  return (\n    source: NonNullablePaths<\n      Source,\n      | `file.fileId`\n      | `localization.languages`\n      | `wixDataCollection.collectionId`,\n      3\n    >,\n    destination: NonNullablePaths<\n      Destination,\n      | `file.format`\n      | `localization.languages`\n      | `wixDataCollection.collectionId`,\n      3\n    >,\n    options?: SubmitJobOptions\n  ) =>\n    universalSubmitJob(\n      source,\n      destination,\n      options,\n      // @ts-ignore\n      { httpClient }\n    );\n}\n\ninterface SubmitJobSignature {\n  /**\n   * Submit a data movement job.\n   *\n   * > **Note**: By default, the job is submitted for the current site.\n   * @param - Source to move data from.\n   * @param - Destination to move data to.\n   */\n  (\n    source: NonNullablePaths<\n      Source,\n      | `file.fileId`\n      | `localization.languages`\n      | `wixDataCollection.collectionId`,\n      3\n    >,\n    destination: NonNullablePaths<\n      Destination,\n      | `file.format`\n      | `localization.languages`\n      | `wixDataCollection.collectionId`,\n      3\n    >,\n    options?: SubmitJobOptions\n  ): Promise<\n    NonNullablePaths<\n      SubmitJobResponse,\n      | `job.partiallySuccessfulOptions.cause`\n      | `job._id`\n      | `job.status`\n      | `job.source.wixDataCollection.filterQuery.fields`\n      | `job.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages`\n      | `job.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.${number}.objectToArray.objectFieldName`\n      | `job.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.${number}.objectToArray.destinationFieldName`\n      | `job.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.${number}.unwindArray.arrayFieldName`\n      | `job.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.${number}.skip`\n      | `job.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.${number}.limit`\n      | `job.source.wixDataCollection.aggregationQuery.fields`\n      | `job.source.wixDataCollection.aggregationQuery.fields.${number}.key`\n      | `job.source.wixDataCollection.aggregationQuery.fields.${number}.displayName`\n      | `job.source.wixDataCollection.aggregationQuery.fields.${number}.fieldType`\n      | `job.source.wixDataCollection.collectionId`\n      | `job.source.wixDataCollection.fields`\n      | `job.source.localization.languages`\n      | `job.source.file.format`\n      | `job.source.file.fileId`\n      | `job.source.file.url`\n      | `job.destination.wixDataCollection.collectionId`\n      | `job.destination.wixDataCollection.writePolicy`\n      | `job.destination.localization.languages`\n      | `job.destination.file.format`\n      | `job.destination.file.url`\n      | `job.name`\n      | `job.progress.current`\n      | `job.progress.itemsRejected`\n      | `job.progress.itemsSuccessful`\n      | `job.error.code`\n      | `job.error.description`\n      | `job.sourceSiteId`\n      | `job.destinationSiteId`\n      | `job.logsRecorded`,\n      10\n    >\n  >;\n}\n\nexport function createFileUploadUrl(\n  httpClient: HttpClient\n): CreateFileUploadUrlSignature {\n  return (options?: CreateFileUploadUrlOptions) =>\n    universalCreateFileUploadUrl(\n      options,\n      // @ts-ignore\n      { httpClient }\n    );\n}\n\ninterface CreateFileUploadUrlSignature {\n  /**\n   * Creates an upload URL for a data source file.\n   *\n   * Before submitting a job to import data from a file to a collection, call this method to generate an upload URL. Use the `uploadUrl` in the response to upload your source file. For example:\n   *\n   * `curl --request PUT --upload-file \"${path_to_file}\" \"${uploadUrl}\"`\n   *\n   * > **Note**: The URL is valid for 15 minutes.\n   */\n  (options?: CreateFileUploadUrlOptions): Promise<\n    NonNullablePaths<CreateFileUploadUrlResponse, `fileId` | `uploadUrl`, 2>\n  >;\n}\n\nexport function getJob(httpClient: HttpClient): GetJobSignature {\n  return (jobId: string) =>\n    universalGetJob(\n      jobId,\n      // @ts-ignore\n      { httpClient }\n    );\n}\n\ninterface GetJobSignature {\n  /**\n   * Retrieves the specified data movement job.\n   *\n   * > **Note**: You can only retrieve jobs submitted for the current site.\n   * @param - Job ID.\n   * @returns Details of the retrieved job.\n   */\n  (jobId: string): Promise<\n    NonNullablePaths<\n      DataMovementJob,\n      | `partiallySuccessfulOptions.cause`\n      | `_id`\n      | `status`\n      | `source.wixDataCollection.filterQuery.fields`\n      | `source.wixDataCollection.aggregationQuery.aggregationPipeline.stages`\n      | `source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.${number}.objectToArray.objectFieldName`\n      | `source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.${number}.objectToArray.destinationFieldName`\n      | `source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.${number}.unwindArray.arrayFieldName`\n      | `source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.${number}.skip`\n      | `source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.${number}.limit`\n      | `source.wixDataCollection.aggregationQuery.fields`\n      | `source.wixDataCollection.aggregationQuery.fields.${number}.key`\n      | `source.wixDataCollection.aggregationQuery.fields.${number}.displayName`\n      | `source.wixDataCollection.aggregationQuery.fields.${number}.fieldType`\n      | `source.wixDataCollection.collectionId`\n      | `source.wixDataCollection.fields`\n      | `source.localization.languages`\n      | `source.file.format`\n      | `source.file.fileId`\n      | `source.file.url`\n      | `destination.wixDataCollection.collectionId`\n      | `destination.wixDataCollection.writePolicy`\n      | `destination.localization.languages`\n      | `destination.file.format`\n      | `destination.file.url`\n      | `name`\n      | `progress.current`\n      | `progress.itemsRejected`\n      | `progress.itemsSuccessful`\n      | `error.code`\n      | `error.description`\n      | `sourceSiteId`\n      | `destinationSiteId`\n      | `logsRecorded`,\n      9\n    >\n  >;\n}\n\nexport function listJobs(httpClient: HttpClient): ListJobsSignature {\n  return (options?: ListJobsOptions) =>\n    universalListJobs(\n      options,\n      // @ts-ignore\n      { httpClient }\n    );\n}\n\ninterface ListJobsSignature {\n  /**\n   * Lists data movement jobs for the current site.\n   *\n   * The `listJobs()` method builds a query to retrieve a list of jobs for the current site, and returns a [`JobsQueryBuilder`](https://dev.wix.com/docs/sdk/backend-modules/data/movement-jobs/jobs-query-builder/ascending) object. The returned object contains the query definition, which is typically used to run the query using the [`find()`](https://dev.wix.com/docs/sdk/backend-modules/data/movement-jobs/jobs-query-builder/find) method.\n   *\n   * You can refine the query by chaining `JobsQueryBuilder` methods onto the query. `JobsQueryBuilder` methods enable you to sort, filter, and control the results `listJobs()` returns.\n   *\n   * `listJobs()` runs with these `JobsQueryBuilder` defaults, which you can override:\n   *\n   * - [`skipTo`: `0`](https://dev.wix.com/docs/sdk/backend-modules/data/movement-jobs/jobs-query-builder/skip-to)\n   * - [`limit`: `50`](https://dev.wix.com/docs/sdk/backend-modules/data/movement-jobs/jobs-query-builder/limit)\n   * - [`ascending`: by `_id`](https://dev.wix.com/docs/sdk/backend-modules/data/movement-jobs/jobs-query-builder/ascending)\n   *\n   * The methods chained to `listJobs()` are applied in the order they're called. For example, if you apply `ascending('firstName')` and then `descending('age')`, the results are sorted first by firstName, and then, if there are multiple results with the same `firstName`, the items are sorted by `age`.\n   */\n  (options?: ListJobsOptions): Promise<\n    NonNullablePaths<\n      ListJobsResponse,\n      | `jobs`\n      | `jobs.${number}.partiallySuccessfulOptions.cause`\n      | `jobs.${number}._id`\n      | `jobs.${number}.status`\n      | `jobs.${number}.source.wixDataCollection.collectionId`\n      | `jobs.${number}.source.file.format`\n      | `jobs.${number}.source.file.fileId`\n      | `jobs.${number}.source.file.url`\n      | `jobs.${number}.destination.wixDataCollection.collectionId`\n      | `jobs.${number}.destination.wixDataCollection.writePolicy`\n      | `jobs.${number}.destination.file.format`\n      | `jobs.${number}.destination.file.url`\n      | `jobs.${number}.name`\n      | `jobs.${number}.progress.current`\n      | `jobs.${number}.progress.itemsRejected`\n      | `jobs.${number}.progress.itemsSuccessful`\n      | `jobs.${number}.error.code`\n      | `jobs.${number}.error.description`\n      | `jobs.${number}.sourceSiteId`\n      | `jobs.${number}.destinationSiteId`\n      | `jobs.${number}.logsRecorded`,\n      6\n    >\n  >;\n}\n\nexport function queryJobs(httpClient: HttpClient): QueryJobsSignature {\n  return () =>\n    universalQueryJobs(\n      // @ts-ignore\n      { httpClient }\n    );\n}\n\ninterface QueryJobsSignature {\n  /**\n   * Retrieves data movement jobs for the current site, on the basis of the filtering, sorting, and paging preferences you provide.\n   *\n   * Learn more about [API Query Language](https://dev.wix.com/api/rest/getting-started/api-query-language) and [sorting and paging](https://dev.wix.com/docs/rest/articles/get-started/sorting-and-paging) configuration.\n   */\n  (): JobsQueryBuilder;\n}\n\nexport function typedQueryJobs(\n  httpClient: HttpClient\n): TypedQueryJobsSignature {\n  return (query: DataMovementJobQuery) =>\n    universalTypedQueryJobs(\n      query,\n      // @ts-ignore\n      { httpClient }\n    );\n}\n\ninterface TypedQueryJobsSignature {\n  /** */\n  (query: DataMovementJobQuery): Promise<\n    NonNullablePaths<\n      QueryJobsResponse,\n      | `jobs`\n      | `jobs.${number}.partiallySuccessfulOptions.cause`\n      | `jobs.${number}._id`\n      | `jobs.${number}.status`\n      | `jobs.${number}.source.wixDataCollection.collectionId`\n      | `jobs.${number}.source.file.format`\n      | `jobs.${number}.source.file.fileId`\n      | `jobs.${number}.source.file.url`\n      | `jobs.${number}.destination.wixDataCollection.collectionId`\n      | `jobs.${number}.destination.wixDataCollection.writePolicy`\n      | `jobs.${number}.destination.file.format`\n      | `jobs.${number}.destination.file.url`\n      | `jobs.${number}.name`\n      | `jobs.${number}.progress.current`\n      | `jobs.${number}.progress.itemsRejected`\n      | `jobs.${number}.progress.itemsSuccessful`\n      | `jobs.${number}.error.code`\n      | `jobs.${number}.error.description`\n      | `jobs.${number}.sourceSiteId`\n      | `jobs.${number}.destinationSiteId`\n      | `jobs.${number}.logsRecorded`,\n      6\n    >\n  >;\n}\n\nexport function terminateJob(httpClient: HttpClient): TerminateJobSignature {\n  return (jobId: string) =>\n    universalTerminateJob(\n      jobId,\n      // @ts-ignore\n      { httpClient }\n    );\n}\n\ninterface TerminateJobSignature {\n  /**\n   * Terminates the specified job.\n   * @param - ID of the job to terminate.\n   */\n  (jobId: string): Promise<\n    NonNullablePaths<\n      TerminateJobResponse,\n      | `job.partiallySuccessfulOptions.cause`\n      | `job._id`\n      | `job.status`\n      | `job.source.wixDataCollection.filterQuery.fields`\n      | `job.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages`\n      | `job.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.${number}.objectToArray.objectFieldName`\n      | `job.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.${number}.objectToArray.destinationFieldName`\n      | `job.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.${number}.unwindArray.arrayFieldName`\n      | `job.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.${number}.skip`\n      | `job.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.${number}.limit`\n      | `job.source.wixDataCollection.aggregationQuery.fields`\n      | `job.source.wixDataCollection.aggregationQuery.fields.${number}.key`\n      | `job.source.wixDataCollection.aggregationQuery.fields.${number}.displayName`\n      | `job.source.wixDataCollection.aggregationQuery.fields.${number}.fieldType`\n      | `job.source.wixDataCollection.collectionId`\n      | `job.source.wixDataCollection.fields`\n      | `job.source.localization.languages`\n      | `job.source.file.format`\n      | `job.source.file.fileId`\n      | `job.source.file.url`\n      | `job.destination.wixDataCollection.collectionId`\n      | `job.destination.wixDataCollection.writePolicy`\n      | `job.destination.localization.languages`\n      | `job.destination.file.format`\n      | `job.destination.file.url`\n      | `job.name`\n      | `job.progress.current`\n      | `job.progress.itemsRejected`\n      | `job.progress.itemsSuccessful`\n      | `job.error.code`\n      | `job.error.description`\n      | `job.sourceSiteId`\n      | `job.destinationSiteId`\n      | `job.logsRecorded`,\n      10\n    >\n  >;\n}\n\nexport function listMovementLogs(\n  httpClient: HttpClient\n): ListMovementLogsSignature {\n  return (jobId: string, options?: ListMovementLogsOptions) =>\n    universalListMovementLogs(\n      jobId,\n      options,\n      // @ts-ignore\n      { httpClient }\n    );\n}\n\ninterface ListMovementLogsSignature {\n  /**\n   * Lists logs for the specified job.\n   *\n   * Logs are generated by the destination for each item that failed to move. Some destinations also generate logs for items that moved successfully.\n   * @param - ID of the job for which to list logs.\n   */\n  (jobId: string, options?: ListMovementLogsOptions): Promise<\n    NonNullablePaths<\n      ListMovementLogsResponse,\n      | `logs`\n      | `logs.${number}.sourceItemId`\n      | `logs.${number}.failure.code`\n      | `logs.${number}.failure.description`,\n      5\n    >\n  >;\n}\n\nexport const onJobCreated = EventDefinition(\n  'wix.hub.v1.job_created',\n  true,\n  (event: JobCreatedEnvelope) =>\n    renameKeysFromRESTResponseToSDKResponse(\n      transformPaths(event, [\n        {\n          transformFn: transformRESTTimestampToSDKTimestamp,\n          paths: [\n            { path: 'entity.startedAt' },\n            { path: 'entity.finishedAt' },\n            { path: 'metadata.eventTime' },\n          ],\n        },\n        {\n          transformFn: transformRESTFloatToSDKFloat,\n          paths: [\n            {\n              path: 'entity.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.groupIds.expression.numeric',\n            },\n            {\n              path: 'entity.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.accumulators.avg.expression.numeric',\n            },\n            {\n              path: 'entity.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.accumulators.min.expression.numeric',\n            },\n            {\n              path: 'entity.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.accumulators.max.expression.numeric',\n            },\n            {\n              path: 'entity.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.accumulators.sum.expression.numeric',\n            },\n            {\n              path: 'entity.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.accumulators.first.expression.numeric',\n            },\n            {\n              path: 'entity.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.accumulators.last.expression.numeric',\n            },\n            {\n              path: 'entity.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.accumulators.push.expression.numeric',\n            },\n            {\n              path: 'entity.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.projection.fields.reshape.expression.numeric',\n            },\n            {\n              path: 'entity.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.addFields.fields.expression.numeric',\n            },\n          ],\n        },\n      ])\n    )\n)<JobCreatedEnvelope>();\nexport const onJobDeleted = EventDefinition(\n  'wix.hub.v1.job_deleted',\n  true,\n  (event: JobDeletedEnvelope) =>\n    renameKeysFromRESTResponseToSDKResponse(\n      transformPaths(event, [\n        {\n          transformFn: transformRESTTimestampToSDKTimestamp,\n          paths: [\n            { path: 'undefined.startedAt' },\n            { path: 'undefined.finishedAt' },\n            { path: 'metadata.eventTime' },\n          ],\n        },\n        {\n          transformFn: transformRESTFloatToSDKFloat,\n          paths: [\n            {\n              path: 'undefined.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.groupIds.expression.numeric',\n            },\n            {\n              path: 'undefined.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.accumulators.avg.expression.numeric',\n            },\n            {\n              path: 'undefined.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.accumulators.min.expression.numeric',\n            },\n            {\n              path: 'undefined.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.accumulators.max.expression.numeric',\n            },\n            {\n              path: 'undefined.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.accumulators.sum.expression.numeric',\n            },\n            {\n              path: 'undefined.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.accumulators.first.expression.numeric',\n            },\n            {\n              path: 'undefined.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.accumulators.last.expression.numeric',\n            },\n            {\n              path: 'undefined.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.accumulators.push.expression.numeric',\n            },\n            {\n              path: 'undefined.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.projection.fields.reshape.expression.numeric',\n            },\n            {\n              path: 'undefined.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.addFields.fields.expression.numeric',\n            },\n          ],\n        },\n      ])\n    )\n)<JobDeletedEnvelope>();\nexport const onJobUpdated = EventDefinition(\n  'wix.hub.v1.job_updated',\n  true,\n  (event: JobUpdatedEnvelope) =>\n    renameKeysFromRESTResponseToSDKResponse(\n      transformPaths(event, [\n        {\n          transformFn: transformRESTTimestampToSDKTimestamp,\n          paths: [\n            { path: 'entity.startedAt' },\n            { path: 'entity.finishedAt' },\n            { path: 'metadata.eventTime' },\n          ],\n        },\n        {\n          transformFn: transformRESTFloatToSDKFloat,\n          paths: [\n            {\n              path: 'entity.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.groupIds.expression.numeric',\n            },\n            {\n              path: 'entity.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.accumulators.avg.expression.numeric',\n            },\n            {\n              path: 'entity.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.accumulators.min.expression.numeric',\n            },\n            {\n              path: 'entity.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.accumulators.max.expression.numeric',\n            },\n            {\n              path: 'entity.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.accumulators.sum.expression.numeric',\n            },\n            {\n              path: 'entity.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.accumulators.first.expression.numeric',\n            },\n            {\n              path: 'entity.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.accumulators.last.expression.numeric',\n            },\n            {\n              path: 'entity.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.accumulators.push.expression.numeric',\n            },\n            {\n              path: 'entity.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.projection.fields.reshape.expression.numeric',\n            },\n            {\n              path: 'entity.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.addFields.fields.expression.numeric',\n            },\n          ],\n        },\n      ])\n    )\n)<JobUpdatedEnvelope>();\n\nexport {\n  AbsOperation,\n  AccountInfo,\n  AccountInfoMetadata,\n  Accumulator,\n  AccumulatorExpressionOneOf,\n  ActionEvent,\n  AddField,\n  AddFields,\n  AddOperation,\n  AggregationPipeline,\n  AggregationPipelinePagingMethodOneOf,\n  AggregationQuery,\n  ApplicationError,\n  Avg,\n  BaseEventMetadata,\n  CeilOperation,\n  CommonCursorPaging,\n  CommonPaging,\n  CommonSortOrder,\n  CommonSorting,\n  ConcatOperation,\n  ConditionOperation,\n  CreateFileUploadUrlOptions,\n  CreateFileUploadUrlRequest,\n  CreateFileUploadUrlResponse,\n  CursorPaging,\n  CursorPagingMetadata,\n  CursorQuery,\n  CursorQueryPagingMethodOneOf,\n  Cursors,\n  DataMovementJob,\n  DataMovementJobLogs,\n  DataMovementJobQuerySpec,\n  DataMovementJobStatusOptionsOneOf,\n  Destination,\n  DestinationDestinationOneOf,\n  DivideOperation,\n  DomainEvent,\n  DomainEventBodyOneOf,\n  Empty,\n  EntityCreatedEvent,\n  EntityDeletedEvent,\n  EntityUpdatedEvent,\n  EventMetadata,\n  Exclude,\n  Expression,\n  ExpressionValueOneOf,\n  ExtendedFields,\n  ExternalFileSource,\n  FailedOptions,\n  Field,\n  FieldProjectionOneOf,\n  FieldType,\n  FileDestination,\n  FileFormat,\n  FileSource,\n  FilterQuery,\n  First,\n  FloorOperation,\n  GetJobRequest,\n  GetJobResponse,\n  GoogleSheetsSource,\n  GreaterThanOperation,\n  Group,\n  GroupId,\n  IdentificationData,\n  IdentificationDataIdOneOf,\n  InProgressOptions,\n  Include,\n  ItemsSuccessfulInfo,\n  JobCallback,\n  JobCallbackOptionsOneOf,\n  JobCreatedEnvelope,\n  JobDeletedEnvelope,\n  JobStatus,\n  JobUpdatedEnvelope,\n  JobsQueryBuilder,\n  JobsQueryResult,\n  Last,\n  LengthOperation,\n  ListJobsOptions,\n  ListJobsRequest,\n  ListJobsResponse,\n  ListMovementLogsOptions,\n  ListMovementLogsRequest,\n  ListMovementLogsResponse,\n  LocalizationDestination,\n  LocalizationSource,\n  Lookup,\n  Max,\n  MediaType,\n  MessageEnvelope,\n  Min,\n  ModOperation,\n  MovementLog,\n  MultiplyOperation,\n  ObjectToArray,\n  Paging,\n  PartiallySuccessfulOptions,\n  PartiallySuccessfulStatusOptions,\n  Progress,\n  ProjectNested,\n  Projection,\n  Push,\n  QueryJobsRequest,\n  QueryJobsResponse,\n  QueryV2,\n  QueryV2PagingMethodOneOf,\n  Reshape,\n  RestoreInfo,\n  Schema,\n  SizeOperation,\n  SortOrder,\n  Sorting,\n  Source,\n  SourceSourceOneOf,\n  Stage,\n  StageStageOneOf,\n  StoresCatalogInventoryDestination,\n  StoresCatalogProductsDestination,\n  StringifyOperation,\n  SubmitJobOptions,\n  SubmitJobOptionsSiteOverrideOneOf,\n  SubmitJobRequest,\n  SubmitJobRequestSiteOverrideOneOf,\n  SubmitJobResponse,\n  SubstringOperation,\n  SubtractOperation,\n  Sum,\n  SumOperation,\n  TerminateJobByIdRequest,\n  TerminateJobByIdResponse,\n  TerminateJobRequest,\n  TerminateJobResponse,\n  TestDestination,\n  TestSource,\n  TestTransformation,\n  ToLowerOperation,\n  ToUpperOperation,\n  Transformation,\n  TransformationTransformationOneOf,\n  UnionWith,\n  Units,\n  UnwindArray,\n  V1Field,\n  WebhookIdentityType,\n  WixCommonSorting,\n  WixDataCollectionDefinitionDestination,\n  WixDataCollectionDefinitionSource,\n  WixDataDestination,\n  WixDataDestinationWritePolicy,\n  WixDataEnvironment,\n  WixDataSource,\n  WixDataSourceQueryOneOf,\n  WixMediaDestination,\n  WixMediaDestinationWritePolicy,\n  WixMediaSource,\n  WritePolicy,\n  utils,\n} from './hub-v1-job-movement-jobs.universal.js';\n","import { transformError as sdkTransformError } from '@wix/sdk-runtime/transform-error';\nimport { queryBuilder } from '@wix/sdk-runtime/query-builder';\nimport {\n  renameKeysFromSDKRequestToRESTRequest,\n  renameKeysFromRESTResponseToSDKResponse,\n} from '@wix/sdk-runtime/rename-all-nested-keys';\nimport {\n  HttpClient,\n  HttpResponse,\n  NonNullablePaths,\n  QuerySpec,\n  Query as QuerySdkType,\n} from '@wix/sdk-types';\nimport * as ambassadorWixHubV1Job from './hub-v1-job-movement-jobs.http.js';\n// @ts-ignore\nimport { transformPaths } from '@wix/sdk-runtime/transformations/transform-paths';\nimport { createQueryUtils } from '@wix/sdk-runtime/query-builder-utils';\n\n/** Data movement job object. */\nexport interface DataMovementJob extends DataMovementJobStatusOptionsOneOf {\n  /** When the job's `status` is `PARTIALLY_SUCCESSFUL`, the additional details. */\n  partiallySuccessfulOptions?: PartiallySuccessfulStatusOptions;\n  /**\n   * Job ID.\n   * @format GUID\n   * @readonly\n   */\n  _id?: string;\n  /**\n   * When the job was submitted.\n   * @readonly\n   */\n  startedAt?: Date | null;\n  /**\n   * Current job status.\n   * @readonly\n   */\n  status?: JobStatusWithLiterals;\n  /** Source to move data from. */\n  source?: Source;\n  /** Destination to move data to. */\n  destination?: Destination;\n  /**\n   * Job name.\n   * @maxLength 1024\n   */\n  name?: string;\n  /**\n   * When the job `status` is `IN_PROGRESS`, the progress details.\n   * @readonly\n   */\n  progress?: Progress;\n  /**\n   * Job finish time.\n   *\n   * A job is considered finished when its `status` updates to `COMPLETED`, `FAILED`, or `PARTIALLY_SUCCESSFUL`.\n   * @readonly\n   */\n  finishedAt?: Date | null;\n  /**\n   * Error information.\n   * @readonly\n   */\n  error?: ApplicationError;\n  /**\n   * When moving data from a Wix data collection, the source site ID.\n   *\n   * By default, the source site is the current site. To move data from [any site in the same Wix Account](https://support.wix.com/en/article/managing-multiple-sites-under-one-account), specify the site ID, which you can retrieve by calling [Get App Instance](https://dev.wix.com/docs/rest/app-management/app-instance/get-app-instance).\n   *\n   * > **Note**: You can specify the ID of a source site or destination site, but not both.\n   * @format GUID\n   */\n  sourceSiteId?: string;\n  /**\n   * When moving data to a Wix data collection, the destination site ID.\n   *\n   * By default, the destination site is the current site. To move data to [any site in the same Wix Account](https://support.wix.com/en/article/managing-multiple-sites-under-one-account), specify the site ID, which you can retrieve by calling [Get App Instance](https://dev.wix.com/docs/rest/app-management/app-instance/get-app-instance).\n   *\n   * > **Note**: You can specify the ID of a source site or destination site, but not both.\n   * @format GUID\n   */\n  destinationSiteId?: string;\n  /** Number of recorded logs. */\n  logsRecorded?: number;\n  /**\n   * Sync Schedule ID, if the job was triggered by a sync schedule.\n   * @format GUID\n   * @readonly\n   */\n  scheduleId?: string | null;\n  /** Extended fields for custom metadata added by applications. */\n  extendedFields?: ExtendedFields;\n  /**\n   * Workflow ID, if the job was created as a child step of a workflow.\n   * @format GUID\n   * @readonly\n   */\n  workflowId?: string | null;\n}\n\n/** @oneof */\nexport interface DataMovementJobStatusOptionsOneOf {\n  /** When the job's `status` is `PARTIALLY_SUCCESSFUL`, the additional details. */\n  partiallySuccessfulOptions?: PartiallySuccessfulStatusOptions;\n}\n\nexport enum JobStatus {\n  /** Job was submitted but has not yet started. */\n  UNINITIALIZED = 'UNINITIALIZED',\n  /** Job is initializing. */\n  INITIALIZING = 'INITIALIZING',\n  /** Job is in progress. */\n  IN_PROGRESS = 'IN_PROGRESS',\n  /** Job has successfully completed. */\n  COMPLETED = 'COMPLETED',\n  /** Job has failed. */\n  FAILED = 'FAILED',\n  /** Job has completed but was partially successful due to a destination limitation. See `PartiallySuccessfulOptions` for additional details. */\n  PARTIALLY_SUCCESSFUL = 'PARTIALLY_SUCCESSFUL',\n}\n\n/** @enumType */\nexport type JobStatusWithLiterals =\n  | JobStatus\n  | 'UNINITIALIZED'\n  | 'INITIALIZING'\n  | 'IN_PROGRESS'\n  | 'COMPLETED'\n  | 'FAILED'\n  | 'PARTIALLY_SUCCESSFUL';\n\nexport interface Source extends SourceSourceOneOf {\n  /**\n   * Wix data collection.\n   *\n   * You can move items from native Wix collections, [Wix app collections](https://dev.wix.com/docs/develop-websites/articles/databases/wix-data/collections/working-with-wix-app-collections-and-code), and [external database collections](https://dev.wix.com/docs/develop-websites/articles/databases/external-databases/overview/integrating-external-databases-with-your-wix-site).\n   */\n  wixDataCollection?: WixDataSource;\n  /**\n   * Localized CMS content. Available when the site has [Wix Multilingual](https://support.wix.com/en/article/wix-multilingual-an-overview) installed.\n   *\n   * Learn more about working with [translated CMS content](https://support.wix.com/en/article/wix-multilingual-translating-cms-collection-content).\n   */\n  localization?: LocalizationSource;\n  /**\n   * Source file.\n   *\n   * You can import data from files in CSV or JSONL formats. Uploading a file with an invalid format causes the movement job to fail.\n   *\n   * To upload a file, call Create File Upload Url ([SDK](https://dev.wix.com/docs/sdk/backend-modules/data/movement-jobs/create-file-upload-url) | [REST](https://dev.wix.com/docs/rest/business-solutions/cms/data-movement-jobs/create-file-upload-url)) and use the `uploadUrl` from the response. For example:\n   *\n   * `curl --request PUT --upload-file \"${path_to_file}\" \"${uploadUrl}\"`\n   */\n  file?: FileSource;\n}\n\n/** @oneof */\nexport interface SourceSourceOneOf {\n  /**\n   * Wix data collection.\n   *\n   * You can move items from native Wix collections, [Wix app collections](https://dev.wix.com/docs/develop-websites/articles/databases/wix-data/collections/working-with-wix-app-collections-and-code), and [external database collections](https://dev.wix.com/docs/develop-websites/articles/databases/external-databases/overview/integrating-external-databases-with-your-wix-site).\n   */\n  wixDataCollection?: WixDataSource;\n  /**\n   * Localized CMS content. Available when the site has [Wix Multilingual](https://support.wix.com/en/article/wix-multilingual-an-overview) installed.\n   *\n   * Learn more about working with [translated CMS content](https://support.wix.com/en/article/wix-multilingual-translating-cms-collection-content).\n   */\n  localization?: LocalizationSource;\n  /**\n   * Source file.\n   *\n   * You can import data from files in CSV or JSONL formats. Uploading a file with an invalid format causes the movement job to fail.\n   *\n   * To upload a file, call Create File Upload Url ([SDK](https://dev.wix.com/docs/sdk/backend-modules/data/movement-jobs/create-file-upload-url) | [REST](https://dev.wix.com/docs/rest/business-solutions/cms/data-movement-jobs/create-file-upload-url)) and use the `uploadUrl` from the response. For example:\n   *\n   * `curl --request PUT --upload-file \"${path_to_file}\" \"${uploadUrl}\"`\n   */\n  file?: FileSource;\n}\n\nexport interface AggregationPipeline\n  extends AggregationPipelinePagingMethodOneOf {\n  /**\n   * Paging options to limit and skip the number of results.\n   *\n   * Learn more about [sorting and paging](https://dev.wix.com/docs/rest/articles/get-started/sorting-and-paging).\n   */\n  paging?: Paging;\n  /**\n   * Cursor token referring to a page of results.\n   *\n   * Not used in the first request. Subsequent requests use the cursor token and not `filter` or `sort`.\n   */\n  cursorPaging?: CursorPaging;\n  /**\n   * Sequence of aggregation operations to apply to the data.\n   *\n   * Stages are processed in order, with each stage operating on the output of the previous stage.\n   * @maxSize 100\n   */\n  stages?: Stage[];\n}\n\n/** @oneof */\nexport interface AggregationPipelinePagingMethodOneOf {\n  /**\n   * Paging options to limit and skip the number of results.\n   *\n   * Learn more about [sorting and paging](https://dev.wix.com/docs/rest/articles/get-started/sorting-and-paging).\n   */\n  paging?: Paging;\n  /**\n   * Cursor token referring to a page of results.\n   *\n   * Not used in the first request. Subsequent requests use the cursor token and not `filter` or `sort`.\n   */\n  cursorPaging?: CursorPaging;\n}\n\nexport interface Stage extends StageStageOneOf {\n  /** Groups aggregated items to new result items. */\n  group?: Group;\n  /**\n   * Aggregation filter. Only items that match the filter are processed.\n   *\n   * Learn more about [filters in API Query Language](https://dev.wix.com/docs/rest/articles/get-started/api-query-language#filters).\n   *\n   * > **Note:** The values you provide for each filter field must adhere to that field's data type. For example, when filtering by a field whose type is Date and Time, use an object in the following format: `\"someDateAndTimeFieldKey\": { \"$date\": \"YYYY-MM-DDTHH:mm:ss.sssZ\"}`. Learn more about [data types in Wix Data](https://dev.wix.com/docs/rest/business-solutions/cms/data-items/data-types-in-wix-data).\n   */\n  filter?: Record<string, any> | null;\n  /**\n   * Sorting preferences.\n   *\n   * Learn more about [sorting and paging](https://dev.wix.com/docs/rest/articles/get-started/sorting-and-paging).\n   */\n  sort?: Sorting;\n  /** Transforms items by including, excluding, or reshaping fields. */\n  projection?: Projection;\n  /** Transforms an object into an array where each object property becomes a new array element containing the property's key and value, as well as all other properties from the original object. */\n  objectToArray?: ObjectToArray;\n  /** Creates a result item for each array element. Each result contains the full original item, with the array field replaced by an element whose key is the array name and whose value is the array element. */\n  unwindArray?: UnwindArray;\n  /** Number of results to skip from the beginning of the result set. */\n  skip?: number;\n  /** Maximum number of results to return. */\n  limit?: number;\n}\n\n/** @oneof */\nexport interface StageStageOneOf {\n  /** Groups aggregated items to new result items. */\n  group?: Group;\n  /**\n   * Aggregation filter. Only items that match the filter are processed.\n   *\n   * Learn more about [filters in API Query Language](https://dev.wix.com/docs/rest/articles/get-started/api-query-language#filters).\n   *\n   * > **Note:** The values you provide for each filter field must adhere to that field's data type. For example, when filtering by a field whose type is Date and Time, use an object in the following format: `\"someDateAndTimeFieldKey\": { \"$date\": \"YYYY-MM-DDTHH:mm:ss.sssZ\"}`. Learn more about [data types in Wix Data](https://dev.wix.com/docs/rest/business-solutions/cms/data-items/data-types-in-wix-data).\n   */\n  filter?: Record<string, any> | null;\n  /**\n   * Sorting preferences.\n   *\n   * Learn more about [sorting and paging](https://dev.wix.com/docs/rest/articles/get-started/sorting-and-paging).\n   */\n  sort?: Sorting;\n  /** Transforms items by including, excluding, or reshaping fields. */\n  projection?: Projection;\n  /** Transforms an object into an array where each object property becomes a new array element containing the property's key and value, as well as all other properties from the original object. */\n  objectToArray?: ObjectToArray;\n  /** Creates a result item for each array element. Each result contains the full original item, with the array field replaced by an element whose key is the array name and whose value is the array element. */\n  unwindArray?: UnwindArray;\n  /** Number of results to skip from the beginning of the result set. */\n  skip?: number;\n  /** Maximum number of results to return. */\n  limit?: number;\n}\n\nexport interface Group {\n  /**\n   * Grouping criteria by which to organize items.\n   *\n   * Each `groupId` specifies a field by which to group items, and serves as the result item's unique `_id` property.\n   *\n   * Items with identical values for the specified `expression` are placed in the same group based on the specified `key`. If empty, all items are treated as a single group.\n   * @maxSize 1000\n   */\n  groupIds?: GroupId[];\n  /**\n   * Accumulation operations to run on each group.\n   *\n   * Accumulators aggregate data across all items in the group and return the result in a new field.\n   *\n   * > **Note:** When using accumulators, the type of expression must be compatible with the operation type. For example, when using the `sum` accumulator, the specified expression must resolve to a number.\n   * @maxSize 1000\n   */\n  accumulators?: Accumulator[];\n}\n\nexport interface Expression extends ExpressionValueOneOf {\n  /**\n   * Path to the field containing the value to resolve.\n   *\n   * Use dot notation to specify nested fields. For example, `user.name` or `product.price`.\n   * @maxLength 1000\n   */\n  fieldPath?: string;\n  /**\n   * Text value.\n   * @maxLength 1000\n   */\n  text?: string;\n  /** Number value. */\n  numeric?: number;\n  /** Adds the specified expressions together. */\n  add?: AddOperation;\n  /** Calculates the total sum of multiple expressions. */\n  sum?: SumOperation;\n  /** Subtracts 1 expression from another. */\n  subtract?: SubtractOperation;\n  /** Multiplies multiple expressions together. */\n  multiply?: MultiplyOperation;\n  /** Divides 1 expression by another. */\n  divide?: DivideOperation;\n  /** Finds the absolute value of an expression. */\n  abs?: AbsOperation;\n  /** Finds the remainder when dividing 1 expression by another. */\n  mod?: ModOperation;\n  /** Rounds an expression down to the nearest whole number. */\n  floor?: FloorOperation;\n  /** Rounds an expression up to the nearest whole number. */\n  ceil?: CeilOperation;\n  /** Joins multiple expressions together to create a string. */\n  concat?: ConcatOperation;\n  /** Converts an expression to a string. */\n  stringify?: StringifyOperation;\n  /** Converts an expression to lowercase. */\n  toLower?: ToLowerOperation;\n  /** Converts an expression to uppercase. */\n  toUpper?: ToUpperOperation;\n  /** Extracts a portion of a string expression. */\n  substring?: SubstringOperation;\n  /** Finds the length of a string expression. */\n  length?: LengthOperation;\n}\n\n/** @oneof */\nexport interface ExpressionValueOneOf {\n  /**\n   * Path to the field containing the value to resolve.\n   *\n   * Use dot notation to specify nested fields. For example, `user.name` or `product.price`.\n   * @maxLength 1000\n   */\n  fieldPath?: string;\n  /**\n   * Text value.\n   * @maxLength 1000\n   */\n  text?: string;\n  /** Number value. */\n  numeric?: number;\n  /** Adds the specified expressions together. */\n  add?: AddOperation;\n  /** Calculates the total sum of multiple expressions. */\n  sum?: SumOperation;\n  /** Subtracts 1 expression from another. */\n  subtract?: SubtractOperation;\n  /** Multiplies multiple expressions together. */\n  multiply?: MultiplyOperation;\n  /** Divides 1 expression by another. */\n  divide?: DivideOperation;\n  /** Finds the absolute value of an expression. */\n  abs?: AbsOperation;\n  /** Finds the remainder when dividing 1 expression by another. */\n  mod?: ModOperation;\n  /** Rounds an expression down to the nearest whole number. */\n  floor?: FloorOperation;\n  /** Rounds an expression up to the nearest whole number. */\n  ceil?: CeilOperation;\n  /** Joins multiple expressions together to create a string. */\n  concat?: ConcatOperation;\n  /** Converts an expression to a string. */\n  stringify?: StringifyOperation;\n  /** Converts an expression to lowercase. */\n  toLower?: ToLowerOperation;\n  /** Converts an expression to uppercase. */\n  toUpper?: ToUpperOperation;\n  /** Extracts a portion of a string expression. */\n  substring?: SubstringOperation;\n  /** Finds the length of a string expression. */\n  length?: LengthOperation;\n}\n\nexport interface AddOperation {\n  /**\n   * Expressions to add together.\n   *\n   * All expressions must resolve to numbers.\n   * @maxSize 1000\n   */\n  expressions?: Expression[];\n}\n\nexport interface SumOperation {\n  /**\n   * Expressions to calculate the total sum of.\n   *\n   * All expressions must resolve to numbers.\n   * @maxSize 1000\n   */\n  expressions?: Expression[];\n}\n\nexport interface SubtractOperation {\n  /**\n   * Expression to subtract `secondExpression` from.\n   *\n   * Expression must resolve to a number.\n   */\n  firstExpression?: Expression;\n  /**\n   * Expression to subtract from `firstExpression`.\n   *\n   * Expression must resolve to a number.\n   */\n  secondExpression?: Expression;\n}\n\nexport interface MultiplyOperation {\n  /**\n   * Expressions to multiply.\n   *\n   * All expressions must resolve to numbers.\n   * @maxSize 1000\n   */\n  expressions?: Expression[];\n}\n\nexport interface DivideOperation {\n  /**\n   * Expression to divide by `secondExpression`.\n   *\n   * Expression must resolve to a number.\n   */\n  firstExpression?: Expression;\n  /**\n   * Expression to divide `firstExpression` by.\n   *\n   * Expression must resolve to a non-zero number.\n   */\n  secondExpression?: Expression;\n}\n\nexport interface AbsOperation {\n  /**\n   * Expression to find the absolute value of.\n   *\n   * Expression must resolve to a number.\n   */\n  expression?: Expression;\n}\n\nexport interface ModOperation {\n  /**\n   * Expression to divide by `secondExpression` to find the remainder.\n   *\n   * Expression must resolve to a number.\n   */\n  firstExpression?: Expression;\n  /**\n   * Expression to divide `firstExpression` by.\n   *\n   * Expression must resolve to a non-zero number.\n   */\n  secondExpression?: Expression;\n}\n\nexport interface FloorOperation {\n  /**\n   * Expression to round down to the nearest whole number.\n   *\n   * Expression must resolve to a number.\n   */\n  expression?: Expression;\n}\n\nexport interface CeilOperation {\n  /**\n   * Expression to round up to the nearest whole number.\n   *\n   * Expression must resolve to a number.\n   */\n  expression?: Expression;\n}\n\nexport interface ConcatOperation {\n  /**\n   * Expressions to join together.\n   *\n   * All expressions must resolve to strings.\n   * @maxSize 1000\n   */\n  expressions?: Expression[];\n}\n\nexport interface StringifyOperation {\n  /** Expression to convert to a string. */\n  expression?: Expression;\n}\n\nexport interface ToLowerOperation {\n  /**\n   * Expression to convert to lowercase.\n   *\n   * Expression must resolve to a string.\n   */\n  expression?: Expression;\n}\n\nexport interface ToUpperOperation {\n  /**\n   * Expression to convert to uppercase.\n   *\n   * Expression must resolve to a string.\n   */\n  expression?: Expression;\n}\n\nexport interface SubstringOperation {\n  /**\n   * Expression to extract a substring from.\n   *\n   * Expression must resolve to a string.\n   */\n  expression?: Expression;\n  /**\n   * Starting position of the substring to extract, specified in zero-based indexing.\n   *\n   * Expression must resolve to a number.\n   */\n  startExpression?: Expression;\n  /**\n   * Number of characters to extract from the starting position.\n   *\n   * Expression must resolve to a number.\n   */\n  lengthExpression?: Expression;\n}\n\nexport interface LengthOperation {\n  /**\n   * Expression to count the total number of characters of.\n   *\n   * Expression must resolve to a string.\n   */\n  expression?: Expression;\n}\n\nexport interface ConditionOperation {\n  /** Expression to evaluate as a condition. */\n  ifExpression?: Expression;\n  /** Expression to return when `ifExpression` resolves to `true`. */\n  whenTrue?: Expression;\n  /** Expression to return when `ifExpression` resolves to `false`. */\n  whenFalse?: Expression;\n}\n\nexport interface GreaterThanOperation {\n  /** Expression on the left side of the comparison. */\n  firstExpression?: Expression;\n  /** Expression on the right side of the comparison. */\n  secondExpression?: Expression;\n}\n\nexport interface SizeOperation {\n  /** Expression containing the array whose size to return. */\n  expression?: Expression;\n}\n\nexport interface GroupId {\n  /**\n   * Name of the field to group items by.\n   *\n   * This becomes the field name in the result's `_id` property.\n   * @maxLength 1000\n   */\n  key?: string;\n  /** Expression to determine the grouping value. Items whose expression resolves to the same value are grouped together in the result item's `_id` property. */\n  expression?: Expression;\n}\n\nexport interface Accumulator extends AccumulatorExpressionOneOf {\n  /** Calculates the average value across all items in the group based on the specified expression. */\n  avg?: Avg;\n  /** Finds the minimum value across all items in the group. */\n  min?: Min;\n  /** Finds the maximum value across all items in the group. */\n  max?: Max;\n  /** Calculates the sum of the specified expression across all items in the group. */\n  sum?: Sum;\n  /** Finds the first item in the group. */\n  first?: First;\n  /** Finds the last item in the group. */\n  last?: Last;\n  /** Collects values from all items in the group into an array. */\n  push?: Push;\n  /**\n   * Field key in the output item to store the result in.\n   * @maxLength 1000\n   */\n  resultFieldName?: string;\n}\n\n/** @oneof */\nexport interface AccumulatorExpressionOneOf {\n  /** Calculates the average value across all items in the group based on the specified expression. */\n  avg?: Avg;\n  /** Finds the minimum value across all items in the group. */\n  min?: Min;\n  /** Finds the maximum value across all items in the group. */\n  max?: Max;\n  /** Calculates the sum of the specified expression across all items in the group. */\n  sum?: Sum;\n  /** Finds the first item in the group. */\n  first?: First;\n  /** Finds the last item in the group. */\n  last?: Last;\n  /** Collects values from all items in the group into an array. */\n  push?: Push;\n}\n\nexport interface Avg {\n  /**\n   * Expression to calculate the group's average value.\n   *\n   * Expression must resolve to a number.\n   */\n  expression?: Expression;\n}\n\nexport interface Min {\n  /**\n   * Expression to find the group's minimum value.\n   *\n   * Expression must resolve to a comparable value, such as a number or string.\n   */\n  expression?: Expression;\n}\n\nexport interface Max {\n  /**\n   * Expression to find the group's maximum value.\n   *\n   * Expression must resolve to a comparable value, such as a number or string.\n   */\n  expression?: Expression;\n}\n\nexport interface Sum {\n  /**\n   * Expression to calculate the group's total sum.\n   *\n   * Expression must resolve to a number.\n   */\n  expression?: Expression;\n}\n\nexport interface First {\n  /** Expression to find the first item in the group. */\n  expression?: Expression;\n}\n\nexport interface Last {\n  /** Expression to find the last item in the group. */\n  expression?: Expression;\n}\n\nexport interface Push {\n  /** Expression to collect items into an array. */\n  expression?: Expression;\n}\n\nexport interface Sorting {\n  /**\n   * Fields to sort the results by.\n   * @maxSize 1000\n   */\n  values?: CommonSorting[];\n}\n\nexport interface CommonSorting {\n  /**\n   * Name of the field to sort by.\n   * @minLength 1\n   * @maxLength 1000\n   */\n  fieldName?: string;\n  /** Sort order. */\n  order?: SortOrderWithLiterals;\n}\n\nexport enum SortOrder {\n  ASC = 'ASC',\n  DESC = 'DESC',\n}\n\n/** @enumType */\nexport type SortOrderWithLiterals = SortOrder | 'ASC' | 'DESC';\n\n/** Transforms collection items by including, excluding, or reshaping fields. */\nexport interface Projection {\n  /**\n   * Fields to include, exclude, or reshape.\n   * @maxSize 1000\n   */\n  fields?: Field[];\n}\n\nexport interface Include {\n  /**\n   * Key of the field to include in the result.\n   *\n   * Use dot notation to specify nested fields. For example, `user.name` or `product.price`. Learn more about [field keys](https://support.wix.com/en/article/cms-formerly-content-manager-about-your-collection-fields#field-id-velo-by-wix-only).\n   * @maxLength 1000\n   */\n  fieldName?: string;\n}\n\nexport interface Exclude {\n  /**\n   * Key of the field to exclude from the result.\n   *\n   * Use dot notation to specify nested fields. For example, `user.name` or `product.price`. Learn more about [field keys](https://support.wix.com/en/article/cms-formerly-content-manager-about-your-collection-fields#field-id-velo-by-wix-only).\n   * @maxLength 1000\n   */\n  fieldName?: string;\n}\n\nexport interface Reshape {\n  /**\n   * Key of the field to create in the result item.\n   *\n   * Learn more about [field keys](https://support.wix.com/en/article/cms-formerly-content-manager-about-your-collection-fields#field-id-velo-by-wix-only).\n   * @maxLength 1000\n   */\n  resultFieldName?: string;\n  /** Expression to resolve. The result of the expression becomes the value of the new field. */\n  expression?: Expression;\n}\n\nexport interface ProjectNested {\n  /**\n   * Key of the parent field for the nested fields.\n   *\n   * Learn more about [field keys](https://support.wix.com/en/article/cms-formerly-content-manager-about-your-collection-fields#field-id-velo-by-wix-only).\n   * @maxLength 1000\n   */\n  resultFieldName?: string;\n  /**\n   * Nested fields to include, exclude, or reshape.\n   * @maxSize 1000\n   */\n  fields?: Field[];\n}\n\nexport interface Field extends FieldProjectionOneOf {\n  /** When specified, includes only the specified field in the result. All other fields are excluded. */\n  include?: Include;\n  /** When specified, excludes the specified field from the result. All other fields are included. */\n  exclude?: Exclude;\n  /** Reshapes a new field based on the specified expression. The field used by the expression is not included in the result. */\n  reshape?: Reshape;\n  /** Creates nested fields by including, excluding, or reshaping fields. */\n  projectNested?: ProjectNested;\n}\n\n/** @oneof */\nexport interface FieldProjectionOneOf {\n  /** When specified, includes only the specified field in the result. All other fields are excluded. */\n  include?: Include;\n  /** When specified, excludes the specified field from the result. All other fields are included. */\n  exclude?: Exclude;\n  /** Reshapes a new field based on the specified expression. The field used by the expression is not included in the result. */\n  reshape?: Reshape;\n  /** Creates nested fields by including, excluding, or reshaping fields. */\n  projectNested?: ProjectNested;\n}\n\n/** Converts an object to an array. */\nexport interface ObjectToArray {\n  /**\n   * Key of the object field to convert to an array.\n   *\n   * Use dot notation to specify nested fields. For example, `user.name` or `product.price`. Learn more about [field keys](https://support.wix.com/en/article/cms-formerly-content-manager-about-your-collection-fields#field-id-velo-by-wix-only).\n   * @maxLength 1000\n   */\n  objectFieldName?: string;\n  /**\n   * Key of the new array to create in the result item.\n   *\n   * Learn more about [field keys](https://support.wix.com/en/article/cms-formerly-content-manager-about-your-collection-fields#field-id-velo-by-wix-only).\n   * @maxLength 1000\n   */\n  destinationFieldName?: string;\n}\n\n/** Unwinds an array. */\nexport interface UnwindArray {\n  /**\n   * Key of the array field to unwind.\n   *\n   * Use dot notation to specify a nested array. For example, `user.products` or `product.colors`. Learn more about [field keys](https://support.wix.com/en/article/cms-formerly-content-manager-about-your-collection-fields#field-id-velo-by-wix-only).\n   * @maxLength 1000\n   */\n  arrayFieldName?: string;\n}\n\nexport interface AddFields {\n  /**\n   * Fields to add or replace in the result items.\n   * @maxSize 1000\n   */\n  fields?: AddField[];\n}\n\nexport interface AddField {\n  /**\n   * Key of the field to add or replace in the result item.\n   * @maxLength 1000\n   */\n  fieldName?: string;\n  /** Expression to resolve. The result of the expression becomes the value of the field. */\n  expression?: Expression;\n}\n\nexport interface Lookup {\n  /**\n   * ID of the collection to join with.\n   * @maxLength 256\n   */\n  dataCollectionId?: string;\n  /**\n   * Key of the local field whose value is used for matching items in the joined collection.\n   * @maxLength 1000\n   */\n  localField?: string;\n  /**\n   * Key of the field in the joined collection to match against the local field value.\n   * @maxLength 1000\n   */\n  foreignField?: string;\n  /**\n   * Key of the array field where matching joined items are stored.\n   * @maxLength 1000\n   */\n  asField?: string;\n}\n\nexport interface UnionWith {\n  /**\n   * ID of the collection whose results are appended to the current pipeline results.\n   * @maxLength 256\n   */\n  dataCollectionId?: string;\n  /** Pipeline to run on the union collection before appending its results. */\n  pipeline?: AggregationPipeline;\n}\n\nexport interface Paging {\n  /** Number of items to load. */\n  limit?: number | null;\n  /** Number of items to skip in the current sort order. */\n  offset?: number | null;\n}\n\nexport interface CursorPaging {\n  /**\n   * Number of items to load.\n   * @max 1000\n   */\n  limit?: number | null;\n  /**\n   * Pointer to the next or previous page in the list of results.\n   *\n   * You can get the relevant cursor token\n   * from the `pagingMetadata` object in the previous call's response.\n   * Not relevant for the first request.\n   * @maxLength 150000\n   */\n  cursor?: string | null;\n}\n\nexport interface V1Field {\n  /**\n   * Field ID.\n   *\n   * If the field type is `Array`, specify the item index. If the field type is `Object`, specify the field path. Use dot notation to specify nested fields, for example: `data.address.city`.\n   * @maxLength 1024\n   */\n  key?: string;\n  /**\n   * Field display name.\n   *\n   * When moving items to CSV files, use this to set the header of the target column.\n   * @maxLength 1024\n   */\n  displayName?: string;\n  /**\n   * Field data type. Default: `ANY`.\n   *\n   * Learn more about [data types in Wix Data](https://dev.wix.com/docs/rest/business-solutions/cms/data-types-in-wix-data).\n   */\n  fieldType?: FieldTypeWithLiterals;\n}\n\nexport enum FieldType {\n  /** Any data type. */\n  ANY = 'ANY',\n  /** String. */\n  STRING = 'STRING',\n  /** Number. */\n  NUMBER = 'NUMBER',\n  /** Boolean. */\n  BOOLEAN = 'BOOLEAN',\n  /** Date string in ISO 8601 date format: `YYYY-MM-DD`. */\n  DATE = 'DATE',\n  /** [Date object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) (SDK) or an object in the following format: `\"someFieldKey\": { \"$date\": \"YYYY-MM-DDTHH:mm:ss.sssZ\"}`. */\n  DATETIME = 'DATETIME',\n  /** Binary file. */\n  BINARY = 'BINARY',\n  /** object. */\n  OBJECT = 'OBJECT',\n  /** Array. */\n  ARRAY = 'ARRAY',\n  /** Web URL. */\n  URL = 'URL',\n  WIX_MEDIA_URL = 'WIX_MEDIA_URL',\n  WIX_MEDIA_IMAGE_URL = 'WIX_MEDIA_IMAGE_URL',\n  WIX_MEDIA_VIDEO_URL = 'WIX_MEDIA_VIDEO_URL',\n  WIX_MEDIA_DOCUMENT_URL = 'WIX_MEDIA_DOCUMENT_URL',\n  IMAGE_URL = 'IMAGE_URL',\n  VIDEO_URL = 'VIDEO_URL',\n}\n\n/** @enumType */\nexport type FieldTypeWithLiterals =\n  | FieldType\n  | 'ANY'\n  | 'STRING'\n  | 'NUMBER'\n  | 'BOOLEAN'\n  | 'DATE'\n  | 'DATETIME'\n  | 'BINARY'\n  | 'OBJECT'\n  | 'ARRAY'\n  | 'URL'\n  | 'WIX_MEDIA_URL'\n  | 'WIX_MEDIA_IMAGE_URL'\n  | 'WIX_MEDIA_VIDEO_URL'\n  | 'WIX_MEDIA_DOCUMENT_URL'\n  | 'IMAGE_URL'\n  | 'VIDEO_URL';\n\nexport enum WixDataEnvironment {\n  /** Collection's [live environment](https://support.wix.com/en/article/cms-about-sandbox-and-live-collections-and-syncing#sandbox-collections). */\n  LIVE = 'LIVE',\n  /** Collection's [sandbox environment](https://support.wix.com/en/article/cms-about-sandbox-and-live-collections-and-syncing#live-collections). */\n  SANDBOX = 'SANDBOX',\n}\n\n/** @enumType */\nexport type WixDataEnvironmentWithLiterals =\n  | WixDataEnvironment\n  | 'LIVE'\n  | 'SANDBOX';\n\n/** Filter and field selection query. */\nexport interface FilterQuery {\n  /**\n   * Filter to apply to the items. Only items that pass the filter are moved.\n   *\n   * Learn more about building a query filter using [API Query Language](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#filters).\n   */\n  filter?: Record<string, any> | null;\n  /** Item fields to move. If not set, the method moves the full items. */\n  fields?: string[];\n}\n\nexport interface AggregationQuery {\n  /** Aggregation pipeline to run on the collection. */\n  aggregationPipeline?: AggregationPipeline;\n  /**\n   * Fields, will be used to map aggregation pipeline result to export result.\n   * Fields in the aggregation pipeline results that are not in the provided list will be ignored.\n   * If no fields provided, data will be exported as is, without transformation or field name mapping.\n   * @maxSize 1000\n   */\n  fields?: V1Field[];\n}\n\nexport enum FileFormat {\n  /** Unknown format. */\n  UNKNOWN = 'UNKNOWN',\n  /** CSV format. */\n  CSV = 'CSV',\n  /** JSONL format. */\n  JSONL = 'JSONL',\n}\n\n/** @enumType */\nexport type FileFormatWithLiterals = FileFormat | 'UNKNOWN' | 'CSV' | 'JSONL';\n\nexport enum MediaType {\n  /** All media types. */\n  ALL = 'ALL',\n  /** Images. */\n  IMAGE = 'IMAGE',\n  /** Videos. */\n  VIDEO = 'VIDEO',\n  /** Audio files. */\n  AUDIO = 'AUDIO',\n  /** Documents. */\n  DOCUMENT = 'DOCUMENT',\n}\n\n/** @enumType */\nexport type MediaTypeWithLiterals =\n  | MediaType\n  | 'ALL'\n  | 'IMAGE'\n  | 'VIDEO'\n  | 'AUDIO'\n  | 'DOCUMENT';\n\n/** Wix data collection. */\nexport interface WixDataSource extends WixDataSourceQueryOneOf {\n  /** Filter and field selection to apply to the collection items. */\n  filterQuery?: FilterQuery;\n  /** Aggregation pipeline to run on the collection. */\n  aggregationQuery?: AggregationQuery;\n  /**\n   * ID of the data collection.\n   * @minLength 1\n   * @maxLength 256\n   */\n  collectionId?: string;\n  /**\n   * Filter to apply to the items. Only items that pass the filter are moved.\n   *\n   * Learn more about building a query filter using [API Query Language](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#filters).\n   * Deprecated: Use `filter_query.filter` instead.\n   * @deprecated\n   * @replacedBy filter_query\n   * @targetRemovalDate 2027-01-01\n   */\n  filter?: Record<string, any> | null;\n  /**\n   * Deprecated: Use `filter_query.fields` instead.\n   * @deprecated\n   * @replacedBy filter_query\n   * @targetRemovalDate 2027-01-01\n   */\n  fields?: string[];\n}\n\n/** @oneof */\nexport interface WixDataSourceQueryOneOf {\n  /** Filter and field selection to apply to the collection items. */\n  filterQuery?: FilterQuery;\n  /** Aggregation pipeline to run on the collection. */\n  aggregationQuery?: AggregationQuery;\n}\n\nexport interface LocalizationSource {\n  /**\n   * Translated CMS content in the specified languages. Content in these languages is exported to the destination, with the first specified language treated as the main one.\n   *\n   * Use two-letter language codes in [ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes) format. You can also specify a two-letter country code in [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements) format.\n   *\n   * Learn more about [available languages in Wix Multilingual](https://support.wix.com/en/article/wix-multilingual-languages-available).\n   * @format LANGUAGE_TAG\n   * @minSize 2\n   * @maxSize 64\n   */\n  languages?: string[];\n}\n\n/**\n * File.\n *\n * To create a file upload URL, call the Create File Upload Url method and use the `uploadURL` in the response to upload the source file.\n */\nexport interface FileSource {\n  /** File format. If not specified, automatically determined by Wix. */\n  format?: FileFormatWithLiterals;\n  /**\n   * File ID as returned in the `fileId` property of the Create File Upload URL method's response.\n   * @maxLength 512\n   */\n  fileId?: string;\n  /**\n   * URL where the source file is uploaded. Automatically generated by Wix.\n   * @readonly\n   * @maxLength 2048\n   */\n  url?: string;\n}\n\nexport interface TestSource {\n  /**\n   * Discriminator value for a particular test source.\n   * @maxLength 512\n   */\n  type?: string;\n  /** Test source details. */\n  details?: Record<string, any> | null;\n}\n\n/** Job logs. */\nexport interface DataMovementJobLogs {\n  /**\n   * ID of the job from which to export logs.\n   * @format GUID\n   */\n  jobId?: string;\n}\n\n/** File. */\nexport interface ExternalFileSource {\n  /** File format. If not specified, automatically determined by Wix. */\n  format?: FileFormatWithLiterals;\n  /**\n   * URL where the source file is located.\n   * @maxLength 2048\n   * @format WEB_URL\n   */\n  url?: string;\n}\n\n/** Google Sheets source. */\nexport interface GoogleSheetsSource {\n  /**\n   * ID of the Google Sheets spreadsheet.\n   * @minLength 1\n   * @maxLength 256\n   */\n  spreadsheetId?: string;\n  /**\n   * Name of the sheet within the spreadsheet.\n   * @maxLength 256\n   */\n  sheetName?: string | null;\n  /**\n   * Range of cells within the sheet.\n   * @maxLength 256\n   */\n  range?: string | null;\n  /**\n   * Entity ID of the saved OAuth token.\n   * @format GUID\n   */\n  oauthTokenId?: string;\n}\n\n/** Wix Media Manager source. */\nexport interface WixMediaSource {\n  /**\n   * ID of the source folder in the Media Manager. If not specified, all media items are included.\n   * @maxLength 256\n   */\n  sourceFolderId?: string | null;\n}\n\n/** Exports collection structure (fields, permissions, etc.) from a site. */\nexport interface WixDataCollectionDefinitionSource {\n  /**\n   * IDs of collections whose definitions to read.\n   * @minSize 1\n   * @maxSize 1000\n   * @maxLength 256\n   */\n  collectionIds?: string[];\n}\n\nexport interface Destination extends DestinationDestinationOneOf {\n  /**\n   * Wix data collection.\n   *\n   * You can move items to native Wix collections, [Wix app collections](https://dev.wix.com/docs/develop-websites/articles/databases/wix-data/collections/working-with-wix-app-collections-and-code), and [external database collections](https://dev.wix.com/docs/develop-websites/articles/databases/external-databases/overview/integrating-external-databases-with-your-wix-site).\n   */\n  wixDataCollection?: WixDataDestination;\n  /**\n   * Localized CMS content. Available when the site has [Wix Multilingual](https://support.wix.com/en/article/wix-multilingual-an-overview) installed.\n   *\n   * Learn more about working with [translated CMS content](https://support.wix.com/en/article/wix-multilingual-translating-cms-collection-content).\n   */\n  localization?: LocalizationDestination;\n  /** Downloadable file with the moved items. */\n  file?: FileDestination;\n}\n\n/** @oneof */\nexport interface DestinationDestinationOneOf {\n  /**\n   * Wix data collection.\n   *\n   * You can move items to native Wix collections, [Wix app collections](https://dev.wix.com/docs/develop-websites/articles/databases/wix-data/collections/working-with-wix-app-collections-and-code), and [external database collections](https://dev.wix.com/docs/develop-websites/articles/databases/external-databases/overview/integrating-external-databases-with-your-wix-site).\n   */\n  wixDataCollection?: WixDataDestination;\n  /**\n   * Localized CMS content. Available when the site has [Wix Multilingual](https://support.wix.com/en/article/wix-multilingual-an-overview) installed.\n   *\n   * Learn more about working with [translated CMS content](https://support.wix.com/en/article/wix-multilingual-translating-cms-collection-content).\n   */\n  localization?: LocalizationDestination;\n  /** Downloadable file with the moved items. */\n  file?: FileDestination;\n}\n\n/** Wix data collection. */\nexport interface WixDataDestination {\n  /**\n   * ID of the destination collection.\n   * @maxLength 256\n   */\n  collectionId?: string;\n  /**\n   * When items already exist in the destination collection, the data writing policy.\n   *\n   * Default: `OVERWRITE`.\n   */\n  writePolicy?: WixDataDestinationWritePolicyWithLiterals;\n}\n\nexport enum WixDataDestinationWritePolicy {\n  /** When an item with the same ID exists in the collection, overwrite it. */\n  OVERWRITE = 'OVERWRITE',\n  /** When an item with the same ID exists in the collection, skip it. */\n  SKIP_EXISTING = 'SKIP_EXISTING',\n  /** Clear the destination collection before moving data. When the job completes, the collection contains only the moved data. */\n  TRUNCATE_BEFORE = 'TRUNCATE_BEFORE',\n}\n\n/** @enumType */\nexport type WixDataDestinationWritePolicyWithLiterals =\n  | WixDataDestinationWritePolicy\n  | 'OVERWRITE'\n  | 'SKIP_EXISTING'\n  | 'TRUNCATE_BEFORE';\n\nexport interface LocalizationDestination {\n  /**\n   * Translated CMS content in the specified languages. Content in these languages is imported from the source, with the first specified language treated as the main one.\n   *\n   * Use two-letter language codes in [ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes) format. You can also specify a two-letter country code in [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements) format.\n   *\n   * Learn more about [available languages in Wix Multilingual](https://support.wix.com/en/article/wix-multilingual-languages-available).\n   * @minSize 2\n   * @maxSize 64\n   * @format LANGUAGE_TAG\n   */\n  languages?: string[];\n}\n\n/** Destination file. Creates a file and generates a download URL. */\nexport interface FileDestination {\n  /** File format. */\n  format?: FileFormatWithLiterals;\n  /**\n   * File name.\n   * @maxLength 512\n   */\n  fileName?: string | null;\n  /**\n   * File download URL.\n   * @readonly\n   * @maxLength 2048\n   */\n  url?: string;\n  /**\n   * Formatting schema for the destination file.\n   *\n   * When moving data to CSV files, use each field's `key` to specify the path of the data in the source item. Use each field's `display_name` property to set the header in the CSV file's first row.\n   *\n   * For example, a source item of the [type](https://dev.wix.com/docs/rest/business-solutions/cms/data-types-in-wix-data) `Object` with the nested properties `data: {address: {city: cityName}}` can be mapped to the CSV file by specifying the field's `key` as `data.address.city` and its `display_name` as `City`.\n   *\n   * If the schema isn't set, the source file schema is used.\n   * @internal\n   */\n  schema?: Schema;\n}\n\n/** Schema used to specify item format. */\nexport interface Schema {\n  /**\n   * Item fields to move to the destination file.\n   * @maxSize 1000\n   */\n  fields?: V1Field[];\n}\n\nexport interface StoresCatalogProductsDestination {}\n\n/** Wix Media Manager destination. */\nexport interface WixMediaDestination {\n  /**\n   * ID of the target folder in the Media Manager. If not specified, media is imported to the root folder.\n   * @maxLength 256\n   */\n  targetFolderId?: string | null;\n}\n\nexport enum WixMediaDestinationWritePolicy {\n  /** Overwrite existing media with the same name. */\n  OVERWRITE = 'OVERWRITE',\n  /** Skip media that already exists. */\n  SKIP_EXISTING = 'SKIP_EXISTING',\n}\n\n/** @enumType */\nexport type WixMediaDestinationWritePolicyWithLiterals =\n  | WixMediaDestinationWritePolicy\n  | 'OVERWRITE'\n  | 'SKIP_EXISTING';\n\n/** Creates empty Wix data collections (no data items are inserted). */\nexport interface WixDataCollectionDefinitionDestination {\n  /** Policy for handling collections that already exist on the target site. */\n  writePolicy?: WritePolicyWithLiterals;\n}\n\nexport enum WritePolicy {\n  /** Only create new collections. Skip collections that already exist on the target site. */\n  SKIP_EXISTING = 'SKIP_EXISTING',\n  /** Create new collections and overwrite existing ones. */\n  OVERWRITE = 'OVERWRITE',\n}\n\n/** @enumType */\nexport type WritePolicyWithLiterals =\n  | WritePolicy\n  | 'SKIP_EXISTING'\n  | 'OVERWRITE';\n\nexport interface StoresCatalogInventoryDestination {}\n\nexport interface TestDestination {\n  /**\n   * Discriminator value for a particular test destination.\n   * @maxLength 512\n   */\n  type?: string;\n  /** Test destination details. */\n  details?: Record<string, any> | null;\n}\n\nexport interface Transformation extends TransformationTransformationOneOf {}\n\n/** @oneof */\nexport interface TransformationTransformationOneOf {}\n\nexport interface TestTransformation {}\n\n/** When the job's status is `IN_PROGRESS`, the job's progress details. */\nexport interface Progress {\n  /**\n   * Number of units already processed.\n   * @readonly\n   */\n  current?: number;\n  /**\n   * Total number of units to move.\n   * @readonly\n   */\n  total?: number | null;\n  /** Number of items that failed to move to the destination. */\n  itemsRejected?: number;\n  /** Number of items successfully moved to the destination. */\n  itemsSuccessful?: number;\n}\n\nexport interface ItemsSuccessfulInfo {\n  /** Number of new items created in the destination. */\n  itemsCreated?: number;\n  /** Number of existing items updated in the destination. */\n  itemsUpdated?: number;\n  /**\n   * Number of items whose movement was partially successful.\n   *\n   * > **Note**: Call List Movement Logs for additional details.\n   */\n  itemsPartiallySuccessful?: number;\n}\n\nexport enum Units {\n  /** Unit of bytes. */\n  BYTES = 'BYTES',\n  /** Unit of items. */\n  ITEMS = 'ITEMS',\n}\n\n/** @enumType */\nexport type UnitsWithLiterals = Units | 'BYTES' | 'ITEMS';\n\nexport interface ApplicationError {\n  /** Error code. */\n  code?: string;\n  /** Description of the error. */\n  description?: string;\n  /** Data related to the error. */\n  data?: Record<string, any> | null;\n}\n\nexport interface PartiallySuccessfulStatusOptions {\n  /**\n   * Reason the job was partially successful.\n   * @maxLength 1000\n   */\n  cause?: string;\n}\n\nexport interface ExtendedFields {\n  /**\n   * Extended field data. Each key corresponds to the namespace of the app that created the extended fields.\n   * The value of each key is structured according to the schema defined when the extended fields were configured.\n   *\n   * You can only access fields for which you have the appropriate permissions.\n   *\n   * Learn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields).\n   */\n  namespaces?: Record<string, Record<string, any>>;\n}\n\nexport interface SubmitJobRequest extends SubmitJobRequestSiteOverrideOneOf {\n  /**\n   * When moving data from the Wix data collection of a site other than the current one, the source site ID.\n   *\n   * By default, the source site is the current site. However, you can move data from any site in the same [Wix Account](https://support.wix.com/en/article/managing-multiple-sites-under-one-account).\n   *\n   * > **Note**: You can specify the ID of another source site or destination site, but not both.\n   * @format GUID\n   */\n  sourceSiteId?: string;\n  /**\n   * When moving data to the Wix data collection of a site other than the current one, the destination site ID.\n   *\n   * By default, the destination site is the current site. However, you can move data to any site in the same [Wix Account](https://support.wix.com/en/article/managing-multiple-sites-under-one-account) by specifying its ID. You can retrieve this ID by calling [Get App Instance](https://dev.wix.com/docs/rest/app-management/app-instance/get-app-instance).\n   *\n   * > **Note**: You can specify the ID of another source site or destination site, but not both.\n   * @format GUID\n   */\n  destinationSiteId?: string;\n  /** Source to move data from. */\n  source: Source;\n  /** Destination to move data to. */\n  destination: Destination;\n  /** Job name. */\n  name?: string;\n}\n\n/** @oneof */\nexport interface SubmitJobRequestSiteOverrideOneOf {\n  /**\n   * When moving data from the Wix data collection of a site other than the current one, the source site ID.\n   *\n   * By default, the source site is the current site. However, you can move data from any site in the same [Wix Account](https://support.wix.com/en/article/managing-multiple-sites-under-one-account).\n   *\n   * > **Note**: You can specify the ID of another source site or destination site, but not both.\n   * @format GUID\n   */\n  sourceSiteId?: string;\n  /**\n   * When moving data to the Wix data collection of a site other than the current one, the destination site ID.\n   *\n   * By default, the destination site is the current site. However, you can move data to any site in the same [Wix Account](https://support.wix.com/en/article/managing-multiple-sites-under-one-account) by specifying its ID. You can retrieve this ID by calling [Get App Instance](https://dev.wix.com/docs/rest/app-management/app-instance/get-app-instance).\n   *\n   * > **Note**: You can specify the ID of another source site or destination site, but not both.\n   * @format GUID\n   */\n  destinationSiteId?: string;\n}\n\nexport interface SubmitJobResponse {\n  /** Details of the submitted job. */\n  job?: DataMovementJob;\n}\n\nexport interface CreateFileUploadUrlRequest {\n  /**\n   * Name of uploaded file.\n   * @maxLength 512\n   */\n  fileName?: string | null;\n}\n\nexport interface CreateFileUploadUrlResponse {\n  /**\n   * File ID.\n   * @maxLength 512\n   */\n  fileId?: string;\n  /**\n   * URL to which you can upload the file.\n   * @maxLength 8192\n   */\n  uploadUrl?: string;\n}\n\nexport interface GetJobRequest {\n  /**\n   * Job ID.\n   * @format GUID\n   */\n  jobId: string;\n}\n\nexport interface GetJobResponse {\n  /** Details of the retrieved job. */\n  job?: DataMovementJob;\n}\n\nexport interface ListJobsRequest {\n  /** Paging metadata. */\n  paging?: CommonCursorPaging;\n}\n\nexport interface CommonCursorPaging {\n  /**\n   * Maximum number of items to return in the results.\n   * @max 100\n   */\n  limit?: number | null;\n  /**\n   * Pointer to the next or previous page in the list of results.\n   *\n   * Pass the relevant cursor token from the `pagingMetadata` object in the previous call's response.\n   * Not relevant for the first request.\n   * @maxLength 16000\n   */\n  cursor?: string | null;\n}\n\nexport interface QueryV2 extends QueryV2PagingMethodOneOf {\n  /** Paging options to limit and offset the number of items. */\n  paging?: CommonPaging;\n  /** 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`. */\n  cursorPaging?: CommonCursorPaging;\n  /**\n   * Filter object.\n   *\n   * Learn more about [filtering](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#filters).\n   */\n  filter?: Record<string, any> | null;\n  /**\n   * Sort object.\n   *\n   * Learn more about [sorting](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#sorting).\n   */\n  sort?: WixCommonSorting[];\n  /** 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. */\n  fields?: string[];\n  /** 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. */\n  fieldsets?: string[];\n}\n\n/** @oneof */\nexport interface QueryV2PagingMethodOneOf {\n  /** Paging options to limit and offset the number of items. */\n  paging?: CommonPaging;\n  /** 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`. */\n  cursorPaging?: CommonCursorPaging;\n}\n\nexport interface WixCommonSorting {\n  /**\n   * Name of the field to sort by.\n   * @maxLength 512\n   */\n  fieldName?: string;\n  /** Sort order. */\n  order?: CommonSortOrderWithLiterals;\n}\n\nexport enum CommonSortOrder {\n  ASC = 'ASC',\n  DESC = 'DESC',\n}\n\n/** @enumType */\nexport type CommonSortOrderWithLiterals = CommonSortOrder | 'ASC' | 'DESC';\n\nexport interface CommonPaging {\n  /** Number of items to load. */\n  limit?: number | null;\n  /** Number of items to skip in the current sort order. */\n  offset?: number | null;\n}\n\nexport interface ListJobsResponse {\n  /** List of jobs for the current site. */\n  jobs?: DataMovementJob[];\n  /** Paging metadata. */\n  pagingMetadata?: CursorPagingMetadata;\n}\n\nexport interface CursorPagingMetadata {\n  /** Number of items returned in current page. */\n  count?: number | null;\n  /** Cursor strings that point to the next page, previous page, or both. */\n  cursors?: Cursors;\n  /**\n   * Whether there are more pages to retrieve following the current page.\n   *\n   * + `true`: Another page of results can be retrieved.\n   * + `false`: This is the last page.\n   */\n  hasNext?: boolean | null;\n}\n\nexport interface Cursors {\n  /**\n   * Cursor string pointing to the next page in the list of results.\n   * @maxLength 16000\n   */\n  next?: string | null;\n  /**\n   * Cursor pointing to the previous page in the list of results.\n   * @maxLength 16000\n   */\n  prev?: string | null;\n}\n\nexport interface QueryJobsRequest {\n  /** Query preferences. Learn more about [API Query Language](https://dev.wix.com/api/rest/getting-started/api-query-language). */\n  query?: CursorQuery;\n}\n\nexport interface CursorQuery extends CursorQueryPagingMethodOneOf {\n  /**\n   * Cursor paging options.\n   *\n   * Learn more about [cursor paging](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#cursor-paging).\n   */\n  cursorPaging?: CommonCursorPaging;\n  /**\n   * Filter object.\n   *\n   * Learn more about [filtering](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#filters).\n   */\n  filter?: Record<string, any> | null;\n  /**\n   * Sort object.\n   *\n   * Learn more about [sorting](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#sorting).\n   * @maxSize 5\n   */\n  sort?: WixCommonSorting[];\n}\n\n/** @oneof */\nexport interface CursorQueryPagingMethodOneOf {\n  /**\n   * Cursor paging options.\n   *\n   * Learn more about [cursor paging](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#cursor-paging).\n   */\n  cursorPaging?: CommonCursorPaging;\n}\n\nexport interface QueryJobsResponse {\n  /** List of jobs matching the query. */\n  jobs?: DataMovementJob[];\n  /** Paging metadata. */\n  pagingMetadata?: CursorPagingMetadata;\n}\n\nexport interface TerminateJobRequest {\n  /**\n   * ID of the job to terminate.\n   * @format GUID\n   */\n  jobId: string;\n}\n\nexport interface TerminateJobResponse {\n  /** Details of the terminated job. */\n  job?: DataMovementJob;\n}\n\nexport interface ListMovementLogsRequest {\n  /**\n   * ID of the job for which to list logs.\n   * @format GUID\n   */\n  jobId: string;\n  /** Paging metadata. */\n  paging?: CommonCursorPaging;\n}\n\nexport interface ListMovementLogsResponse {\n  /** Job logs. */\n  logs?: MovementLog[];\n  /** Paging metadata. */\n  pagingMetadata?: CursorPagingMetadata;\n}\n\n/**\n * Details about the attempt to move the source item.\n *\n * Logs are generated by the destination for each item that failed to move. Some destination also generate logs for items that successfully moved.\n */\nexport interface MovementLog {\n  /**\n   * ID of the item in the source, such as a Wix Data Item or a row number in a CSV file.\n   * @maxLength 512\n   */\n  sourceItemId?: string;\n  /** Details about the failure if moving the item fails. */\n  failure?: ApplicationError;\n  /**\n   * Additional details provided when moving the item succeeds with details.\n   *\n   * > **Note**: Each destination type determines the structure of its `details` object.\n   */\n  details?: Record<string, any> | null;\n}\n\nexport interface JobCallback extends JobCallbackOptionsOneOf {\n  /** Options for the callback's `IN_PROGRESS` stage. */\n  inProgressOptions?: InProgressOptions;\n  /** Options for the callback's `FAILED` stage. */\n  failedOptions?: FailedOptions;\n  /** Options for the callback's `PARTIALLY_SUCCESSFUL` stage. */\n  partiallySuccessfulOptions?: PartiallySuccessfulOptions;\n  /**\n   * ID of the job that triggered this callback.\n   * @format GUID\n   */\n  jobId?: string;\n  /** Job status. */\n  status?: JobStatusWithLiterals;\n  /** Additional data to be merged into the job entity's extended_fields. */\n  additionalData?: ExtendedFields;\n}\n\n/** @oneof */\nexport interface JobCallbackOptionsOneOf {\n  /** Options for the callback's `IN_PROGRESS` stage. */\n  inProgressOptions?: InProgressOptions;\n  /** Options for the callback's `FAILED` stage. */\n  failedOptions?: FailedOptions;\n  /** Options for the callback's `PARTIALLY_SUCCESSFUL` stage. */\n  partiallySuccessfulOptions?: PartiallySuccessfulOptions;\n}\n\nexport interface InProgressOptions {\n  /** When the job status is `IN_PROGRESS`, the job progress information. */\n  progress?: Progress;\n  /**\n   * Job movement log. Includes information about failed items or items that succeeded with notes.\n   * @maxSize 1024\n   */\n  log?: MovementLog[];\n}\n\nexport interface FailedOptions {\n  /** Details of the failure. */\n  error?: ApplicationError;\n}\n\nexport interface PartiallySuccessfulOptions {\n  /**\n   * Why the job was partially successful.\n   * @maxLength 1000\n   */\n  cause?: string;\n}\n\nexport interface Empty {}\n\nexport interface TerminateJobByIdRequest {\n  /**\n   * ID of the job to terminate.\n   * @format GUID\n   */\n  jobId?: string;\n}\n\nexport interface TerminateJobByIdResponse {\n  /** Details of the terminated job. */\n  job?: DataMovementJob;\n}\n\nexport interface DomainEvent extends DomainEventBodyOneOf {\n  createdEvent?: EntityCreatedEvent;\n  updatedEvent?: EntityUpdatedEvent;\n  deletedEvent?: EntityDeletedEvent;\n  actionEvent?: ActionEvent;\n  /** Event ID. With this ID you can easily spot duplicated events and ignore them. */\n  _id?: string;\n  /**\n   * Fully Qualified Domain Name of an entity. This is a unique identifier assigned to the API main business entities.\n   * For example, `wix.stores.catalog.product`, `wix.bookings.session`, `wix.payments.transaction`.\n   */\n  entityFqdn?: string;\n  /**\n   * Event action name, placed at the top level to make it easier for users to dispatch messages.\n   * For example: `created`/`updated`/`deleted`/`started`/`completed`/`email_opened`.\n   */\n  slug?: string;\n  /** ID of the entity associated with the event. */\n  entityId?: string;\n  /** Event timestamp in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) format and UTC time. For example, `2020-04-26T13:57:50.699Z`. */\n  eventTime?: Date | null;\n  /**\n   * Whether the event was triggered as a result of a privacy regulation application\n   * (for example, GDPR).\n   */\n  triggeredByAnonymizeRequest?: boolean | null;\n  /** If present, indicates the action that triggered the event. */\n  originatedFrom?: string | null;\n  /**\n   * A sequence number that indicates the order of updates to an entity. For example, if an entity was updated at `16:00` and then again at `16:01`, the second update will always have a higher sequence number.\n   * You can use this number to make sure you're handling updates in the right order. Just save the latest sequence number on your end and compare it to the one in each new message. If the new message has an older (lower) number, you can safely ignore it.\n   */\n  entityEventSequence?: string | null;\n}\n\n/** @oneof */\nexport interface DomainEventBodyOneOf {\n  createdEvent?: EntityCreatedEvent;\n  updatedEvent?: EntityUpdatedEvent;\n  deletedEvent?: EntityDeletedEvent;\n  actionEvent?: ActionEvent;\n}\n\nexport interface EntityCreatedEvent {\n  entity?: string;\n}\n\nexport interface RestoreInfo {\n  deletedDate?: Date | null;\n}\n\nexport interface EntityUpdatedEvent {\n  /**\n   * Since platformized APIs only expose PATCH and not PUT we can't assume that the fields sent from the client are the actual diff.\n   * This means that to generate a list of changed fields (as opposed to sent fields) one needs to traverse both objects.\n   * We don't want to impose this on all developers and so we leave this traversal to the notification recipients which need it.\n   */\n  currentEntity?: string;\n}\n\nexport interface EntityDeletedEvent {\n  /** Entity that was deleted. */\n  deletedEntity?: string | null;\n}\n\nexport interface ActionEvent {\n  body?: string;\n}\n\nexport interface MessageEnvelope {\n  /**\n   * App instance ID.\n   * @format GUID\n   */\n  instanceId?: string | null;\n  /**\n   * Event type.\n   * @maxLength 150\n   */\n  eventType?: string;\n  /** The identification type and identity data. */\n  identity?: IdentificationData;\n  /** Stringify payload. */\n  data?: string;\n  /** Details related to the account */\n  accountInfo?: AccountInfo;\n}\n\nexport interface IdentificationData extends IdentificationDataIdOneOf {\n  /**\n   * ID of a site visitor that has not logged in to the site.\n   * @format GUID\n   */\n  anonymousVisitorId?: string;\n  /**\n   * ID of a site visitor that has logged in to the site.\n   * @format GUID\n   */\n  memberId?: string;\n  /**\n   * ID of a Wix user (site owner, contributor, etc.).\n   * @format GUID\n   */\n  wixUserId?: string;\n  /**\n   * ID of an app.\n   * @format GUID\n   */\n  appId?: string;\n  /** @readonly */\n  identityType?: WebhookIdentityTypeWithLiterals;\n}\n\n/** @oneof */\nexport interface IdentificationDataIdOneOf {\n  /**\n   * ID of a site visitor that has not logged in to the site.\n   * @format GUID\n   */\n  anonymousVisitorId?: string;\n  /**\n   * ID of a site visitor that has logged in to the site.\n   * @format GUID\n   */\n  memberId?: string;\n  /**\n   * ID of a Wix user (site owner, contributor, etc.).\n   * @format GUID\n   */\n  wixUserId?: string;\n  /**\n   * ID of an app.\n   * @format GUID\n   */\n  appId?: string;\n}\n\nexport enum WebhookIdentityType {\n  UNKNOWN = 'UNKNOWN',\n  ANONYMOUS_VISITOR = 'ANONYMOUS_VISITOR',\n  MEMBER = 'MEMBER',\n  WIX_USER = 'WIX_USER',\n  APP = 'APP',\n}\n\n/** @enumType */\nexport type WebhookIdentityTypeWithLiterals =\n  | WebhookIdentityType\n  | 'UNKNOWN'\n  | 'ANONYMOUS_VISITOR'\n  | 'MEMBER'\n  | 'WIX_USER'\n  | 'APP';\n\nexport interface AccountInfo {\n  /**\n   * ID of the Wix account associated with the event.\n   * @format GUID\n   */\n  accountId?: string | null;\n  /**\n   * ID of the parent Wix account. Only included when accountId belongs to a child account.\n   * @format GUID\n   */\n  parentAccountId?: string | null;\n  /**\n   * ID of the Wix site associated with the event. Only included when the event is tied to a specific site.\n   * @format GUID\n   */\n  siteId?: string | null;\n}\n\nexport interface BaseEventMetadata {\n  /**\n   * App instance ID.\n   * @format GUID\n   */\n  instanceId?: string | null;\n  /**\n   * Event type.\n   * @maxLength 150\n   */\n  eventType?: string;\n  /** The identification type and identity data. */\n  identity?: IdentificationData;\n  /** Details related to the account */\n  accountInfo?: AccountInfo;\n}\n\nexport interface EventMetadata extends BaseEventMetadata {\n  /** Event ID. With this ID you can easily spot duplicated events and ignore them. */\n  _id?: string;\n  /**\n   * Fully Qualified Domain Name of an entity. This is a unique identifier assigned to the API main business entities.\n   * For example, `wix.stores.catalog.product`, `wix.bookings.session`, `wix.payments.transaction`.\n   */\n  entityFqdn?: string;\n  /**\n   * Event action name, placed at the top level to make it easier for users to dispatch messages.\n   * For example: `created`/`updated`/`deleted`/`started`/`completed`/`email_opened`.\n   */\n  slug?: string;\n  /** ID of the entity associated with the event. */\n  entityId?: string;\n  /** Event timestamp in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) format and UTC time. For example, `2020-04-26T13:57:50.699Z`. */\n  eventTime?: Date | null;\n  /**\n   * Whether the event was triggered as a result of a privacy regulation application\n   * (for example, GDPR).\n   */\n  triggeredByAnonymizeRequest?: boolean | null;\n  /** If present, indicates the action that triggered the event. */\n  originatedFrom?: string | null;\n  /**\n   * A sequence number that indicates the order of updates to an entity. For example, if an entity was updated at `16:00` and then again at `16:01`, the second update will always have a higher sequence number.\n   * You can use this number to make sure you're handling updates in the right order. Just save the latest sequence number on your end and compare it to the one in each new message. If the new message has an older (lower) number, you can safely ignore it.\n   */\n  entityEventSequence?: string | null;\n  accountInfo?: AccountInfoMetadata;\n}\n\nexport interface AccountInfoMetadata {\n  /** ID of the Wix account associated with the event */\n  accountId: string;\n  /** ID of the Wix site associated with the event. Only included when the event is tied to a specific site. */\n  siteId?: string;\n  /** ID of the parent Wix account. Only included when 'accountId' belongs to a child account. */\n  parentAccountId?: string;\n}\n\nexport interface JobCreatedEnvelope {\n  entity: DataMovementJob;\n  metadata: EventMetadata;\n}\n\n/**\n * Triggered when a job is submitted.\n * @permissionScope Data Mover Manage Jobs\n * @permissionScopeId SCOPE.DC-DATA.MANAGE_MOVEMENT_JOBS\n * @permissionId WIX_DATA.DATA_JOB_GET\n * @webhook\n * @eventType wix.hub.v1.job_created\n * @slug created\n */\nexport declare function onJobCreated(\n  handler: (event: JobCreatedEnvelope) => void | Promise<void>\n): void;\n\nexport interface JobDeletedEnvelope {\n  metadata: EventMetadata;\n}\n\n/**\n * Triggered when a job is terminated.\n * @permissionScope Data Mover Manage Jobs\n * @permissionScopeId SCOPE.DC-DATA.MANAGE_MOVEMENT_JOBS\n * @permissionId WIX_DATA.DATA_JOB_GET\n * @webhook\n * @eventType wix.hub.v1.job_deleted\n * @slug deleted\n */\nexport declare function onJobDeleted(\n  handler: (event: JobDeletedEnvelope) => void | Promise<void>\n): void;\n\nexport interface JobUpdatedEnvelope {\n  entity: DataMovementJob;\n  metadata: EventMetadata;\n}\n\n/**\n * Triggered when a job's `status` updates.\n * @permissionScope Data Mover Manage Jobs\n * @permissionScopeId SCOPE.DC-DATA.MANAGE_MOVEMENT_JOBS\n * @permissionId WIX_DATA.DATA_JOB_GET\n * @webhook\n * @eventType wix.hub.v1.job_updated\n * @slug updated\n */\nexport declare function onJobUpdated(\n  handler: (event: JobUpdatedEnvelope) => void | Promise<void>\n): void;\n\n/**\n * Submit a data movement job.\n *\n * > **Note**: By default, the job is submitted for the current site.\n * @param source - Source to move data from.\n * @param destination - Destination to move data to.\n * @public\n * @requiredField destination\n * @requiredField destination.destination\n * @requiredField destination.destination.file.format\n * @requiredField destination.destination.localization.languages\n * @requiredField destination.destination.wixDataCollection.collectionId\n * @requiredField source\n * @requiredField source.source\n * @requiredField source.source.file.fileId\n * @requiredField source.source.localization.languages\n * @requiredField source.source.wixDataCollection.collectionId\n * @permissionId WIX_DATA.DATA_JOB_SUBMIT\n * @applicableIdentity APP\n * @fqn wix.hub.v1.DataMovementService.SubmitJob\n */\nexport async function submitJob(\n  source: NonNullablePaths<\n    Source,\n    `file.fileId` | `localization.languages` | `wixDataCollection.collectionId`,\n    3\n  >,\n  destination: NonNullablePaths<\n    Destination,\n    `file.format` | `localization.languages` | `wixDataCollection.collectionId`,\n    3\n  >,\n  options?: SubmitJobOptions\n): Promise<\n  NonNullablePaths<\n    SubmitJobResponse,\n    | `job.partiallySuccessfulOptions.cause`\n    | `job._id`\n    | `job.status`\n    | `job.source.wixDataCollection.filterQuery.fields`\n    | `job.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages`\n    | `job.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.${number}.objectToArray.objectFieldName`\n    | `job.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.${number}.objectToArray.destinationFieldName`\n    | `job.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.${number}.unwindArray.arrayFieldName`\n    | `job.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.${number}.skip`\n    | `job.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.${number}.limit`\n    | `job.source.wixDataCollection.aggregationQuery.fields`\n    | `job.source.wixDataCollection.aggregationQuery.fields.${number}.key`\n    | `job.source.wixDataCollection.aggregationQuery.fields.${number}.displayName`\n    | `job.source.wixDataCollection.aggregationQuery.fields.${number}.fieldType`\n    | `job.source.wixDataCollection.collectionId`\n    | `job.source.wixDataCollection.fields`\n    | `job.source.localization.languages`\n    | `job.source.file.format`\n    | `job.source.file.fileId`\n    | `job.source.file.url`\n    | `job.destination.wixDataCollection.collectionId`\n    | `job.destination.wixDataCollection.writePolicy`\n    | `job.destination.localization.languages`\n    | `job.destination.file.format`\n    | `job.destination.file.url`\n    | `job.name`\n    | `job.progress.current`\n    | `job.progress.itemsRejected`\n    | `job.progress.itemsSuccessful`\n    | `job.error.code`\n    | `job.error.description`\n    | `job.sourceSiteId`\n    | `job.destinationSiteId`\n    | `job.logsRecorded`,\n    10\n  >\n> {\n  // @ts-ignore\n  const { httpClient, sideEffects } = arguments[3] as {\n    httpClient: HttpClient;\n    sideEffects?: any;\n  };\n\n  const payload = renameKeysFromSDKRequestToRESTRequest({\n    source: source,\n    destination: destination,\n    name: options?.name,\n    sourceSiteId: options?.sourceSiteId,\n    destinationSiteId: options?.destinationSiteId,\n  });\n\n  const reqOpts = ambassadorWixHubV1Job.submitJob(payload);\n\n  sideEffects?.onSiteCall?.();\n  try {\n    const result = await httpClient.request(reqOpts);\n    sideEffects?.onSuccess?.(result);\n\n    return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n  } catch (err: any) {\n    const transformedError = sdkTransformError(\n      err,\n      {\n        spreadPathsToArguments: {},\n        explicitPathsToArguments: {\n          source: '$[0]',\n          destination: '$[1]',\n          name: '$[2].name',\n          sourceSiteId: '$[2].sourceSiteId',\n          destinationSiteId: '$[2].destinationSiteId',\n        },\n        singleArgumentUnchanged: false,\n      },\n      ['source', 'destination', 'options']\n    );\n    sideEffects?.onError?.(err);\n\n    throw transformedError;\n  }\n}\n\nexport interface SubmitJobOptions extends SubmitJobOptionsSiteOverrideOneOf {\n  /** Job name. */\n  name?: string;\n  /**\n   * When moving data from the Wix data collection of a site other than the current one, the source site ID.\n   *\n   * By default, the source site is the current site. However, you can move data from any site in the same [Wix Account](https://support.wix.com/en/article/managing-multiple-sites-under-one-account).\n   *\n   * > **Note**: You can specify the ID of another source site or destination site, but not both.\n   * @format GUID\n   */\n  sourceSiteId?: string;\n  /**\n   * When moving data to the Wix data collection of a site other than the current one, the destination site ID.\n   *\n   * By default, the destination site is the current site. However, you can move data to any site in the same [Wix Account](https://support.wix.com/en/article/managing-multiple-sites-under-one-account) by specifying its ID. You can retrieve this ID by calling [Get App Instance](https://dev.wix.com/docs/rest/app-management/app-instance/get-app-instance).\n   *\n   * > **Note**: You can specify the ID of another source site or destination site, but not both.\n   * @format GUID\n   */\n  destinationSiteId?: string;\n}\n\n/** @oneof */\nexport interface SubmitJobOptionsSiteOverrideOneOf {\n  /**\n   * When moving data from the Wix data collection of a site other than the current one, the source site ID.\n   *\n   * By default, the source site is the current site. However, you can move data from any site in the same [Wix Account](https://support.wix.com/en/article/managing-multiple-sites-under-one-account).\n   *\n   * > **Note**: You can specify the ID of another source site or destination site, but not both.\n   * @format GUID\n   */\n  sourceSiteId?: string;\n  /**\n   * When moving data to the Wix data collection of a site other than the current one, the destination site ID.\n   *\n   * By default, the destination site is the current site. However, you can move data to any site in the same [Wix Account](https://support.wix.com/en/article/managing-multiple-sites-under-one-account) by specifying its ID. You can retrieve this ID by calling [Get App Instance](https://dev.wix.com/docs/rest/app-management/app-instance/get-app-instance).\n   *\n   * > **Note**: You can specify the ID of another source site or destination site, but not both.\n   * @format GUID\n   */\n  destinationSiteId?: string;\n}\n\n/**\n * Creates an upload URL for a data source file.\n *\n * Before submitting a job to import data from a file to a collection, call this method to generate an upload URL. Use the `uploadUrl` in the response to upload your source file. For example:\n *\n * `curl --request PUT --upload-file \"${path_to_file}\" \"${uploadUrl}\"`\n *\n * > **Note**: The URL is valid for 15 minutes.\n * @public\n * @permissionId WIX_DATA.TMP_FILE_UPLOAD_CREATE\n * @applicableIdentity APP\n * @fqn wix.hub.v1.DataMovementService.CreateFileUploadUrl\n */\nexport async function createFileUploadUrl(\n  options?: CreateFileUploadUrlOptions\n): Promise<\n  NonNullablePaths<CreateFileUploadUrlResponse, `fileId` | `uploadUrl`, 2>\n> {\n  // @ts-ignore\n  const { httpClient, sideEffects } = arguments[1] as {\n    httpClient: HttpClient;\n    sideEffects?: any;\n  };\n\n  const payload = renameKeysFromSDKRequestToRESTRequest({\n    fileName: options?.fileName,\n  });\n\n  const reqOpts = ambassadorWixHubV1Job.createFileUploadUrl(payload);\n\n  sideEffects?.onSiteCall?.();\n  try {\n    const result = await httpClient.request(reqOpts);\n    sideEffects?.onSuccess?.(result);\n\n    return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n  } catch (err: any) {\n    const transformedError = sdkTransformError(\n      err,\n      {\n        spreadPathsToArguments: {},\n        explicitPathsToArguments: { fileName: '$[0].fileName' },\n        singleArgumentUnchanged: false,\n      },\n      ['options']\n    );\n    sideEffects?.onError?.(err);\n\n    throw transformedError;\n  }\n}\n\nexport interface CreateFileUploadUrlOptions {\n  /**\n   * Name of uploaded file.\n   * @maxLength 512\n   */\n  fileName?: string | null;\n}\n\n/**\n * Retrieves the specified data movement job.\n *\n * > **Note**: You can only retrieve jobs submitted for the current site.\n * @param jobId - Job ID.\n * @public\n * @requiredField jobId\n * @permissionId WIX_DATA.DATA_JOB_GET\n * @applicableIdentity APP\n * @returns Details of the retrieved job.\n * @fqn wix.hub.v1.DataMovementService.GetJob\n */\nexport async function getJob(\n  jobId: string\n): Promise<\n  NonNullablePaths<\n    DataMovementJob,\n    | `partiallySuccessfulOptions.cause`\n    | `_id`\n    | `status`\n    | `source.wixDataCollection.filterQuery.fields`\n    | `source.wixDataCollection.aggregationQuery.aggregationPipeline.stages`\n    | `source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.${number}.objectToArray.objectFieldName`\n    | `source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.${number}.objectToArray.destinationFieldName`\n    | `source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.${number}.unwindArray.arrayFieldName`\n    | `source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.${number}.skip`\n    | `source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.${number}.limit`\n    | `source.wixDataCollection.aggregationQuery.fields`\n    | `source.wixDataCollection.aggregationQuery.fields.${number}.key`\n    | `source.wixDataCollection.aggregationQuery.fields.${number}.displayName`\n    | `source.wixDataCollection.aggregationQuery.fields.${number}.fieldType`\n    | `source.wixDataCollection.collectionId`\n    | `source.wixDataCollection.fields`\n    | `source.localization.languages`\n    | `source.file.format`\n    | `source.file.fileId`\n    | `source.file.url`\n    | `destination.wixDataCollection.collectionId`\n    | `destination.wixDataCollection.writePolicy`\n    | `destination.localization.languages`\n    | `destination.file.format`\n    | `destination.file.url`\n    | `name`\n    | `progress.current`\n    | `progress.itemsRejected`\n    | `progress.itemsSuccessful`\n    | `error.code`\n    | `error.description`\n    | `sourceSiteId`\n    | `destinationSiteId`\n    | `logsRecorded`,\n    9\n  >\n> {\n  // @ts-ignore\n  const { httpClient, sideEffects } = arguments[1] as {\n    httpClient: HttpClient;\n    sideEffects?: any;\n  };\n\n  const payload = renameKeysFromSDKRequestToRESTRequest({ jobId: jobId });\n\n  const reqOpts = ambassadorWixHubV1Job.getJob(payload);\n\n  sideEffects?.onSiteCall?.();\n  try {\n    const result = await httpClient.request(reqOpts);\n    sideEffects?.onSuccess?.(result);\n\n    return renameKeysFromRESTResponseToSDKResponse(result.data)?.job!;\n  } catch (err: any) {\n    const transformedError = sdkTransformError(\n      err,\n      {\n        spreadPathsToArguments: {},\n        explicitPathsToArguments: { jobId: '$[0]' },\n        singleArgumentUnchanged: false,\n      },\n      ['jobId']\n    );\n    sideEffects?.onError?.(err);\n\n    throw transformedError;\n  }\n}\n\n/**\n * Lists data movement jobs for the current site.\n *\n * The `listJobs()` method builds a query to retrieve a list of jobs for the current site, and returns a [`JobsQueryBuilder`](https://dev.wix.com/docs/sdk/backend-modules/data/movement-jobs/jobs-query-builder/ascending) object. The returned object contains the query definition, which is typically used to run the query using the [`find()`](https://dev.wix.com/docs/sdk/backend-modules/data/movement-jobs/jobs-query-builder/find) method.\n *\n * You can refine the query by chaining `JobsQueryBuilder` methods onto the query. `JobsQueryBuilder` methods enable you to sort, filter, and control the results `listJobs()` returns.\n *\n * `listJobs()` runs with these `JobsQueryBuilder` defaults, which you can override:\n *\n * - [`skipTo`: `0`](https://dev.wix.com/docs/sdk/backend-modules/data/movement-jobs/jobs-query-builder/skip-to)\n * - [`limit`: `50`](https://dev.wix.com/docs/sdk/backend-modules/data/movement-jobs/jobs-query-builder/limit)\n * - [`ascending`: by `_id`](https://dev.wix.com/docs/sdk/backend-modules/data/movement-jobs/jobs-query-builder/ascending)\n *\n * The methods chained to `listJobs()` are applied in the order they're called. For example, if you apply `ascending('firstName')` and then `descending('age')`, the results are sorted first by firstName, and then, if there are multiple results with the same `firstName`, the items are sorted by `age`.\n * @public\n * @permissionId WIX_DATA.DATA_JOB_LIST\n * @applicableIdentity APP\n * @fqn wix.hub.v1.DataMovementService.ListJobs\n */\nexport async function listJobs(\n  options?: ListJobsOptions\n): Promise<\n  NonNullablePaths<\n    ListJobsResponse,\n    | `jobs`\n    | `jobs.${number}.partiallySuccessfulOptions.cause`\n    | `jobs.${number}._id`\n    | `jobs.${number}.status`\n    | `jobs.${number}.source.wixDataCollection.collectionId`\n    | `jobs.${number}.source.file.format`\n    | `jobs.${number}.source.file.fileId`\n    | `jobs.${number}.source.file.url`\n    | `jobs.${number}.destination.wixDataCollection.collectionId`\n    | `jobs.${number}.destination.wixDataCollection.writePolicy`\n    | `jobs.${number}.destination.file.format`\n    | `jobs.${number}.destination.file.url`\n    | `jobs.${number}.name`\n    | `jobs.${number}.progress.current`\n    | `jobs.${number}.progress.itemsRejected`\n    | `jobs.${number}.progress.itemsSuccessful`\n    | `jobs.${number}.error.code`\n    | `jobs.${number}.error.description`\n    | `jobs.${number}.sourceSiteId`\n    | `jobs.${number}.destinationSiteId`\n    | `jobs.${number}.logsRecorded`,\n    6\n  >\n> {\n  // @ts-ignore\n  const { httpClient, sideEffects } = arguments[1] as {\n    httpClient: HttpClient;\n    sideEffects?: any;\n  };\n\n  const payload = renameKeysFromSDKRequestToRESTRequest({\n    paging: options?.paging,\n  });\n\n  const reqOpts = ambassadorWixHubV1Job.listJobs(payload);\n\n  sideEffects?.onSiteCall?.();\n  try {\n    const result = await httpClient.request(reqOpts);\n    sideEffects?.onSuccess?.(result);\n\n    return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n  } catch (err: any) {\n    const transformedError = sdkTransformError(\n      err,\n      {\n        spreadPathsToArguments: {},\n        explicitPathsToArguments: { paging: '$[0].paging' },\n        singleArgumentUnchanged: false,\n      },\n      ['options']\n    );\n    sideEffects?.onError?.(err);\n\n    throw transformedError;\n  }\n}\n\nexport interface ListJobsOptions {\n  /** Paging metadata. */\n  paging?: CommonCursorPaging;\n}\n\n/**\n * Retrieves data movement jobs for the current site, on the basis of the filtering, sorting, and paging preferences you provide.\n *\n * Learn more about [API Query Language](https://dev.wix.com/api/rest/getting-started/api-query-language) and [sorting and paging](https://dev.wix.com/docs/rest/articles/get-started/sorting-and-paging) configuration.\n * @public\n * @permissionId WIX_DATA.DATA_JOB_LIST\n * @applicableIdentity APP\n * @fqn wix.hub.v1.DataMovementService.QueryJobs\n */\nexport function queryJobs(): JobsQueryBuilder {\n  // @ts-ignore\n  const { httpClient, sideEffects } = arguments[0] as {\n    httpClient: HttpClient;\n    sideEffects?: any;\n  };\n\n  return queryBuilder<\n    DataMovementJob,\n    'CURSOR',\n    QueryJobsRequest,\n    QueryJobsResponse\n  >({\n    func: async (payload: QueryJobsRequest) => {\n      const reqOpts = ambassadorWixHubV1Job.queryJobs(payload);\n\n      sideEffects?.onSiteCall?.();\n      try {\n        const result = await httpClient.request(reqOpts);\n        sideEffects?.onSuccess?.(result);\n        return result;\n      } catch (err) {\n        sideEffects?.onError?.(err);\n        throw err;\n      }\n    },\n    requestTransformer: (query: QueryJobsRequest['query']) => {\n      const args = [query, {}] as [QueryJobsRequest['query'], {}];\n      return renameKeysFromSDKRequestToRESTRequest({\n        ...args?.[1],\n        query: args?.[0],\n      });\n    },\n    responseTransformer: ({ data }: HttpResponse<QueryJobsResponse>) => {\n      const transformedData = renameKeysFromRESTResponseToSDKResponse(\n        transformPaths(data, [])\n      );\n\n      return {\n        items: transformedData?.jobs,\n        pagingMetadata: transformedData?.pagingMetadata,\n      };\n    },\n    errorTransformer: (err: unknown) => {\n      const transformedError = sdkTransformError(err, {\n        spreadPathsToArguments: {},\n        explicitPathsToArguments: { query: '$[0]' },\n        singleArgumentUnchanged: false,\n      });\n\n      throw transformedError;\n    },\n    pagingMethod: 'CURSOR',\n    transformationPaths: {},\n  });\n}\n\ninterface QueryCursorResult {\n  cursors: Cursors;\n  hasNext: () => boolean;\n  hasPrev: () => boolean;\n  length: number;\n  pageSize: number;\n}\n\nexport interface JobsQueryResult extends QueryCursorResult {\n  items: DataMovementJob[];\n  query: JobsQueryBuilder;\n  next: () => Promise<JobsQueryResult>;\n  prev: () => Promise<JobsQueryResult>;\n}\n\nexport interface JobsQueryBuilder {\n  /** @param propertyName - Property whose value is compared with `value`.\n   * @param value - Value to compare against.\n   */\n  eq: (\n    propertyName:\n      | '_id'\n      | 'startedAt'\n      | 'status'\n      | 'name'\n      | 'finishedAt'\n      | 'scheduleId'\n      | 'workflowId',\n    value: any\n  ) => JobsQueryBuilder;\n  /** @param propertyName - Property whose value is compared with `value`.\n   * @param value - Value to compare against.\n   */\n  ne: (\n    propertyName:\n      | '_id'\n      | 'startedAt'\n      | 'status'\n      | 'name'\n      | 'finishedAt'\n      | 'scheduleId'\n      | 'workflowId',\n    value: any\n  ) => JobsQueryBuilder;\n  /** @param propertyName - Property whose value is compared with `value`.\n   * @param value - Value to compare against.\n   */\n  ge: (\n    propertyName:\n      | '_id'\n      | 'startedAt'\n      | 'name'\n      | 'finishedAt'\n      | 'scheduleId'\n      | 'workflowId',\n    value: any\n  ) => JobsQueryBuilder;\n  /** @param propertyName - Property whose value is compared with `value`.\n   * @param value - Value to compare against.\n   */\n  gt: (\n    propertyName:\n      | '_id'\n      | 'startedAt'\n      | 'name'\n      | 'finishedAt'\n      | 'scheduleId'\n      | 'workflowId',\n    value: any\n  ) => JobsQueryBuilder;\n  /** @param propertyName - Property whose value is compared with `value`.\n   * @param value - Value to compare against.\n   */\n  le: (\n    propertyName:\n      | '_id'\n      | 'startedAt'\n      | 'name'\n      | 'finishedAt'\n      | 'scheduleId'\n      | 'workflowId',\n    value: any\n  ) => JobsQueryBuilder;\n  /** @param propertyName - Property whose value is compared with `value`.\n   * @param value - Value to compare against.\n   */\n  lt: (\n    propertyName:\n      | '_id'\n      | 'startedAt'\n      | 'name'\n      | 'finishedAt'\n      | 'scheduleId'\n      | 'workflowId',\n    value: any\n  ) => JobsQueryBuilder;\n  /** @param propertyName - Property whose value is compared with `string`.\n   * @param string - String to compare against. Case-insensitive.\n   */\n  startsWith: (\n    propertyName: '_id' | 'name' | 'scheduleId' | 'workflowId',\n    value: string\n  ) => JobsQueryBuilder;\n  /** @param propertyName - Property whose value is compared with `values`.\n   * @param values - List of values to compare against.\n   */\n  hasSome: (\n    propertyName:\n      | '_id'\n      | 'startedAt'\n      | 'status'\n      | 'name'\n      | 'finishedAt'\n      | 'scheduleId'\n      | 'workflowId',\n    value: any[]\n  ) => JobsQueryBuilder;\n  in: (\n    propertyName:\n      | '_id'\n      | 'startedAt'\n      | 'status'\n      | 'name'\n      | 'finishedAt'\n      | 'scheduleId'\n      | 'workflowId',\n    value: any\n  ) => JobsQueryBuilder;\n  exists: (\n    propertyName:\n      | '_id'\n      | 'startedAt'\n      | 'status'\n      | 'name'\n      | 'finishedAt'\n      | 'scheduleId'\n      | 'workflowId',\n    value: boolean\n  ) => JobsQueryBuilder;\n  /** @param propertyNames - Properties used in the sort. To sort by multiple properties, pass properties as additional arguments. */\n  ascending: (\n    ...propertyNames: Array<\n      | '_id'\n      | 'startedAt'\n      | 'status'\n      | 'name'\n      | 'finishedAt'\n      | 'scheduleId'\n      | 'workflowId'\n    >\n  ) => JobsQueryBuilder;\n  /** @param propertyNames - Properties used in the sort. To sort by multiple properties, pass properties as additional arguments. */\n  descending: (\n    ...propertyNames: Array<\n      | '_id'\n      | 'startedAt'\n      | 'status'\n      | 'name'\n      | 'finishedAt'\n      | 'scheduleId'\n      | 'workflowId'\n    >\n  ) => JobsQueryBuilder;\n  /** @param limit - Number of items to return, which is also the `pageSize` of the results object. */\n  limit: (limit: number) => JobsQueryBuilder;\n  /** @param cursor - A pointer to specific record */\n  skipTo: (cursor: string) => JobsQueryBuilder;\n  find: () => Promise<JobsQueryResult>;\n}\n\n/**\n * @hidden\n * @fqn wix.hub.v1.DataMovementService.QueryJobs\n * @requiredField query\n */\nexport async function typedQueryJobs(\n  query: DataMovementJobQuery\n): Promise<\n  NonNullablePaths<\n    QueryJobsResponse,\n    | `jobs`\n    | `jobs.${number}.partiallySuccessfulOptions.cause`\n    | `jobs.${number}._id`\n    | `jobs.${number}.status`\n    | `jobs.${number}.source.wixDataCollection.collectionId`\n    | `jobs.${number}.source.file.format`\n    | `jobs.${number}.source.file.fileId`\n    | `jobs.${number}.source.file.url`\n    | `jobs.${number}.destination.wixDataCollection.collectionId`\n    | `jobs.${number}.destination.wixDataCollection.writePolicy`\n    | `jobs.${number}.destination.file.format`\n    | `jobs.${number}.destination.file.url`\n    | `jobs.${number}.name`\n    | `jobs.${number}.progress.current`\n    | `jobs.${number}.progress.itemsRejected`\n    | `jobs.${number}.progress.itemsSuccessful`\n    | `jobs.${number}.error.code`\n    | `jobs.${number}.error.description`\n    | `jobs.${number}.sourceSiteId`\n    | `jobs.${number}.destinationSiteId`\n    | `jobs.${number}.logsRecorded`,\n    6\n  >\n> {\n  // @ts-ignore\n  const { httpClient, sideEffects } = arguments[1] as {\n    httpClient: HttpClient;\n    sideEffects?: any;\n  };\n\n  const payload = renameKeysFromSDKRequestToRESTRequest({ query: query });\n\n  const reqOpts = ambassadorWixHubV1Job.queryJobs(payload);\n\n  sideEffects?.onSiteCall?.();\n  try {\n    const result = await httpClient.request(reqOpts);\n    sideEffects?.onSuccess?.(result);\n\n    return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n  } catch (err: any) {\n    const transformedError = sdkTransformError(\n      err,\n      {\n        spreadPathsToArguments: {},\n        explicitPathsToArguments: { query: '$[0]' },\n        singleArgumentUnchanged: false,\n      },\n      ['query']\n    );\n    sideEffects?.onError?.(err);\n\n    throw transformedError;\n  }\n}\n\nexport interface DataMovementJobQuerySpec extends QuerySpec {\n  paging: 'cursor';\n  wql: [\n    {\n      fields: [\n        '_id',\n        'finishedAt',\n        'name',\n        'scheduleId',\n        'startedAt',\n        'status',\n        'workflowId'\n      ];\n      operators: '*';\n      sort: 'BOTH';\n    }\n  ];\n}\n\nexport type CommonQueryWithEntityContext = QuerySdkType<\n  DataMovementJob,\n  DataMovementJobQuerySpec\n>;\nexport type DataMovementJobQuery = {\n  /** \n  Cursor paging options.\n\n  Learn more about [cursor paging](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#cursor-paging).  \n  */\n  cursorPaging?: {\n    /** \n  Maximum number of items to return in the results. \n  @max: 100 \n  */\n    limit?:\n      | NonNullable<CommonQueryWithEntityContext['cursorPaging']>['limit']\n      | null;\n    /** \n  Pointer to the next or previous page in the list of results.\n\n  Pass the relevant cursor token from the `pagingMetadata` object in the previous call's response.\n  Not relevant for the first request. \n  @maxLength: 16000 \n  */\n    cursor?:\n      | NonNullable<CommonQueryWithEntityContext['cursorPaging']>['cursor']\n      | null;\n  };\n  /** \n  Filter object.\n\n  Learn more about [filtering](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#filters).  \n  */\n  filter?: CommonQueryWithEntityContext['filter'] | null;\n  /** \n  Sort object.\n\n  Learn more about [sorting](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#sorting). \n  @maxSize: 5 \n  */\n  sort?: {\n    /** \n  Name of the field to sort by. \n  @maxLength: 512 \n  */\n    fieldName?: NonNullable<\n      CommonQueryWithEntityContext['sort']\n    >[number]['fieldName'];\n    /** \n  Sort order.  \n  */\n    order?: NonNullable<CommonQueryWithEntityContext['sort']>[number]['order'];\n  }[];\n};\n\nexport const utils = {\n  query: {\n    ...createQueryUtils<\n      DataMovementJob,\n      DataMovementJobQuerySpec,\n      DataMovementJobQuery\n    >(),\n  },\n};\n\n/**\n * Terminates the specified job.\n * @param jobId - ID of the job to terminate.\n * @public\n * @requiredField jobId\n * @permissionId WIX_DATA.DATA_JOB_TERMINATE\n * @applicableIdentity APP\n * @fqn wix.hub.v1.DataMovementService.TerminateJob\n */\nexport async function terminateJob(\n  jobId: string\n): Promise<\n  NonNullablePaths<\n    TerminateJobResponse,\n    | `job.partiallySuccessfulOptions.cause`\n    | `job._id`\n    | `job.status`\n    | `job.source.wixDataCollection.filterQuery.fields`\n    | `job.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages`\n    | `job.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.${number}.objectToArray.objectFieldName`\n    | `job.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.${number}.objectToArray.destinationFieldName`\n    | `job.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.${number}.unwindArray.arrayFieldName`\n    | `job.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.${number}.skip`\n    | `job.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.${number}.limit`\n    | `job.source.wixDataCollection.aggregationQuery.fields`\n    | `job.source.wixDataCollection.aggregationQuery.fields.${number}.key`\n    | `job.source.wixDataCollection.aggregationQuery.fields.${number}.displayName`\n    | `job.source.wixDataCollection.aggregationQuery.fields.${number}.fieldType`\n    | `job.source.wixDataCollection.collectionId`\n    | `job.source.wixDataCollection.fields`\n    | `job.source.localization.languages`\n    | `job.source.file.format`\n    | `job.source.file.fileId`\n    | `job.source.file.url`\n    | `job.destination.wixDataCollection.collectionId`\n    | `job.destination.wixDataCollection.writePolicy`\n    | `job.destination.localization.languages`\n    | `job.destination.file.format`\n    | `job.destination.file.url`\n    | `job.name`\n    | `job.progress.current`\n    | `job.progress.itemsRejected`\n    | `job.progress.itemsSuccessful`\n    | `job.error.code`\n    | `job.error.description`\n    | `job.sourceSiteId`\n    | `job.destinationSiteId`\n    | `job.logsRecorded`,\n    10\n  >\n> {\n  // @ts-ignore\n  const { httpClient, sideEffects } = arguments[1] as {\n    httpClient: HttpClient;\n    sideEffects?: any;\n  };\n\n  const payload = renameKeysFromSDKRequestToRESTRequest({ jobId: jobId });\n\n  const reqOpts = ambassadorWixHubV1Job.terminateJob(payload);\n\n  sideEffects?.onSiteCall?.();\n  try {\n    const result = await httpClient.request(reqOpts);\n    sideEffects?.onSuccess?.(result);\n\n    return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n  } catch (err: any) {\n    const transformedError = sdkTransformError(\n      err,\n      {\n        spreadPathsToArguments: {},\n        explicitPathsToArguments: { jobId: '$[0]' },\n        singleArgumentUnchanged: false,\n      },\n      ['jobId']\n    );\n    sideEffects?.onError?.(err);\n\n    throw transformedError;\n  }\n}\n\n/**\n * Lists logs for the specified job.\n *\n * Logs are generated by the destination for each item that failed to move. Some destinations also generate logs for items that moved successfully.\n * @param jobId - ID of the job for which to list logs.\n * @public\n * @requiredField jobId\n * @permissionId WIX_DATA.DATA_JOB_LIST_LOGS\n * @applicableIdentity APP\n * @fqn wix.hub.v1.DataMovementService.ListMovementLogs\n */\nexport async function listMovementLogs(\n  jobId: string,\n  options?: ListMovementLogsOptions\n): Promise<\n  NonNullablePaths<\n    ListMovementLogsResponse,\n    | `logs`\n    | `logs.${number}.sourceItemId`\n    | `logs.${number}.failure.code`\n    | `logs.${number}.failure.description`,\n    5\n  >\n> {\n  // @ts-ignore\n  const { httpClient, sideEffects } = arguments[2] as {\n    httpClient: HttpClient;\n    sideEffects?: any;\n  };\n\n  const payload = renameKeysFromSDKRequestToRESTRequest({\n    jobId: jobId,\n    paging: options?.paging,\n  });\n\n  const reqOpts = ambassadorWixHubV1Job.listMovementLogs(payload);\n\n  sideEffects?.onSiteCall?.();\n  try {\n    const result = await httpClient.request(reqOpts);\n    sideEffects?.onSuccess?.(result);\n\n    return renameKeysFromRESTResponseToSDKResponse(result.data)!;\n  } catch (err: any) {\n    const transformedError = sdkTransformError(\n      err,\n      {\n        spreadPathsToArguments: {},\n        explicitPathsToArguments: { jobId: '$[0]', paging: '$[1].paging' },\n        singleArgumentUnchanged: false,\n      },\n      ['jobId', 'options']\n    );\n    sideEffects?.onError?.(err);\n\n    throw transformedError;\n  }\n}\n\nexport interface ListMovementLogsOptions {\n  /** Paging metadata. */\n  paging?: CommonCursorPaging;\n}\n","import { toURLSearchParams } from '@wix/sdk-runtime/rest-modules';\nimport { transformSDKFloatToRESTFloat } from '@wix/sdk-runtime/transformations/float';\nimport { transformRESTFloatToSDKFloat } from '@wix/sdk-runtime/transformations/float';\nimport { transformRESTTimestampToSDKTimestamp } from '@wix/sdk-runtime/transformations/timestamp';\nimport { transformPaths } from '@wix/sdk-runtime/transformations/transform-paths';\nimport { resolveUrl } from '@wix/sdk-runtime/rest-modules';\nimport { ResolveUrlOpts } from '@wix/sdk-runtime/rest-modules';\nimport { RequestOptionsFactory } from '@wix/sdk-types';\n\nfunction resolveWixHubV1DataMovementServiceUrl(\n  opts: Omit<ResolveUrlOpts, 'domainToMappings'>\n) {\n  const domainToMappings = {\n    'manage._base_domain_': [\n      {\n        srcPath: '/_api/wix-data-hub-fs2',\n        destPath: '',\n      },\n    ],\n    'editor._base_domain_': [\n      {\n        srcPath: '/_api/wix-data-hub-fs2',\n        destPath: '',\n      },\n    ],\n    'blocks._base_domain_': [\n      {\n        srcPath: '/_api/wix-data-hub-fs2',\n        destPath: '',\n      },\n    ],\n    'create.editorx': [\n      {\n        srcPath: '/_api/wix-data-hub-fs2',\n        destPath: '',\n      },\n    ],\n    'www.wixapis.com': [\n      {\n        srcPath: '/data-mover',\n        destPath: '',\n      },\n    ],\n    '*.dev.wix-code.com': [\n      {\n        srcPath: '/_api/wix-data-hub-fs2',\n        destPath: '',\n      },\n    ],\n    _: [\n      {\n        srcPath: '/_api/wix-data-hub-fs2',\n        destPath: '',\n      },\n    ],\n  };\n\n  return resolveUrl(Object.assign(opts, { domainToMappings }));\n}\n\nconst PACKAGE_NAME = '@wix/auto_sdk_data_movement-jobs';\n\n/**\n * Submit a data movement job.\n *\n * > **Note**: By default, the job is submitted for the current site.\n */\nexport function submitJob(payload: object): RequestOptionsFactory<any> {\n  function __submitJob({ host }: any) {\n    const serializedData = transformPaths(payload, [\n      {\n        transformFn: transformSDKFloatToRESTFloat,\n        paths: [\n          {\n            path: 'source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.groupIds.expression.numeric',\n          },\n          {\n            path: 'source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.accumulators.avg.expression.numeric',\n          },\n          {\n            path: 'source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.accumulators.min.expression.numeric',\n          },\n          {\n            path: 'source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.accumulators.max.expression.numeric',\n          },\n          {\n            path: 'source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.accumulators.sum.expression.numeric',\n          },\n          {\n            path: 'source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.accumulators.first.expression.numeric',\n          },\n          {\n            path: 'source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.accumulators.last.expression.numeric',\n          },\n          {\n            path: 'source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.accumulators.push.expression.numeric',\n          },\n          {\n            path: 'source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.projection.fields.reshape.expression.numeric',\n          },\n          {\n            path: 'source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.addFields.fields.expression.numeric',\n          },\n        ],\n      },\n    ]);\n    const metadata = {\n      entityFqdn: 'wix.hub.v1.job',\n      method: 'POST' as any,\n      methodFqn: 'wix.hub.v1.DataMovementService.SubmitJob',\n      packageName: PACKAGE_NAME,\n      migrationOptions: {\n        optInTransformResponse: true,\n      },\n      url: resolveWixHubV1DataMovementServiceUrl({\n        protoPath: '/v1/jobs',\n        data: serializedData,\n        host,\n      }),\n      data: serializedData,\n      transformResponse: (payload: any) =>\n        transformPaths(payload, [\n          {\n            transformFn: transformRESTTimestampToSDKTimestamp,\n            paths: [{ path: 'job.startedAt' }, { path: 'job.finishedAt' }],\n          },\n          {\n            transformFn: transformRESTFloatToSDKFloat,\n            paths: [\n              {\n                path: 'job.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.groupIds.expression.numeric',\n              },\n              {\n                path: 'job.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.accumulators.avg.expression.numeric',\n              },\n              {\n                path: 'job.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.accumulators.min.expression.numeric',\n              },\n              {\n                path: 'job.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.accumulators.max.expression.numeric',\n              },\n              {\n                path: 'job.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.accumulators.sum.expression.numeric',\n              },\n              {\n                path: 'job.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.accumulators.first.expression.numeric',\n              },\n              {\n                path: 'job.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.accumulators.last.expression.numeric',\n              },\n              {\n                path: 'job.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.accumulators.push.expression.numeric',\n              },\n              {\n                path: 'job.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.projection.fields.reshape.expression.numeric',\n              },\n              {\n                path: 'job.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.addFields.fields.expression.numeric',\n              },\n            ],\n          },\n        ]),\n    };\n\n    return metadata;\n  }\n\n  return __submitJob;\n}\n\n/**\n * Creates an upload URL for a data source file.\n *\n * Before submitting a job to import data from a file to a collection, call this method to generate an upload URL. Use the `uploadUrl` in the response to upload your source file. For example:\n *\n * `curl --request PUT --upload-file \"${path_to_file}\" \"${uploadUrl}\"`\n *\n * > **Note**: The URL is valid for 15 minutes.\n */\nexport function createFileUploadUrl(\n  payload: object\n): RequestOptionsFactory<any> {\n  function __createFileUploadUrl({ host }: any) {\n    const metadata = {\n      entityFqdn: 'wix.hub.v1.job',\n      method: 'POST' as any,\n      methodFqn: 'wix.hub.v1.DataMovementService.CreateFileUploadUrl',\n      packageName: PACKAGE_NAME,\n      migrationOptions: {\n        optInTransformResponse: true,\n      },\n      url: resolveWixHubV1DataMovementServiceUrl({\n        protoPath: '/v1/temporary-files/upload-url',\n        data: payload,\n        host,\n      }),\n      data: payload,\n    };\n\n    return metadata;\n  }\n\n  return __createFileUploadUrl;\n}\n\n/**\n * Retrieves the specified data movement job.\n *\n * > **Note**: You can only retrieve jobs submitted for the current site.\n */\nexport function getJob(payload: object): RequestOptionsFactory<any> {\n  function __getJob({ host }: any) {\n    const metadata = {\n      entityFqdn: 'wix.hub.v1.job',\n      method: 'GET' as any,\n      methodFqn: 'wix.hub.v1.DataMovementService.GetJob',\n      packageName: PACKAGE_NAME,\n      migrationOptions: {\n        optInTransformResponse: true,\n      },\n      url: resolveWixHubV1DataMovementServiceUrl({\n        protoPath: '/v1/jobs/{jobId}',\n        data: payload,\n        host,\n      }),\n      params: toURLSearchParams(payload),\n      transformResponse: (payload: any) =>\n        transformPaths(payload, [\n          {\n            transformFn: transformRESTTimestampToSDKTimestamp,\n            paths: [{ path: 'job.startedAt' }, { path: 'job.finishedAt' }],\n          },\n          {\n            transformFn: transformRESTFloatToSDKFloat,\n            paths: [\n              {\n                path: 'job.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.groupIds.expression.numeric',\n              },\n              {\n                path: 'job.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.accumulators.avg.expression.numeric',\n              },\n              {\n                path: 'job.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.accumulators.min.expression.numeric',\n              },\n              {\n                path: 'job.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.accumulators.max.expression.numeric',\n              },\n              {\n                path: 'job.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.accumulators.sum.expression.numeric',\n              },\n              {\n                path: 'job.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.accumulators.first.expression.numeric',\n              },\n              {\n                path: 'job.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.accumulators.last.expression.numeric',\n              },\n              {\n                path: 'job.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.accumulators.push.expression.numeric',\n              },\n              {\n                path: 'job.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.projection.fields.reshape.expression.numeric',\n              },\n              {\n                path: 'job.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.addFields.fields.expression.numeric',\n              },\n            ],\n          },\n        ]),\n    };\n\n    return metadata;\n  }\n\n  return __getJob;\n}\n\n/**\n * Lists data movement jobs for the current site.\n *\n * The `listJobs()` method builds a query to retrieve a list of jobs for the current site, and returns a [`JobsQueryBuilder`](https://dev.wix.com/docs/sdk/backend-modules/data/movement-jobs/jobs-query-builder/ascending) object. The returned object contains the query definition, which is typically used to run the query using the [`find()`](https://dev.wix.com/docs/sdk/backend-modules/data/movement-jobs/jobs-query-builder/find) method.\n *\n * You can refine the query by chaining `JobsQueryBuilder` methods onto the query. `JobsQueryBuilder` methods enable you to sort, filter, and control the results `listJobs()` returns.\n *\n * `listJobs()` runs with these `JobsQueryBuilder` defaults, which you can override:\n *\n * - [`skipTo`: `0`](https://dev.wix.com/docs/sdk/backend-modules/data/movement-jobs/jobs-query-builder/skip-to)\n * - [`limit`: `50`](https://dev.wix.com/docs/sdk/backend-modules/data/movement-jobs/jobs-query-builder/limit)\n * - [`ascending`: by `_id`](https://dev.wix.com/docs/sdk/backend-modules/data/movement-jobs/jobs-query-builder/ascending)\n *\n * The methods chained to `listJobs()` are applied in the order they're called. For example, if you apply `ascending('firstName')` and then `descending('age')`, the results are sorted first by firstName, and then, if there are multiple results with the same `firstName`, the items are sorted by `age`.\n */\nexport function listJobs(payload: object): RequestOptionsFactory<any> {\n  function __listJobs({ host }: any) {\n    const metadata = {\n      entityFqdn: 'wix.hub.v1.job',\n      method: 'GET' as any,\n      methodFqn: 'wix.hub.v1.DataMovementService.ListJobs',\n      packageName: PACKAGE_NAME,\n      migrationOptions: {\n        optInTransformResponse: true,\n      },\n      url: resolveWixHubV1DataMovementServiceUrl({\n        protoPath: '/v1/jobs',\n        data: payload,\n        host,\n      }),\n      params: toURLSearchParams(payload, true),\n      transformResponse: (payload: any) =>\n        transformPaths(payload, [\n          {\n            transformFn: transformRESTTimestampToSDKTimestamp,\n            paths: [{ path: 'jobs.startedAt' }, { path: 'jobs.finishedAt' }],\n          },\n          {\n            transformFn: transformRESTFloatToSDKFloat,\n            paths: [\n              {\n                path: 'jobs.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.groupIds.expression.numeric',\n              },\n              {\n                path: 'jobs.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.accumulators.avg.expression.numeric',\n              },\n              {\n                path: 'jobs.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.accumulators.min.expression.numeric',\n              },\n              {\n                path: 'jobs.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.accumulators.max.expression.numeric',\n              },\n              {\n                path: 'jobs.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.accumulators.sum.expression.numeric',\n              },\n              {\n                path: 'jobs.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.accumulators.first.expression.numeric',\n              },\n              {\n                path: 'jobs.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.accumulators.last.expression.numeric',\n              },\n              {\n                path: 'jobs.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.accumulators.push.expression.numeric',\n              },\n              {\n                path: 'jobs.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.projection.fields.reshape.expression.numeric',\n              },\n              {\n                path: 'jobs.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.addFields.fields.expression.numeric',\n              },\n            ],\n          },\n        ]),\n      fallback: [\n        {\n          method: 'POST' as any,\n          url: resolveWixHubV1DataMovementServiceUrl({\n            protoPath: '/v1/jobs/list',\n            data: payload,\n            host,\n          }),\n          data: payload,\n        },\n      ],\n    };\n\n    return metadata;\n  }\n\n  return __listJobs;\n}\n\n/**\n * Retrieves data movement jobs for the current site, on the basis of the filtering, sorting, and paging preferences you provide.\n *\n * Learn more about [API Query Language](https://dev.wix.com/api/rest/getting-started/api-query-language) and [sorting and paging](https://dev.wix.com/docs/rest/articles/get-started/sorting-and-paging) configuration.\n */\nexport function queryJobs(payload: object): RequestOptionsFactory<any> {\n  function __queryJobs({ host }: any) {\n    const metadata = {\n      entityFqdn: 'wix.hub.v1.job',\n      method: 'GET' as any,\n      methodFqn: 'wix.hub.v1.DataMovementService.QueryJobs',\n      packageName: PACKAGE_NAME,\n      migrationOptions: {\n        optInTransformResponse: true,\n      },\n      url: resolveWixHubV1DataMovementServiceUrl({\n        protoPath: '/v1/jobs/query',\n        data: payload,\n        host,\n      }),\n      params: toURLSearchParams(payload, true),\n      transformResponse: (payload: any) =>\n        transformPaths(payload, [\n          {\n            transformFn: transformRESTTimestampToSDKTimestamp,\n            paths: [{ path: 'jobs.startedAt' }, { path: 'jobs.finishedAt' }],\n          },\n          {\n            transformFn: transformRESTFloatToSDKFloat,\n            paths: [\n              {\n                path: 'jobs.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.groupIds.expression.numeric',\n              },\n              {\n                path: 'jobs.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.accumulators.avg.expression.numeric',\n              },\n              {\n                path: 'jobs.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.accumulators.min.expression.numeric',\n              },\n              {\n                path: 'jobs.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.accumulators.max.expression.numeric',\n              },\n              {\n                path: 'jobs.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.accumulators.sum.expression.numeric',\n              },\n              {\n                path: 'jobs.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.accumulators.first.expression.numeric',\n              },\n              {\n                path: 'jobs.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.accumulators.last.expression.numeric',\n              },\n              {\n                path: 'jobs.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.accumulators.push.expression.numeric',\n              },\n              {\n                path: 'jobs.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.projection.fields.reshape.expression.numeric',\n              },\n              {\n                path: 'jobs.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.addFields.fields.expression.numeric',\n              },\n            ],\n          },\n        ]),\n      fallback: [\n        {\n          method: 'POST' as any,\n          url: resolveWixHubV1DataMovementServiceUrl({\n            protoPath: '/v1/jobs/query',\n            data: payload,\n            host,\n          }),\n          data: payload,\n        },\n      ],\n    };\n\n    return metadata;\n  }\n\n  return __queryJobs;\n}\n\n/** Terminates the specified job. */\nexport function terminateJob(payload: object): RequestOptionsFactory<any> {\n  function __terminateJob({ host }: any) {\n    const metadata = {\n      entityFqdn: 'wix.hub.v1.job',\n      method: 'POST' as any,\n      methodFqn: 'wix.hub.v1.DataMovementService.TerminateJob',\n      packageName: PACKAGE_NAME,\n      migrationOptions: {\n        optInTransformResponse: true,\n      },\n      url: resolveWixHubV1DataMovementServiceUrl({\n        protoPath: '/v1/jobs/{jobId}/terminate',\n        data: payload,\n        host,\n      }),\n      data: payload,\n      transformResponse: (payload: any) =>\n        transformPaths(payload, [\n          {\n            transformFn: transformRESTTimestampToSDKTimestamp,\n            paths: [{ path: 'job.startedAt' }, { path: 'job.finishedAt' }],\n          },\n          {\n            transformFn: transformRESTFloatToSDKFloat,\n            paths: [\n              {\n                path: 'job.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.groupIds.expression.numeric',\n              },\n              {\n                path: 'job.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.accumulators.avg.expression.numeric',\n              },\n              {\n                path: 'job.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.accumulators.min.expression.numeric',\n              },\n              {\n                path: 'job.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.accumulators.max.expression.numeric',\n              },\n              {\n                path: 'job.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.accumulators.sum.expression.numeric',\n              },\n              {\n                path: 'job.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.accumulators.first.expression.numeric',\n              },\n              {\n                path: 'job.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.accumulators.last.expression.numeric',\n              },\n              {\n                path: 'job.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.group.accumulators.push.expression.numeric',\n              },\n              {\n                path: 'job.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.projection.fields.reshape.expression.numeric',\n              },\n              {\n                path: 'job.source.wixDataCollection.aggregationQuery.aggregationPipeline.stages.addFields.fields.expression.numeric',\n              },\n            ],\n          },\n        ]),\n    };\n\n    return metadata;\n  }\n\n  return __terminateJob;\n}\n\n/**\n * Lists logs for the specified job.\n *\n * Logs are generated by the destination for each item that failed to move. Some destinations also generate logs for items that moved successfully.\n */\nexport function listMovementLogs(payload: object): RequestOptionsFactory<any> {\n  function __listMovementLogs({ host }: any) {\n    const metadata = {\n      entityFqdn: 'wix.hub.v1.job',\n      method: 'GET' as any,\n      methodFqn: 'wix.hub.v1.DataMovementService.ListMovementLogs',\n      packageName: PACKAGE_NAME,\n      migrationOptions: {\n        optInTransformResponse: true,\n      },\n      url: resolveWixHubV1DataMovementServiceUrl({\n        protoPath: '/v1/jobs/{jobId}/logs',\n        data: payload,\n        host,\n      }),\n      params: toURLSearchParams(payload),\n    };\n\n    return metadata;\n  }\n\n  return __listMovementLogs;\n}\n","import {\n  submitJob as publicSubmitJob,\n  createFileUploadUrl as publicCreateFileUploadUrl,\n  getJob as publicGetJob,\n  listJobs as publicListJobs,\n  queryJobs as publicQueryJobs,\n  typedQueryJobs as publicTypedQueryJobs,\n  terminateJob as publicTerminateJob,\n  listMovementLogs as publicListMovementLogs,\n} from './hub-v1-job-movement-jobs.public.js';\nimport { createRESTModule } from '@wix/sdk-runtime/rest-modules';\nimport { createEventModule } from '@wix/sdk-runtime/event-definition-modules';\nimport {\n  BuildRESTFunction,\n  MaybeContext,\n  BuildEventDefinition,\n} from '@wix/sdk-types';\nimport { HttpClient } from '@wix/sdk-types';\nimport { createQueryOverloadRouter } from '@wix/sdk-runtime/query-method-router';\nimport {\n  DataMovementJobQuery,\n  JobsQueryBuilder,\n  typedQueryJobs as universalTypedQueryJobs,\n} from './hub-v1-job-movement-jobs.universal.js';\nimport { onJobCreated as publicOnJobCreated } from './hub-v1-job-movement-jobs.public.js';\nimport { onJobDeleted as publicOnJobDeleted } from './hub-v1-job-movement-jobs.public.js';\nimport { onJobUpdated as publicOnJobUpdated } from './hub-v1-job-movement-jobs.public.js';\n\nfunction customQueryJobs(httpClient: HttpClient) {\n  const router = createQueryOverloadRouter({\n    builderQueryFunction: () => publicQueryJobs(httpClient)(),\n    typedQueryFunction: (query: DataMovementJobQuery) =>\n      publicTypedQueryJobs(httpClient)(query),\n    hasOptionsParameter: false,\n  });\n\n  function overloadedQuery(): JobsQueryBuilder;\n  function overloadedQuery(\n    query: DataMovementJobQuery\n  ): ReturnType<typeof universalTypedQueryJobs>;\n  function overloadedQuery(query?: DataMovementJobQuery): any {\n    return router(...arguments);\n  }\n\n  return overloadedQuery;\n}\n\nexport const submitJob: MaybeContext<\n  BuildRESTFunction<typeof publicSubmitJob> & typeof publicSubmitJob\n> = /*#__PURE__*/ createRESTModule(publicSubmitJob);\nexport const createFileUploadUrl: MaybeContext<\n  BuildRESTFunction<typeof publicCreateFileUploadUrl> &\n    typeof publicCreateFileUploadUrl\n> = /*#__PURE__*/ createRESTModule(publicCreateFileUploadUrl);\nexport const getJob: MaybeContext<\n  BuildRESTFunction<typeof publicGetJob> & typeof publicGetJob\n> = /*#__PURE__*/ createRESTModule(publicGetJob);\nexport const listJobs: MaybeContext<\n  BuildRESTFunction<typeof publicListJobs> & typeof publicListJobs\n> = /*#__PURE__*/ createRESTModule(publicListJobs);\nexport const terminateJob: MaybeContext<\n  BuildRESTFunction<typeof publicTerminateJob> & typeof publicTerminateJob\n> = /*#__PURE__*/ createRESTModule(publicTerminateJob);\nexport const listMovementLogs: MaybeContext<\n  BuildRESTFunction<typeof publicListMovementLogs> &\n    typeof publicListMovementLogs\n> = /*#__PURE__*/ createRESTModule(publicListMovementLogs);\nexport const queryJobs: MaybeContext<\n  BuildRESTFunction<typeof customQueryJobs> & typeof customQueryJobs\n> = /*#__PURE__*/ createRESTModule(customQueryJobs);\n/**\n * Triggered when a job is submitted.\n */\nexport const onJobCreated: BuildEventDefinition<typeof publicOnJobCreated> &\n  typeof publicOnJobCreated = createEventModule(publicOnJobCreated);\n/**\n * Triggered when a job is terminated.\n */\nexport const onJobDeleted: BuildEventDefinition<typeof publicOnJobDeleted> &\n  typeof publicOnJobDeleted = createEventModule(publicOnJobDeleted);\n/**\n * Triggered when a job's `status` updates.\n */\nexport const onJobUpdated: BuildEventDefinition<typeof publicOnJobUpdated> &\n  typeof publicOnJobUpdated = createEventModule(publicOnJobUpdated);\n\nexport {\n  JobStatus,\n  SortOrder,\n  FieldType,\n  WixDataEnvironment,\n  FileFormat,\n  MediaType,\n  WixDataDestinationWritePolicy,\n  WixMediaDestinationWritePolicy,\n  WritePolicy,\n  Units,\n  CommonSortOrder,\n  WebhookIdentityType,\n} from './hub-v1-job-movement-jobs.universal.js';\nexport {\n  DataMovementJob,\n  DataMovementJobStatusOptionsOneOf,\n  Source,\n  SourceSourceOneOf,\n  AggregationPipeline,\n  AggregationPipelinePagingMethodOneOf,\n  Stage,\n  StageStageOneOf,\n  Group,\n  Expression,\n  ExpressionValueOneOf,\n  AddOperation,\n  SumOperation,\n  SubtractOperation,\n  MultiplyOperation,\n  DivideOperation,\n  AbsOperation,\n  ModOperation,\n  FloorOperation,\n  CeilOperation,\n  ConcatOperation,\n  StringifyOperation,\n  ToLowerOperation,\n  ToUpperOperation,\n  SubstringOperation,\n  LengthOperation,\n  ConditionOperation,\n  GreaterThanOperation,\n  SizeOperation,\n  GroupId,\n  Accumulator,\n  AccumulatorExpressionOneOf,\n  Avg,\n  Min,\n  Max,\n  Sum,\n  First,\n  Last,\n  Push,\n  Sorting,\n  CommonSorting,\n  Projection,\n  Include,\n  Exclude,\n  Reshape,\n  ProjectNested,\n  Field,\n  FieldProjectionOneOf,\n  ObjectToArray,\n  UnwindArray,\n  AddFields,\n  AddField,\n  Lookup,\n  UnionWith,\n  Paging,\n  CursorPaging,\n  V1Field,\n  FilterQuery,\n  AggregationQuery,\n  WixDataSource,\n  WixDataSourceQueryOneOf,\n  LocalizationSource,\n  FileSource,\n  TestSource,\n  DataMovementJobLogs,\n  ExternalFileSource,\n  GoogleSheetsSource,\n  WixMediaSource,\n  WixDataCollectionDefinitionSource,\n  Destination,\n  DestinationDestinationOneOf,\n  WixDataDestination,\n  LocalizationDestination,\n  FileDestination,\n  Schema,\n  StoresCatalogProductsDestination,\n  WixMediaDestination,\n  WixDataCollectionDefinitionDestination,\n  StoresCatalogInventoryDestination,\n  TestDestination,\n  Transformation,\n  TransformationTransformationOneOf,\n  TestTransformation,\n  Progress,\n  ItemsSuccessfulInfo,\n  ApplicationError,\n  PartiallySuccessfulStatusOptions,\n  ExtendedFields,\n  SubmitJobRequest,\n  SubmitJobRequestSiteOverrideOneOf,\n  SubmitJobResponse,\n  CreateFileUploadUrlRequest,\n  CreateFileUploadUrlResponse,\n  GetJobRequest,\n  GetJobResponse,\n  ListJobsRequest,\n  CommonCursorPaging,\n  QueryV2,\n  QueryV2PagingMethodOneOf,\n  WixCommonSorting,\n  CommonPaging,\n  ListJobsResponse,\n  CursorPagingMetadata,\n  Cursors,\n  QueryJobsRequest,\n  CursorQuery,\n  CursorQueryPagingMethodOneOf,\n  QueryJobsResponse,\n  TerminateJobRequest,\n  TerminateJobResponse,\n  ListMovementLogsRequest,\n  ListMovementLogsResponse,\n  MovementLog,\n  JobCallback,\n  JobCallbackOptionsOneOf,\n  InProgressOptions,\n  FailedOptions,\n  PartiallySuccessfulOptions,\n  Empty,\n  TerminateJobByIdRequest,\n  TerminateJobByIdResponse,\n  DomainEvent,\n  DomainEventBodyOneOf,\n  EntityCreatedEvent,\n  RestoreInfo,\n  EntityUpdatedEvent,\n  EntityDeletedEvent,\n  ActionEvent,\n  MessageEnvelope,\n  IdentificationData,\n  IdentificationDataIdOneOf,\n  AccountInfo,\n  BaseEventMetadata,\n  EventMetadata,\n  AccountInfoMetadata,\n  JobCreatedEnvelope,\n  JobDeletedEnvelope,\n  JobUpdatedEnvelope,\n  SubmitJobOptions,\n  SubmitJobOptionsSiteOverrideOneOf,\n  CreateFileUploadUrlOptions,\n  ListJobsOptions,\n  JobsQueryResult,\n  JobsQueryBuilder,\n  DataMovementJobQuerySpec,\n  ListMovementLogsOptions,\n} from './hub-v1-job-movement-jobs.universal.js';\nexport { utils } from './hub-v1-job-movement-jobs.universal.js';\nexport {\n  JobStatusWithLiterals,\n  SortOrderWithLiterals,\n  FieldTypeWithLiterals,\n  WixDataEnvironmentWithLiterals,\n  FileFormatWithLiterals,\n  MediaTypeWithLiterals,\n  WixDataDestinationWritePolicyWithLiterals,\n  WixMediaDestinationWritePolicyWithLiterals,\n  WritePolicyWithLiterals,\n  UnitsWithLiterals,\n  CommonSortOrderWithLiterals,\n  WebhookIdentityTypeWithLiterals,\n  CommonQueryWithEntityContext,\n  DataMovementJobQuery,\n} from './hub-v1-job-movement-jobs.universal.js';\n"],"mappings":"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","names":["renameKeysFromRESTResponseToSDKResponse","transformRESTFloatToSDKFloat","transformRESTTimestampToSDKTimestamp","transformPaths","payload","transformPaths","JobStatus","SortOrder","FieldType","WixDataEnvironment","FileFormat","MediaType","WixDataDestinationWritePolicy","WixMediaDestinationWritePolicy","WritePolicy","Units","CommonSortOrder","WebhookIdentityType","submitJob","createFileUploadUrl","getJob","listJobs","queryJobs","terminateJob","listMovementLogs","submitJob","createFileUploadUrl","getJob","listJobs","queryJobs","typedQueryJobs","terminateJob","listMovementLogs","renameKeysFromRESTResponseToSDKResponse","transformPaths","transformRESTTimestampToSDKTimestamp","transformRESTFloatToSDKFloat","queryJobs","typedQueryJobs","submitJob","createFileUploadUrl","getJob","listJobs","terminateJob","listMovementLogs","onJobCreated","onJobDeleted","onJobUpdated"]}