import { QuerySpec, Query, NonNullablePaths } from '@wix/sdk-types'; /** Instructor entity */ interface Instructor { /** * ID of the instructor that equals to memberId * @format GUID * @readonly */ _id?: string | null; /** * User ID for real instructors (will be filled only for real instructors) * @format GUID * @readonly */ userId?: string | null; /** * The name of the instructor * @maxLength 1000 */ name?: string | null; /** * A description of the instructor * @maxLength 10000 */ description?: string | null; /** URL of profile photo */ photo?: Image; /** * Alt text for profile photo (needed for a11y) * @maxLength 1000 */ photoAltText?: string | null; /** * Slug that determines the instructor's profile page URL. * @format URL_SLUG * @readonly */ slug?: string | null; /** * Role of the instructor * @readonly */ role?: RoleWithLiterals; /** * IDs of programs instructor is assigned to * @format GUID * @readonly * @maxSize 100 */ programIds?: string[]; /** * Date and time when the instructor was created * @readonly */ _createdDate?: Date | null; } interface Image { /** * Wix Media image ID, * set when the member selects an image from Wix Media. */ _id?: string; /** Image URL. */ url?: string; /** Original image width. */ height?: number; /** Original image height. */ width?: number; /** * X-axis offset. * * Default: `0`. */ offsetX?: number | null; /** * Y-axis offset. * * Default: `0`. */ offsetY?: number | null; } declare enum Role { /** VIRTUAL instructor */ DEFAULT = "DEFAULT", /** REAL instructor who is the owner of the site */ OWNER = "OWNER", /** REAL instructor who has access to specified list of programs */ INSTRUCTOR = "INSTRUCTOR", /** REAL instructor who has the same rights as program owner */ MANAGER = "MANAGER" } /** @enumType */ type RoleWithLiterals = Role | 'DEFAULT' | 'OWNER' | 'INSTRUCTOR' | 'MANAGER'; interface InstructorWasAssigned { /** * ID of assigned Instructor * @format GUID */ instructorId?: string; /** * ID of the program Instructor was assigned to * @format GUID */ programId?: string; } interface InstructorWasUnassigned { /** * ID of unassigned Instructor * @format GUID */ instructorId?: string; /** * ID of the program Instructor was unassigned from * @format GUID */ programId?: string; } interface CreateInstructorRequest { /** Instructor to be created */ instructor?: Instructor; /** * trace id used by BI. * @format GUID */ actionId?: string; } interface CreateInstructorResponse { /** The created instructor */ instructor?: Instructor; } interface InviteInstructorRequest { /** * Instructor's email to invite * @format EMAIL */ email: string; } interface InviteInstructorResponse { } interface ListInstructorsRequest { /** * Filter instructors assigned to specified programs. * Return all instructors if this field has empty value * @maxSize 10 * @format GUID */ programIdsFilter?: string[]; /** page */ paging?: Paging; } interface Paging { /** Number of items to load. */ limit?: number | null; /** Number of items to skip in the current sort order. */ offset?: number | null; } interface ListInstructorsResponse { /** Retrieved instructors */ instructors?: Instructor[]; /** paging metadata */ paging?: PagingMetadataV2; /** paging metadata */ metadata?: PagingMetadataV2; } interface PagingMetadataV2 { /** Number of items returned in the response. */ count?: number | null; /** Offset that was requested. */ offset?: number | null; /** Total number of items that match the query. Returned if offset paging is used and the `tooManyToCount` flag is not set. */ total?: number | null; /** Flag that indicates the server failed to calculate the `total` field. */ tooManyToCount?: boolean | null; /** Cursors to navigate through the result pages using `next` and `prev`. Returned if cursor paging is used. */ cursors?: Cursors; } interface Cursors { /** * Cursor string pointing to the next page in the list of results. * @maxLength 16000 */ next?: string | null; /** * Cursor pointing to the previous page in the list of results. * @maxLength 16000 */ prev?: string | null; } interface QueryInstructorsRequest { /** Platformized query to get instructors */ query?: CursorQuery; } interface CursorQuery extends CursorQueryPagingMethodOneOf { /** * Cursor paging options. * * Learn more about [cursor paging](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#cursor-paging). */ cursorPaging?: CursorPaging; /** * Filter object. * * Learn more about [filtering](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#filters). */ filter?: Record | null; /** * Sort object. * * Learn more about [sorting](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#sorting). * @maxSize 5 */ sort?: Sorting[]; } /** @oneof */ interface CursorQueryPagingMethodOneOf { /** * Cursor paging options. * * Learn more about [cursor paging](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#cursor-paging). */ cursorPaging?: CursorPaging; } interface Sorting { /** * Name of the field to sort by. * @maxLength 512 */ fieldName?: string; /** Sort order. */ order?: SortOrderWithLiterals; } declare enum SortOrder { ASC = "ASC", DESC = "DESC" } /** @enumType */ type SortOrderWithLiterals = SortOrder | 'ASC' | 'DESC'; interface CursorPaging { /** * Maximum number of items to return in the results. * @max 100 */ limit?: number | null; /** * Pointer to the next or previous page in the list of results. * * Pass the relevant cursor token from the `pagingMetadata` object in the previous call's response. * Not relevant for the first request. * @maxLength 16000 */ cursor?: string | null; } interface QueryInstructorsResponse { /** The retrieved Categories */ instructors?: Instructor[]; /** Metadata for paging */ pagingMetadata?: CursorPagingMetadata; } interface CursorPagingMetadata { /** Number of items returned in current page. */ count?: number | null; /** Cursor strings that point to the next page, previous page, or both. */ cursors?: Cursors; /** * Whether there are more pages to retrieve following the current page. * * + `true`: Another page of results can be retrieved. * + `false`: This is the last page. */ hasNext?: boolean | null; } interface UpdateInstructorRequest { /** Instructor to be updated, may be partial */ instructor: Instructor; /** * trace id used by BI. * @format GUID */ actionId?: string; } interface UpdateInstructorResponse { /** Updated instructor */ instructor?: Instructor; } interface UpdateInstructorRoleRequest { /** * id of instructor to update role. * @format GUID */ instructorId?: string; /** desired role after update. */ newRole?: RoleWithLiterals; } interface UpdateInstructorRoleResponse { /** instructor with updated role. */ instructor?: Instructor; } interface DeleteInstructorRequest { /** * ID of the instructor to delete * @format GUID */ instructorId: string; /** * trace id used by BI. * @format GUID */ actionId?: string; } interface DeleteInstructorResponse { /** Deleted instructor */ instructor?: Instructor; } interface AssignInstructorToProgramRequest { /** * ID of the instructor to assign * @format GUID */ instructorId: string; /** * ID of the program * @format GUID */ programId: string; /** * trace id used by BI. * @format GUID */ actionId?: string; } interface AssignInstructorToProgramResponse { } interface UnassignInstructorFromProgramRequest { /** * ID of the instructor to unassign * @format GUID */ instructorId: string; /** * ID of the program * @format GUID */ programId: string; /** * trace id used by BI. * @format GUID */ actionId?: string; } interface UnassignInstructorFromProgramResponse { } interface ChangeProgramInstructorsRequest { /** * ID of the program * @format GUID */ programId: string; /** * IDs of instructors to assign * @format GUID * @maxSize 10 */ assignInstructorIds?: string[]; /** * IDs of instructors to unassign * @format GUID * @maxSize 10 */ unassignInstructorIds?: string[]; /** * trace id used by BI. * @format GUID */ actionId?: string; } interface ChangeProgramInstructorsResponse { } interface MetaSiteSpecialEvent extends MetaSiteSpecialEventPayloadOneOf { /** Emitted on a meta site creation. */ siteCreated?: SiteCreated; /** Emitted on a meta site transfer completion. */ siteTransferred?: SiteTransferred; /** Emitted on a meta site deletion. */ siteDeleted?: SiteDeleted; /** Emitted on a meta site restoration. */ siteUndeleted?: SiteUndeleted; /** Emitted on the first* publish of the meta site (* switching from unpublished to published state). */ sitePublished?: SitePublished; /** Emitted on a meta site unpublish. */ siteUnpublished?: SiteUnpublished; /** Emitted when meta site is marked as template. */ siteMarkedAsTemplate?: SiteMarkedAsTemplate; /** Emitted when meta site is marked as a WixSite. */ siteMarkedAsWixSite?: SiteMarkedAsWixSite; /** Emitted when an application is provisioned (installed). */ serviceProvisioned?: ServiceProvisioned; /** Emitted when an application is removed (uninstalled). */ serviceRemoved?: ServiceRemoved; /** Emitted when meta site name (URL slug) is changed. */ siteRenamedPayload?: SiteRenamed; /** Emitted when meta site was permanently deleted. */ hardDeleted?: SiteHardDeleted; /** Emitted on a namespace change. */ namespaceChanged?: NamespaceChanged; /** Emitted when Studio is attached. */ studioAssigned?: StudioAssigned; /** Emitted when Studio is detached. */ studioUnassigned?: StudioUnassigned; /** * Emitted when one of the URLs is changed. After this event you may call `urls-server` to fetch * the actual URL. * * See: https://wix.slack.com/archives/C0UHEBPFT/p1732520791210559?thread_ts=1732027914.294059&cid=C0UHEBPFT * See: https://wix.slack.com/archives/C0UHEBPFT/p1744115197619459 */ urlChanged?: SiteUrlChanged; /** Site is marked as PurgedExternally */ sitePurgedExternally?: SitePurgedExternally; /** Emitted when Odeditor is attached. */ odeditorAssigned?: OdeditorAssigned; /** Emitted when Odeditor is detached. */ odeditorUnassigned?: OdeditorUnassigned; /** Emitted when Picasso is attached. */ picassoAssigned?: PicassoAssigned; /** Emitted when Picasso is detached. */ picassoUnassigned?: PicassoUnassigned; /** Emitted when Wixel is attached. */ wixelAssigned?: WixelAssigned; /** Emitted when Wixel is detached. */ wixelUnassigned?: WixelUnassigned; /** Emitted when StudioTwo is attached. */ studioTwoAssigned?: StudioTwoAssigned; /** Emitted when StudioTwo is detached. */ studioTwoUnassigned?: StudioTwoUnassigned; /** Emitted when media from user domain is enabled. */ userDomainMediaEnabled?: UserDomainMediaEnabled; /** Emitted when media from user domain is disabled. */ userDomainMediaDisabled?: UserDomainMediaDisabled; /** * A meta site id. * @format GUID */ metaSiteId?: string; /** A meta site version. Monotonically increasing. */ version?: string; /** A timestamp of the event. */ timestamp?: string; /** * TODO(meta-site): Change validation once validations are disabled for consumers * More context: https://wix.slack.com/archives/C0UHEBPFT/p1720957844413149 and https://wix.slack.com/archives/CFWKX325T/p1728892152855659 * @maxSize 4000 */ assets?: Asset[]; } /** @oneof */ interface MetaSiteSpecialEventPayloadOneOf { /** Emitted on a meta site creation. */ siteCreated?: SiteCreated; /** Emitted on a meta site transfer completion. */ siteTransferred?: SiteTransferred; /** Emitted on a meta site deletion. */ siteDeleted?: SiteDeleted; /** Emitted on a meta site restoration. */ siteUndeleted?: SiteUndeleted; /** Emitted on the first* publish of the meta site (* switching from unpublished to published state). */ sitePublished?: SitePublished; /** Emitted on a meta site unpublish. */ siteUnpublished?: SiteUnpublished; /** Emitted when meta site is marked as template. */ siteMarkedAsTemplate?: SiteMarkedAsTemplate; /** Emitted when meta site is marked as a WixSite. */ siteMarkedAsWixSite?: SiteMarkedAsWixSite; /** Emitted when an application is provisioned (installed). */ serviceProvisioned?: ServiceProvisioned; /** Emitted when an application is removed (uninstalled). */ serviceRemoved?: ServiceRemoved; /** Emitted when meta site name (URL slug) is changed. */ siteRenamedPayload?: SiteRenamed; /** Emitted when meta site was permanently deleted. */ hardDeleted?: SiteHardDeleted; /** Emitted on a namespace change. */ namespaceChanged?: NamespaceChanged; /** Emitted when Studio is attached. */ studioAssigned?: StudioAssigned; /** Emitted when Studio is detached. */ studioUnassigned?: StudioUnassigned; /** * Emitted when one of the URLs is changed. After this event you may call `urls-server` to fetch * the actual URL. * * See: https://wix.slack.com/archives/C0UHEBPFT/p1732520791210559?thread_ts=1732027914.294059&cid=C0UHEBPFT * See: https://wix.slack.com/archives/C0UHEBPFT/p1744115197619459 */ urlChanged?: SiteUrlChanged; /** Site is marked as PurgedExternally */ sitePurgedExternally?: SitePurgedExternally; /** Emitted when Odeditor is attached. */ odeditorAssigned?: OdeditorAssigned; /** Emitted when Odeditor is detached. */ odeditorUnassigned?: OdeditorUnassigned; /** Emitted when Picasso is attached. */ picassoAssigned?: PicassoAssigned; /** Emitted when Picasso is detached. */ picassoUnassigned?: PicassoUnassigned; /** Emitted when Wixel is attached. */ wixelAssigned?: WixelAssigned; /** Emitted when Wixel is detached. */ wixelUnassigned?: WixelUnassigned; /** Emitted when StudioTwo is attached. */ studioTwoAssigned?: StudioTwoAssigned; /** Emitted when StudioTwo is detached. */ studioTwoUnassigned?: StudioTwoUnassigned; /** Emitted when media from user domain is enabled. */ userDomainMediaEnabled?: UserDomainMediaEnabled; /** Emitted when media from user domain is disabled. */ userDomainMediaDisabled?: UserDomainMediaDisabled; } interface Asset { /** * An application definition id (app_id in dev-center). For legacy reasons may be UUID or a string (from Java Enum). * @maxLength 36 */ appDefId?: string; /** * An instance id. For legacy reasons may be UUID or a string. * @maxLength 200 */ instanceId?: string; /** An application state. */ state?: StateWithLiterals; } declare enum State { UNKNOWN = "UNKNOWN", ENABLED = "ENABLED", DISABLED = "DISABLED", PENDING = "PENDING", DEMO = "DEMO" } /** @enumType */ type StateWithLiterals = State | 'UNKNOWN' | 'ENABLED' | 'DISABLED' | 'PENDING' | 'DEMO'; interface SiteCreated { /** * A template identifier (empty if not created from a template). * @maxLength 36 */ originTemplateId?: string; /** * An account id of the owner. * @format GUID */ ownerId?: string; /** A context in which meta site was created. */ context?: SiteCreatedContextWithLiterals; /** * A meta site id from which this site was created. * * In case of a creation from a template it's a template id. * In case of a site duplication ("Save As" in dashboard or duplicate in UM) it's an id of a source site. * @format GUID */ originMetaSiteId?: string | null; /** * A meta site name (URL slug). * @maxLength 20 */ siteName?: string; /** A namespace. */ namespace?: NamespaceWithLiterals; } declare enum SiteCreatedContext { /** A valid option, we don't expose all reasons why site might be created. */ OTHER = "OTHER", /** A meta site was created from template. */ FROM_TEMPLATE = "FROM_TEMPLATE", /** A meta site was created by copying of the transfferred meta site. */ DUPLICATE_BY_SITE_TRANSFER = "DUPLICATE_BY_SITE_TRANSFER", /** A copy of existing meta site. */ DUPLICATE = "DUPLICATE", /** A meta site was created as a transfferred site (copy of the original), old flow, should die soon. */ OLD_SITE_TRANSFER = "OLD_SITE_TRANSFER", /** deprecated A meta site was created for Flash editor. */ FLASH = "FLASH" } /** @enumType */ type SiteCreatedContextWithLiterals = SiteCreatedContext | 'OTHER' | 'FROM_TEMPLATE' | 'DUPLICATE_BY_SITE_TRANSFER' | 'DUPLICATE' | 'OLD_SITE_TRANSFER' | 'FLASH'; declare enum Namespace { UNKNOWN_NAMESPACE = "UNKNOWN_NAMESPACE", /** Default namespace for UGC sites. MetaSites with this namespace will be shown in a user's site list by default. */ WIX = "WIX", /** ShoutOut stand alone product. These are siteless (no actual Wix site, no HtmlWeb). MetaSites with this namespace will *not* be shown in a user's site list by default. */ SHOUT_OUT = "SHOUT_OUT", /** MetaSites created by the Albums product, they appear as part of the Albums app. MetaSites with this namespace will *not* be shown in a user's site list by default. */ ALBUMS = "ALBUMS", /** Part of the WixStores migration flow, a user tries to migrate and gets this site to view and if the user likes it then stores removes this namespace and deletes the old site with the old stores. MetaSites with this namespace will *not* be shown in a user's site list by default. */ WIX_STORES_TEST_DRIVE = "WIX_STORES_TEST_DRIVE", /** Hotels standalone (siteless). MetaSites with this namespace will *not* be shown in a user's site list by default. */ HOTELS = "HOTELS", /** Clubs siteless MetaSites, a club without a wix website. MetaSites with this namespace will *not* be shown in a user's site list by default. */ CLUBS = "CLUBS", /** A partially created ADI website. MetaSites with this namespace will *not* be shown in a user's site list by default. */ ONBOARDING_DRAFT = "ONBOARDING_DRAFT", /** AppBuilder for AppStudio / shmite (c). MetaSites with this namespace will *not* be shown in a user's site list by default. */ DEV_SITE = "DEV_SITE", /** LogoMaker websites offered to the user after logo purchase. MetaSites with this namespace will *not* be shown in a user's site list by default. */ LOGOS = "LOGOS", /** VideoMaker websites offered to the user after video purchase. MetaSites with this namespace will *not* be shown in a user's site list by default. */ VIDEO_MAKER = "VIDEO_MAKER", /** MetaSites with this namespace will *not* be shown in a user's site list by default. */ PARTNER_DASHBOARD = "PARTNER_DASHBOARD", /** MetaSites with this namespace will *not* be shown in a user's site list by default. */ DEV_CENTER_COMPANY = "DEV_CENTER_COMPANY", /** * A draft created by HTML editor on open. Upon "first save" it will be moved to be of WIX domain. * * Meta site with this namespace will *not* be shown in a user's site list by default. */ HTML_DRAFT = "HTML_DRAFT", /** * the user-journey for Fitness users who want to start from managing their business instead of designing their website. * Will be accessible from Site List and will not have a website app. * Once the user attaches a site, the site will become a regular wixsite. */ SITELESS_BUSINESS = "SITELESS_BUSINESS", /** Belongs to "strategic products" company. Supports new product in the creator's economy space. */ CREATOR_ECONOMY = "CREATOR_ECONOMY", /** It is to be used in the Business First efforts. */ DASHBOARD_FIRST = "DASHBOARD_FIRST", /** Bookings business flow with no site. */ ANYWHERE = "ANYWHERE", /** Namespace for Headless Backoffice with no editor */ HEADLESS = "HEADLESS", /** * Namespace for master site that will exist in parent account that will be referenced by subaccounts * The site will be used for account level CSM feature for enterprise */ ACCOUNT_MASTER_CMS = "ACCOUNT_MASTER_CMS", /** Rise.ai Siteless account management for Gift Cards and Store Credit. */ RISE = "RISE", /** * As part of the branded app new funnel, users now can create a meta site that will be branded app first. * There's a blank site behind the scene but it's blank). * The Mobile company will be the owner of this namespace. */ BRANDED_FIRST = "BRANDED_FIRST", /** Nownia.com Siteless account management for Ai Scheduling Assistant. */ NOWNIA = "NOWNIA", /** * UGC Templates are templates that are created by users for personal use and to sale to other users. * The Partners company owns this namespace. */ UGC_TEMPLATE = "UGC_TEMPLATE", /** Codux Headless Sites */ CODUX = "CODUX", /** Bobb - AI Design Creator. */ MEDIA_DESIGN_CREATOR = "MEDIA_DESIGN_CREATOR", /** * Shared Blog Site is a unique single site across Enterprise account, * This site will hold all Blog posts related to the Marketing product. */ SHARED_BLOG_ENTERPRISE = "SHARED_BLOG_ENTERPRISE", /** Standalone forms (siteless). MetaSites with this namespace will *not* be shown in a user's site list by default. */ STANDALONE_FORMS = "STANDALONE_FORMS", /** Standalone events (siteless). MetaSites with this namespace will *not* be shown in a user's site list by default. */ STANDALONE_EVENTS = "STANDALONE_EVENTS", /** MIMIR - Siteless account for MIMIR Ai Job runner. */ MIMIR = "MIMIR", /** Wix Twins platform. */ TWINS = "TWINS", /** Wix Nano. */ NANO = "NANO", /** Base44 headless sites. */ BASE44 = "BASE44" } /** @enumType */ type NamespaceWithLiterals = Namespace | 'UNKNOWN_NAMESPACE' | 'WIX' | 'SHOUT_OUT' | 'ALBUMS' | 'WIX_STORES_TEST_DRIVE' | 'HOTELS' | 'CLUBS' | 'ONBOARDING_DRAFT' | 'DEV_SITE' | 'LOGOS' | 'VIDEO_MAKER' | 'PARTNER_DASHBOARD' | 'DEV_CENTER_COMPANY' | 'HTML_DRAFT' | 'SITELESS_BUSINESS' | 'CREATOR_ECONOMY' | 'DASHBOARD_FIRST' | 'ANYWHERE' | 'HEADLESS' | 'ACCOUNT_MASTER_CMS' | 'RISE' | 'BRANDED_FIRST' | 'NOWNIA' | 'UGC_TEMPLATE' | 'CODUX' | 'MEDIA_DESIGN_CREATOR' | 'SHARED_BLOG_ENTERPRISE' | 'STANDALONE_FORMS' | 'STANDALONE_EVENTS' | 'MIMIR' | 'TWINS' | 'NANO' | 'BASE44'; /** Site transferred to another user. */ interface SiteTransferred { /** * A previous owner id (user that transfers meta site). * @format GUID */ oldOwnerId?: string; /** * A new owner id (user that accepts meta site). * @format GUID */ newOwnerId?: string; } /** Soft deletion of the meta site. Could be restored. */ interface SiteDeleted { /** A deletion context. */ deleteContext?: DeleteContext; } interface DeleteContext { /** When the meta site was deleted. */ dateDeleted?: Date | null; /** A status. */ deleteStatus?: DeleteStatusWithLiterals; /** * A reason (flow). * @maxLength 255 */ deleteOrigin?: string; /** * A service that deleted it. * @maxLength 255 */ initiatorId?: string | null; } declare enum DeleteStatus { UNKNOWN = "UNKNOWN", TRASH = "TRASH", DELETED = "DELETED", PENDING_PURGE = "PENDING_PURGE", PURGED_EXTERNALLY = "PURGED_EXTERNALLY" } /** @enumType */ type DeleteStatusWithLiterals = DeleteStatus | 'UNKNOWN' | 'TRASH' | 'DELETED' | 'PENDING_PURGE' | 'PURGED_EXTERNALLY'; /** Restoration of the meta site. */ interface SiteUndeleted { } /** First publish of a meta site. Or subsequent publish after unpublish. */ interface SitePublished { } interface SiteUnpublished { /** * A list of URLs previously associated with the meta site. * @maxLength 4000 * @maxSize 10000 */ urls?: string[]; } interface SiteMarkedAsTemplate { } interface SiteMarkedAsWixSite { } /** * Represents a service provisioned a site. * * Note on `origin_instance_id`: * There is no guarantee that you will be able to find a meta site using `origin_instance_id`. * This is because of the following scenario: * * Imagine you have a template where a third-party application (TPA) includes some stub data, * such as a product catalog. When you create a site from this template, you inherit this * default product catalog. However, if the template's product catalog is modified, * your site will retain the catalog as it was at the time of site creation. This ensures that * your site remains consistent with what you initially received and does not include any * changes made to the original template afterward. * To ensure this, the TPA on the template gets a new instance_id. */ interface ServiceProvisioned { /** * Either UUID or EmbeddedServiceType. * @maxLength 36 */ appDefId?: string; /** * Not only UUID. Something here could be something weird. * @maxLength 36 */ instanceId?: string; /** * An instance id from which this instance is originated. * @maxLength 36 */ originInstanceId?: string; /** * A version. * @maxLength 500 */ version?: string | null; /** * The origin meta site id * @format GUID */ originMetaSiteId?: string | null; } interface ServiceRemoved { /** * Either UUID or EmbeddedServiceType. * @maxLength 36 */ appDefId?: string; /** * Not only UUID. Something here could be something weird. * @maxLength 36 */ instanceId?: string; /** * A version. * @maxLength 500 */ version?: string | null; } /** Rename of the site. Meaning, free public url has been changed as well. */ interface SiteRenamed { /** * A new meta site name (URL slug). * @maxLength 20 */ newSiteName?: string; /** * A previous meta site name (URL slug). * @maxLength 255 */ oldSiteName?: string; } /** * Hard deletion of the meta site. * * Could not be restored. Therefore it's desirable to cleanup data. */ interface SiteHardDeleted { /** A deletion context. */ deleteContext?: DeleteContext; } interface NamespaceChanged { /** A previous namespace. */ oldNamespace?: NamespaceWithLiterals; /** A new namespace. */ newNamespace?: NamespaceWithLiterals; } /** Assigned Studio editor */ interface StudioAssigned { } /** Unassigned Studio editor */ interface StudioUnassigned { } /** * Fired in case site URLs were changed in any way: new secondary domain, published, account slug rename, site rename etc. * * This is an internal event, it's not propagated in special events, because it's non-actionable. If you need to keep up * with sites and its urls, you need to listen to another topic/event. Read about it: * * https://bo.wix.com/wix-docs/rest/meta-site/meta-site---urls-service */ interface SiteUrlChanged { } /** * Used at the end of the deletion flow for both draft sites and when a user deletes a site. * Consumed by other teams to remove relevant data. */ interface SitePurgedExternally { /** * @maxLength 2048 * @maxSize 100 * @deprecated * @targetRemovalDate 2025-04-15 */ appDefId?: string[]; } /** Assigned Odeditor */ interface OdeditorAssigned { } /** Unassigned Odeditor */ interface OdeditorUnassigned { } /** Assigned Picasso editor */ interface PicassoAssigned { } /** Unassigned Picasso */ interface PicassoUnassigned { } /** Assigned Wixel */ interface WixelAssigned { } /** Unassigned Wixel */ interface WixelUnassigned { } /** Assigned StudioTwo */ interface StudioTwoAssigned { } /** Unassigned StudioTwo */ interface StudioTwoUnassigned { } /** Media from user domain is enabled. */ interface UserDomainMediaEnabled { } /** Media from user domain is disabled. */ interface UserDomainMediaDisabled { } interface Empty { } interface DomainEvent extends DomainEventBodyOneOf { createdEvent?: EntityCreatedEvent; updatedEvent?: EntityUpdatedEvent; deletedEvent?: EntityDeletedEvent; actionEvent?: ActionEvent; /** Event ID. With this ID you can easily spot duplicated events and ignore them. */ _id?: string; /** * Fully Qualified Domain Name of an entity. This is a unique identifier assigned to the API main business entities. * For example, `wix.stores.catalog.product`, `wix.bookings.session`, `wix.payments.transaction`. */ entityFqdn?: string; /** * Event action name, placed at the top level to make it easier for users to dispatch messages. * For example: `created`/`updated`/`deleted`/`started`/`completed`/`email_opened`. */ slug?: string; /** ID of the entity associated with the event. */ entityId?: string; /** Event timestamp in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) format and UTC time. For example, `2020-04-26T13:57:50.699Z`. */ eventTime?: Date | null; /** * Whether the event was triggered as a result of a privacy regulation application * (for example, GDPR). */ triggeredByAnonymizeRequest?: boolean | null; /** If present, indicates the action that triggered the event. */ originatedFrom?: string | null; /** * 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. * 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. */ entityEventSequence?: string | null; } /** @oneof */ interface DomainEventBodyOneOf { createdEvent?: EntityCreatedEvent; updatedEvent?: EntityUpdatedEvent; deletedEvent?: EntityDeletedEvent; actionEvent?: ActionEvent; } interface EntityCreatedEvent { entity?: string; } interface RestoreInfo { deletedDate?: Date | null; } interface EntityUpdatedEvent { /** * Since platformized APIs only expose PATCH and not PUT we can't assume that the fields sent from the client are the actual diff. * This means that to generate a list of changed fields (as opposed to sent fields) one needs to traverse both objects. * We don't want to impose this on all developers and so we leave this traversal to the notification recipients which need it. */ currentEntity?: string; } interface EntityDeletedEvent { /** Entity that was deleted. */ deletedEntity?: string | null; } interface ActionEvent { body?: string; } interface PolicyAssignedToContributor { /** @format GUID */ accountId?: string; /** @format GUID */ metaSiteId?: string; policyIds?: string[]; } interface NoUserIdInCallScopeErrorDetails { /** @format GUID */ accountId?: string; } interface PolicyRemovedFromContributor { /** @format GUID */ accountId?: string; /** @format GUID */ metaSiteId?: string; policyIds?: string[]; } interface PolicyUpdatedForContributor { /** @format GUID */ accountId?: string; /** @format GUID */ metaSiteId?: string; oldPolicyIds?: string[]; newPolicyIds?: string[]; } interface MessageEnvelope { /** * App instance ID. * @format GUID */ instanceId?: string | null; /** * Event type. * @maxLength 150 */ eventType?: string; /** The identification type and identity data. */ identity?: IdentificationData; /** Stringify payload. */ data?: string; /** Details related to the account */ accountInfo?: AccountInfo; } interface IdentificationData extends IdentificationDataIdOneOf { /** * ID of a site visitor that has not logged in to the site. * @format GUID */ anonymousVisitorId?: string; /** * ID of a site visitor that has logged in to the site. * @format GUID */ memberId?: string; /** * ID of a Wix user (site owner, contributor, etc.). * @format GUID */ wixUserId?: string; /** * ID of an app. * @format GUID */ appId?: string; /** @readonly */ identityType?: WebhookIdentityTypeWithLiterals; } /** @oneof */ interface IdentificationDataIdOneOf { /** * ID of a site visitor that has not logged in to the site. * @format GUID */ anonymousVisitorId?: string; /** * ID of a site visitor that has logged in to the site. * @format GUID */ memberId?: string; /** * ID of a Wix user (site owner, contributor, etc.). * @format GUID */ wixUserId?: string; /** * ID of an app. * @format GUID */ appId?: string; } declare enum WebhookIdentityType { UNKNOWN = "UNKNOWN", ANONYMOUS_VISITOR = "ANONYMOUS_VISITOR", MEMBER = "MEMBER", WIX_USER = "WIX_USER", APP = "APP" } /** @enumType */ type WebhookIdentityTypeWithLiterals = WebhookIdentityType | 'UNKNOWN' | 'ANONYMOUS_VISITOR' | 'MEMBER' | 'WIX_USER' | 'APP'; interface AccountInfo { /** * ID of the Wix account associated with the event. * @format GUID */ accountId?: string | null; /** * ID of the parent Wix account. Only included when accountId belongs to a child account. * @format GUID */ parentAccountId?: string | null; /** * ID of the Wix site associated with the event. Only included when the event is tied to a specific site. * @format GUID */ siteId?: string | null; } /** @docsIgnore */ type UpdateInstructorApplicationErrors = { code?: 'INVALID_IDENTITY'; description?: string; data?: Record; }; /** @docsIgnore */ type ChangeProgramInstructorsApplicationErrors = { code?: 'LIMIT_IS_REACHED'; description?: string; data?: Record; }; /** * Creates a new instructor * @public * @requiredField options.instructor.name * @permissionId ONLINE_PROGRAMS.INSTRUCTORS_MANAGE * @applicableIdentity APP * @returns The created instructor * @fqn wix.achievements.instructors.v2.InstructorsService.CreateInstructor */ declare function createInstructor(options?: NonNullablePaths): Promise>; interface CreateInstructorOptions { /** Instructor to be created */ instructor?: Instructor; /** * trace id used by BI. * @format GUID */ actionId?: string; } /** * Invite instructor by provided email * @param email - Instructor's email to invite * @public * @requiredField email * @permissionId ONLINE_PROGRAMS.INSTRUCTORS_MANAGE * @applicableIdentity APP * @fqn wix.achievements.instructors.v2.InstructorsService.InviteInstructor */ declare function inviteInstructor(email: string): Promise; /** * Lists instructors created on the site * @public * @permissionId ONLINE_PROGRAMS.INSTRUCTORS_READ * @applicableIdentity APP * @fqn wix.achievements.instructors.v2.InstructorsService.ListInstructors */ declare function listInstructors(options?: ListInstructorsOptions): Promise>; interface ListInstructorsOptions { /** * Filter instructors assigned to specified programs. * Return all instructors if this field has empty value * @maxSize 10 * @format GUID */ programIdsFilter?: string[]; /** page */ paging?: Paging; } /** * Query instructors * @public * @permissionId ONLINE_PROGRAMS.INSTRUCTORS_READ * @applicableIdentity APP * @fqn wix.achievements.instructors.v2.InstructorsService.QueryInstructors */ declare function queryInstructors(): InstructorsQueryBuilder; interface QueryCursorResult { cursors: Cursors; hasNext: () => boolean; hasPrev: () => boolean; length: number; pageSize: number; } interface InstructorsQueryResult extends QueryCursorResult { items: Instructor[]; query: InstructorsQueryBuilder; next: () => Promise; prev: () => Promise; } interface InstructorsQueryBuilder { /** @param propertyName - Property whose value is compared with `value`. * @param value - Value to compare against. */ eq: (propertyName: '_id' | 'userId', value: any) => InstructorsQueryBuilder; /** @param propertyName - Property whose value is compared with `value`. * @param value - Value to compare against. */ ne: (propertyName: '_id', value: any) => InstructorsQueryBuilder; /** @param propertyName - Property whose value is compared with `value`. * @param value - Value to compare against. */ ge: (propertyName: '_id', value: any) => InstructorsQueryBuilder; /** @param propertyName - Property whose value is compared with `value`. * @param value - Value to compare against. */ gt: (propertyName: '_id', value: any) => InstructorsQueryBuilder; /** @param propertyName - Property whose value is compared with `value`. * @param value - Value to compare against. */ le: (propertyName: '_id', value: any) => InstructorsQueryBuilder; /** @param propertyName - Property whose value is compared with `value`. * @param value - Value to compare against. */ lt: (propertyName: '_id', value: any) => InstructorsQueryBuilder; /** @param propertyName - Property whose value is compared with `string`. * @param string - String to compare against. Case-insensitive. */ startsWith: (propertyName: '_id', value: string) => InstructorsQueryBuilder; /** @param propertyName - Property whose value is compared with `values`. * @param values - List of values to compare against. */ hasSome: (propertyName: '_id', value: any[]) => InstructorsQueryBuilder; in: (propertyName: '_id' | 'userId', value: any) => InstructorsQueryBuilder; exists: (propertyName: '_id', value: boolean) => InstructorsQueryBuilder; /** @param propertyNames - Properties used in the sort. To sort by multiple properties, pass properties as additional arguments. */ ascending: (...propertyNames: Array<'_id' | 'userId'>) => InstructorsQueryBuilder; /** @param propertyNames - Properties used in the sort. To sort by multiple properties, pass properties as additional arguments. */ descending: (...propertyNames: Array<'_id' | 'userId'>) => InstructorsQueryBuilder; /** @param limit - Number of items to return, which is also the `pageSize` of the results object. */ limit: (limit: number) => InstructorsQueryBuilder; /** @param cursor - A pointer to specific record */ skipTo: (cursor: string) => InstructorsQueryBuilder; find: () => Promise; } /** * @hidden * @fqn wix.achievements.instructors.v2.InstructorsService.QueryInstructors * @requiredField query */ declare function typedQueryInstructors(query: InstructorQuery): Promise>; interface InstructorQuerySpec extends QuerySpec { paging: 'cursor'; wql: [ { fields: ['_id']; operators: '*'; sort: 'BOTH'; }, { fields: ['userId']; operators: ['$eq', '$in']; sort: 'BOTH'; }, { fields: ['programIds']; operators: ['$hasSome']; sort: 'NONE'; } ]; } type CommonQueryWithEntityContext = Query; type InstructorQuery = { /** Cursor paging options. Learn more about [cursor paging](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#cursor-paging). */ cursorPaging?: { /** Maximum number of items to return in the results. @max: 100 */ limit?: NonNullable['limit'] | null; /** Pointer to the next or previous page in the list of results. Pass the relevant cursor token from the `pagingMetadata` object in the previous call's response. Not relevant for the first request. @maxLength: 16000 */ cursor?: NonNullable['cursor'] | null; }; /** Filter object. Learn more about [filtering](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#filters). */ filter?: CommonQueryWithEntityContext['filter'] | null; /** Sort object. Learn more about [sorting](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#sorting). @maxSize: 5 */ sort?: { /** Name of the field to sort by. @maxLength: 512 */ fieldName?: NonNullable[number]['fieldName']; /** Sort order. */ order?: NonNullable[number]['order']; }[]; }; /** * Updates an instructor, supports partial update * @param _id - ID of the instructor that equals to memberId * @public * @requiredField _id * @requiredField instructor * @permissionId ONLINE_PROGRAMS.INSTRUCTOR_UPDATE * @applicableIdentity APP * @returns Updated instructor * @fqn wix.achievements.instructors.v2.InstructorsService.UpdateInstructor */ declare function updateInstructor(_id: string, instructor: UpdateInstructor, options?: UpdateInstructorOptions): Promise & { __applicationErrorsType?: UpdateInstructorApplicationErrors; }>; interface UpdateInstructor { /** * ID of the instructor that equals to memberId * @format GUID * @readonly */ _id?: string | null; /** * User ID for real instructors (will be filled only for real instructors) * @format GUID * @readonly */ userId?: string | null; /** * The name of the instructor * @maxLength 1000 */ name?: string | null; /** * A description of the instructor * @maxLength 10000 */ description?: string | null; /** URL of profile photo */ photo?: Image; /** * Alt text for profile photo (needed for a11y) * @maxLength 1000 */ photoAltText?: string | null; /** * Slug that determines the instructor's profile page URL. * @format URL_SLUG * @readonly */ slug?: string | null; /** * Role of the instructor * @readonly */ role?: RoleWithLiterals; /** * IDs of programs instructor is assigned to * @format GUID * @readonly * @maxSize 100 */ programIds?: string[]; /** * Date and time when the instructor was created * @readonly */ _createdDate?: Date | null; } interface UpdateInstructorOptions { /** * trace id used by BI. * @format GUID */ actionId?: string; } /** * Deletes an instructor * @param instructorId - ID of the instructor to delete * @public * @requiredField instructorId * @permissionId ONLINE_PROGRAMS.INSTRUCTORS_MANAGE * @applicableIdentity APP * @fqn wix.achievements.instructors.v2.InstructorsService.DeleteInstructor */ declare function deleteInstructor(instructorId: string, options?: DeleteInstructorOptions): Promise>; interface DeleteInstructorOptions { /** * trace id used by BI. * @format GUID */ actionId?: string; } /** * Assigns an instructor to the program * @param instructorId - ID of the instructor to assign * @param programId - ID of the program * @public * @requiredField instructorId * @requiredField programId * @permissionId ONLINE_PROGRAMS.INSTRUCTORS_MANAGE * @applicableIdentity APP * @fqn wix.achievements.instructors.v2.InstructorsService.AssignInstructorToProgram */ declare function assignInstructorToProgram(instructorId: string, programId: string, options?: AssignInstructorToProgramOptions): Promise; interface AssignInstructorToProgramOptions { /** * trace id used by BI. * @format GUID */ actionId?: string; } /** * Unassigns an instructor from the program * @param instructorId - ID of the instructor to unassign * @param programId - ID of the program * @public * @requiredField instructorId * @requiredField programId * @permissionId ONLINE_PROGRAMS.INSTRUCTORS_MANAGE * @applicableIdentity APP * @fqn wix.achievements.instructors.v2.InstructorsService.UnassignInstructorFromProgram */ declare function unassignInstructorFromProgram(instructorId: string, programId: string, options?: UnassignInstructorFromProgramOptions): Promise; interface UnassignInstructorFromProgramOptions { /** * trace id used by BI. * @format GUID */ actionId?: string; } /** * Assigns or unassigns instructors to the program * @param programId - ID of the program * @public * @requiredField programId * @permissionId ONLINE_PROGRAMS.INSTRUCTORS_MANAGE * @applicableIdentity APP * @fqn wix.achievements.instructors.v2.InstructorsService.ChangeProgramInstructors */ declare function changeProgramInstructors(programId: string, options?: ChangeProgramInstructorsOptions): Promise; interface ChangeProgramInstructorsOptions { /** * IDs of instructors to assign * @format GUID * @maxSize 10 */ assignInstructorIds?: string[]; /** * IDs of instructors to unassign * @format GUID * @maxSize 10 */ unassignInstructorIds?: string[]; /** * trace id used by BI. * @format GUID */ actionId?: string; } export { type AccountInfo, type ActionEvent, type Asset, type AssignInstructorToProgramOptions, type AssignInstructorToProgramRequest, type AssignInstructorToProgramResponse, type ChangeProgramInstructorsApplicationErrors, type ChangeProgramInstructorsOptions, type ChangeProgramInstructorsRequest, type ChangeProgramInstructorsResponse, type CommonQueryWithEntityContext, type CreateInstructorOptions, type CreateInstructorRequest, type CreateInstructorResponse, type CursorPaging, type CursorPagingMetadata, type CursorQuery, type CursorQueryPagingMethodOneOf, type Cursors, type DeleteContext, type DeleteInstructorOptions, type DeleteInstructorRequest, type DeleteInstructorResponse, DeleteStatus, type DeleteStatusWithLiterals, type DomainEvent, type DomainEventBodyOneOf, type Empty, type EntityCreatedEvent, type EntityDeletedEvent, type EntityUpdatedEvent, type IdentificationData, type IdentificationDataIdOneOf, type Image, type Instructor, type InstructorQuery, type InstructorQuerySpec, type InstructorWasAssigned, type InstructorWasUnassigned, type InstructorsQueryBuilder, type InstructorsQueryResult, type InviteInstructorRequest, type InviteInstructorResponse, type ListInstructorsOptions, type ListInstructorsRequest, type ListInstructorsResponse, type MessageEnvelope, type MetaSiteSpecialEvent, type MetaSiteSpecialEventPayloadOneOf, Namespace, type NamespaceChanged, type NamespaceWithLiterals, type NoUserIdInCallScopeErrorDetails, type OdeditorAssigned, type OdeditorUnassigned, type Paging, type PagingMetadataV2, type PicassoAssigned, type PicassoUnassigned, type PolicyAssignedToContributor, type PolicyRemovedFromContributor, type PolicyUpdatedForContributor, type QueryInstructorsRequest, type QueryInstructorsResponse, type RestoreInfo, Role, type RoleWithLiterals, type ServiceProvisioned, type ServiceRemoved, type SiteCreated, SiteCreatedContext, type SiteCreatedContextWithLiterals, type SiteDeleted, type SiteHardDeleted, type SiteMarkedAsTemplate, type SiteMarkedAsWixSite, type SitePublished, type SitePurgedExternally, type SiteRenamed, type SiteTransferred, type SiteUndeleted, type SiteUnpublished, type SiteUrlChanged, SortOrder, type SortOrderWithLiterals, type Sorting, State, type StateWithLiterals, type StudioAssigned, type StudioTwoAssigned, type StudioTwoUnassigned, type StudioUnassigned, type UnassignInstructorFromProgramOptions, type UnassignInstructorFromProgramRequest, type UnassignInstructorFromProgramResponse, type UpdateInstructor, type UpdateInstructorApplicationErrors, type UpdateInstructorOptions, type UpdateInstructorRequest, type UpdateInstructorResponse, type UpdateInstructorRoleRequest, type UpdateInstructorRoleResponse, type UserDomainMediaDisabled, type UserDomainMediaEnabled, WebhookIdentityType, type WebhookIdentityTypeWithLiterals, type WixelAssigned, type WixelUnassigned, assignInstructorToProgram, changeProgramInstructors, createInstructor, deleteInstructor, inviteInstructor, listInstructors, queryInstructors, typedQueryInstructors, unassignInstructorFromProgram, updateInstructor };