/** * >**Notes:** * > + Site owners may set that members are not permitted to create groups in the Wix Groups application settings. * > + In this situation, site members have to submit a Create Request to create a new group. * > + Create Requests can be approved or rejected by an admin. * > + After a Create Request has been approved, the new group is added to the Group List in the Wix Groups app home page. * > + See [Introduction](https://dev.wix.com/api/rest/wix-groups/groups/introduction#wix-groups_groups_introduction_terminology) for more details. */ interface CreateRequest$1 { /** * Create request ID * @readonly */ id?: string | null; /** Group requested for creation. */ group?: Group$1; /** * Status of request. * - `PENDING` - Pending request. * - `APPROVED` - Approved request. * - `REJECTED` - Rejected request. * - `CANCELED` - Canceled request. */ status?: RequestStatus$1; /** Request details. */ requestDetails?: RequestDetails$1; } interface Group$1 { /** * Group ID. * @readonly */ id?: string | null; /** A unique part of a group's URL, for example `https:/example.com/groups/slug`. */ slug?: string | null; /** * __Deprecated.__ Use `privacyStatus` instead. * This property will be removed on June 30, 2022. * @deprecated */ privacyLevel?: PrivacyStatus$1; /** Group privacy status. */ privacyStatus?: PrivacyStatus$1; /** * __Deprecated.__ Use `name` instead. * This property will be removed on June 30, 2022. * @deprecated */ title?: string | null; /** Group name. */ name?: string | null; /** Group description in DraftJS format. */ description?: string | null; /** Group teaser. */ teaser?: string | null; /** * __Deprecated.__ * For `details.logo`, use `coverImage` instead. * For `details.membersTitle`, `memberTitle` instead. * This property will be removed on June 30, 2022. * @deprecated */ details?: GroupDetails$1; /** What group members are called, for example `Coworkers`, `Friends`, or `Students`. */ memberTitle?: string | null; /** Cover image. You cannot upload your own cover image. */ coverImage?: CoverImage$1; /** Group specific settings. Available to the site owners under `Admin Tools` in the dashboard. */ settings?: GroupSettings$1; /** * Total count of current group members. * @readonly */ membersCount?: number | null; /** * __Deprecated.__ Use `ownerId` instead. * This property will be removed on June 30, 2022. * @readonly * @deprecated */ createdBy?: Identity$1; /** * Group owner. * @readonly */ ownerId?: string | null; /** * Group creation date and time. * @readonly */ createdDate?: Date | null; /** * Date and time of the latest group update. * @readonly */ updatedDate?: Date | null; /** * __Deprecated.__ Use `lastActivityDate` instead. * This property will be removed on June 30, 2022. * @readonly * @deprecated */ recentActivityDate?: Date | null; /** * Date and time of the most recent group activity, for example a post or comment. * @readonly */ lastActivityDate?: Date | null; } declare enum Type$1 { UNKNOWN = "UNKNOWN", ADMIN_APPROVAL = "ADMIN_APPROVAL", PAID_PLANS = "PAID_PLANS", EVENTS = "EVENTS" } interface Logo$1 { /** Logo image ID (for internal use). */ mediaId?: string | null; /** Logo image width. */ width?: number | null; /** Logo image height. */ height?: number | null; } interface Image$1 { /** Image ID (for internal use). */ mediaId?: string | null; /** Image width. */ width?: number | null; /** Image height. */ height?: number | null; } interface Position$1 { /** horizontal coordinate */ x?: number; /** vertical coordinate */ y?: number; } declare enum AllowPolicy$1 { UNKNOWN = "UNKNOWN", OWNER_AND_ADMINS = "OWNER_AND_ADMINS", OWNER = "OWNER", ALL_MEMBERS = "ALL_MEMBERS" } declare enum StepKey$1 { UNKNOWN = "UNKNOWN", CREATE_POST = "CREATE_POST", REACT_TO_POST = "REACT_TO_POST", INVITE_MEMBERS = "INVITE_MEMBERS" } declare enum PrivacyStatus$1 { /** Undefined group privacy status. */ UNKNOWN = "UNKNOWN", /** Anyone can see the group and its content. Anyone can join the group. */ PUBLIC = "PUBLIC", /** Anyone can see the group, but only members can see its content. New members must submit a `Join Group Request`. */ PRIVATE = "PRIVATE", /** Only admins and members can see the group. New members can only be added by other members. */ SECRET = "SECRET" } interface GroupDetails$1 { /** Group logo. You cannot upload your own logo. */ logo?: Logo$1; /** What group members are called, for example `Coworkers`, `Friends`, or `Students`. */ membersTitle?: string | null; } interface CoverImage$1 { /** Cover image. */ image?: Image$1; /** Position of the corner of the cover image (or logo). */ position?: Position$1; /** Position of the corner of the cover image (or logo) for mobile browser. */ mobilePosition?: Position$1; } interface GroupSettings$1 { /** * __Deprecated.__ Use `allowedToInviteMembers` instead. * Whether regular members are permitted to invite new members. * If `false`, only admins can invite members. Defaults to `true`. * @deprecated */ membersCanInvite?: boolean | null; /** * __Deprecated.__ Use `allowedToApproveJoinRequests` instead. * Whether all group members are permitted to approve join group requests. * If `false`, member approval is limited to the admins. * @deprecated */ membersCanApprove?: boolean | null; /** * __Deprecated.__ Use `welcomeMemberPostEnabled` instead. * This property will be removed on June 30, 2022. * @deprecated */ memberWelcomePostEnabled?: boolean | null; /** Whether a daily post about new members is enabled. */ welcomeMemberPostEnabled?: boolean | null; /** Whether an automatic post about changing the group details is enabled. */ groupDetailsChangedPostEnabled?: boolean | null; /** Whether all members can see the full member list. */ showMemberList?: boolean | null; } interface Identity$1 { /** Member ID of the group creator. See [Members API](https://dev.wix.com/api/rest/members/members/about-wix-members) for more details. */ id?: string | null; identityType?: IdentityType$1; } declare enum IdentityType$1 { USER = "USER", MEMBER = "MEMBER" } declare enum RequestStatus$1 { /** Undefined request status. */ UNKNOWN_STATUS = "UNKNOWN_STATUS", /** Pending group request. */ PENDING = "PENDING", /** Approved group request. */ APPROVED = "APPROVED", /** Rejected group request. */ REJECTED = "REJECTED", /** Cancelled group request. */ CANCELLED = "CANCELLED", /** Canceled group request. */ CANCELED = "CANCELED" } interface RequestDetails$1 { /** Reason the request has been rejected. */ rejectionReason?: string | null; } interface ApproveCreateRequestsRequest$1 { /** Create Request IDs to approve. Limited to `100`. */ createRequestIds?: string[]; } interface ApproveCreateRequestsResponse$1 { /** Approved Create Requests. */ createRequest?: CreateRequest$1[]; } interface RejectCreateRequestsRequest$1 { /** Rejection data. */ rejections?: Rejection$1[]; } interface Rejection$1 { /** ID of the Create Request to reject. */ createRequestId?: string; /** Rejection reason. Free text displayed to the creator of the rejected Create Request. Limited to 1,000 characters. */ reason?: string | null; } interface RejectCreateRequestsResponse$1 { /** Rejected Create Requests. */ createRequest?: CreateRequest$1[]; } interface ListCreateRequestsRequest$1 { /** Number of items to load. Maximum `100`. */ limit?: number | null; /** Number of items to skip in the current sort order. */ offset?: number | null; } interface ListCreateRequestsResponse$1 { /** Create Requests. */ createRequests?: CreateRequest$1[]; metadata?: PagingMetadata$1; } interface PagingMetadata$1 { /** 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. */ total?: number | null; /** Flag that indicates the server failed to calculate the `total` field. */ tooManyToCount?: boolean | null; } interface QueryCreateRequestsRequest$1 { query?: Query$1; } interface Query$1 { /** * Filter object in the following format: * `"filter" : { * "fieldName1": "value1", * "fieldName2":{"$operator":"value2"} * }` * Example of operators: `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`, `$in`, `$hasSome`, `$hasAll`, `$startsWith`, `$contains` */ filter?: any; /** * Sort object in the following format: * `[{"fieldName":"sortField1","order":"ASC"},{"fieldName":"sortField2","order":"DESC"}]` */ sort?: Sorting$1[]; /** Paging options to limit and skip the number of items. */ paging?: Paging$1; /** 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. */ fields?: string[]; /** 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. */ fieldsets?: string[]; } interface Sorting$1 { /** Name of the field to sort by. */ fieldName?: string; /** Sort order. */ order?: SortOrder$1; } declare enum SortOrder$1 { ASC = "ASC", DESC = "DESC" } interface Paging$1 { /** Number of items to load. */ limit?: number | null; /** Number of items to skip in the current sort order. */ offset?: number | null; } interface QueryCreateRequestsResponse$1 { /** Retrieved Create Requests. */ createRequests?: CreateRequest$1[]; metadata?: PagingMetadata$1; } interface EventsNonNullableFields$1 { eventIds: string[]; } interface AccessRestrictionNonNullableFields$1 { events?: EventsNonNullableFields$1; type: Type$1; } interface GroupDetailsPositionNonNullableFields$1 { x: number; y: number; } interface GroupDetailsNonNullableFields$1 { logoPosition?: GroupDetailsPositionNonNullableFields$1; mobileLogoPosition?: GroupDetailsPositionNonNullableFields$1; } interface PositionNonNullableFields$1 { x: number; y: number; } interface CoverImageNonNullableFields$1 { position?: PositionNonNullableFields$1; mobilePosition?: PositionNonNullableFields$1; } interface OnboardingStepSettingsNonNullableFields$1 { stepKey: StepKey$1; visible: boolean; } interface GroupSettingsNonNullableFields$1 { allowedToInviteMembers: AllowPolicy$1; allowedToApproveJoinRequests: AllowPolicy$1; allowedToAddMembers: AllowPolicy$1; allowedToCreatePosts: AllowPolicy$1; allowedToCommentPosts: AllowPolicy$1; onboardingStepsSettings: OnboardingStepSettingsNonNullableFields$1[]; } interface IdentityNonNullableFields$1 { identityType: IdentityType$1; } interface GroupNonNullableFields$1 { privacyLevel: PrivacyStatus$1; privacyStatus: PrivacyStatus$1; accessRestriction?: AccessRestrictionNonNullableFields$1; details?: GroupDetailsNonNullableFields$1; coverImage?: CoverImageNonNullableFields$1; settings?: GroupSettingsNonNullableFields$1; createdBy?: IdentityNonNullableFields$1; } interface CreateRequestNonNullableFields$1 { group?: GroupNonNullableFields$1; status: RequestStatus$1; } interface ApproveCreateRequestsResponseNonNullableFields$1 { createRequest: CreateRequestNonNullableFields$1[]; } interface RejectCreateRequestsResponseNonNullableFields$1 { createRequest: CreateRequestNonNullableFields$1[]; } interface ListCreateRequestsResponseNonNullableFields$1 { createRequests: CreateRequestNonNullableFields$1[]; } interface QueryCreateRequestsResponseNonNullableFields$1 { createRequests: CreateRequestNonNullableFields$1[]; } /** * >**Notes:** * > + Site owners may set that members are not permitted to create groups in the Wix Groups application settings. * > + In this situation, site members have to submit a Create Request to create a new group. * > + Create Requests can be approved or rejected by an admin. * > + After a Create Request has been approved, the new group is added to the Group List in the Wix Groups app home page. * > + See [Introduction](https://dev.wix.com/api/rest/wix-groups/groups/introduction#wix-groups_groups_introduction_terminology) for more details. */ interface CreateRequest { /** * Create request ID * @readonly */ _id?: string | null; /** Group requested for creation. */ group?: Group; /** * Status of request. * - `PENDING` - Pending request. * - `APPROVED` - Approved request. * - `REJECTED` - Rejected request. * - `CANCELED` - Canceled request. */ status?: RequestStatus; /** Request details. */ requestDetails?: RequestDetails; } interface Group { /** * Group ID. * @readonly */ _id?: string | null; /** A unique part of a group's URL, for example `https:/example.com/groups/slug`. */ slug?: string | null; /** * __Deprecated.__ Use `privacyStatus` instead. * This property will be removed on June 30, 2022. * @deprecated */ privacyLevel?: PrivacyStatus; /** Group privacy status. */ privacyStatus?: PrivacyStatus; /** * __Deprecated.__ Use `name` instead. * This property will be removed on June 30, 2022. * @deprecated */ title?: string | null; /** Group name. */ name?: string | null; /** Group description in DraftJS format. */ description?: string | null; /** Group teaser. */ teaser?: string | null; /** * __Deprecated.__ * For `details.logo`, use `coverImage` instead. * For `details.membersTitle`, `memberTitle` instead. * This property will be removed on June 30, 2022. * @deprecated */ details?: GroupDetails; /** What group members are called, for example `Coworkers`, `Friends`, or `Students`. */ memberTitle?: string | null; /** Cover image. You cannot upload your own cover image. */ coverImage?: CoverImage; /** Group specific settings. Available to the site owners under `Admin Tools` in the dashboard. */ settings?: GroupSettings; /** * Total count of current group members. * @readonly */ membersCount?: number | null; /** * __Deprecated.__ Use `ownerId` instead. * This property will be removed on June 30, 2022. * @readonly * @deprecated */ createdBy?: Identity; /** * Group owner. * @readonly */ ownerId?: string | null; /** * Group creation date and time. * @readonly */ _createdDate?: Date | null; /** * Date and time of the latest group update. * @readonly */ _updatedDate?: Date | null; /** * __Deprecated.__ Use `lastActivityDate` instead. * This property will be removed on June 30, 2022. * @readonly * @deprecated */ recentActivityDate?: Date | null; /** * Date and time of the most recent group activity, for example a post or comment. * @readonly */ lastActivityDate?: Date | null; } declare enum Type { UNKNOWN = "UNKNOWN", ADMIN_APPROVAL = "ADMIN_APPROVAL", PAID_PLANS = "PAID_PLANS", EVENTS = "EVENTS" } interface Logo { /** Logo image ID (for internal use). */ mediaId?: string | null; /** Logo image width. */ width?: number | null; /** Logo image height. */ height?: number | null; } interface Image { /** Image ID (for internal use). */ mediaId?: string | null; /** Image width. */ width?: number | null; /** Image height. */ height?: number | null; } interface Position { /** horizontal coordinate */ x?: number; /** vertical coordinate */ y?: number; } declare enum AllowPolicy { UNKNOWN = "UNKNOWN", OWNER_AND_ADMINS = "OWNER_AND_ADMINS", OWNER = "OWNER", ALL_MEMBERS = "ALL_MEMBERS" } declare enum StepKey { UNKNOWN = "UNKNOWN", CREATE_POST = "CREATE_POST", REACT_TO_POST = "REACT_TO_POST", INVITE_MEMBERS = "INVITE_MEMBERS" } declare enum PrivacyStatus { /** Undefined group privacy status. */ UNKNOWN = "UNKNOWN", /** Anyone can see the group and its content. Anyone can join the group. */ PUBLIC = "PUBLIC", /** Anyone can see the group, but only members can see its content. New members must submit a `Join Group Request`. */ PRIVATE = "PRIVATE", /** Only admins and members can see the group. New members can only be added by other members. */ SECRET = "SECRET" } interface GroupDetails { /** Group logo. You cannot upload your own logo. */ logo?: Logo; /** What group members are called, for example `Coworkers`, `Friends`, or `Students`. */ membersTitle?: string | null; } interface CoverImage { /** Cover image. */ image?: Image; /** Position of the corner of the cover image (or logo). */ position?: Position; /** Position of the corner of the cover image (or logo) for mobile browser. */ mobilePosition?: Position; } interface GroupSettings { /** * __Deprecated.__ Use `allowedToInviteMembers` instead. * Whether regular members are permitted to invite new members. * If `false`, only admins can invite members. Defaults to `true`. * @deprecated */ membersCanInvite?: boolean | null; /** * __Deprecated.__ Use `allowedToApproveJoinRequests` instead. * Whether all group members are permitted to approve join group requests. * If `false`, member approval is limited to the admins. * @deprecated */ membersCanApprove?: boolean | null; /** * __Deprecated.__ Use `welcomeMemberPostEnabled` instead. * This property will be removed on June 30, 2022. * @deprecated */ memberWelcomePostEnabled?: boolean | null; /** Whether a daily post about new members is enabled. */ welcomeMemberPostEnabled?: boolean | null; /** Whether an automatic post about changing the group details is enabled. */ groupDetailsChangedPostEnabled?: boolean | null; /** Whether all members can see the full member list. */ showMemberList?: boolean | null; } interface Identity { /** Member ID of the group creator. See [Members API](https://dev.wix.com/api/rest/members/members/about-wix-members) for more details. */ _id?: string | null; identityType?: IdentityType; } declare enum IdentityType { USER = "USER", MEMBER = "MEMBER" } declare enum RequestStatus { /** Undefined request status. */ UNKNOWN_STATUS = "UNKNOWN_STATUS", /** Pending group request. */ PENDING = "PENDING", /** Approved group request. */ APPROVED = "APPROVED", /** Rejected group request. */ REJECTED = "REJECTED", /** Cancelled group request. */ CANCELLED = "CANCELLED", /** Canceled group request. */ CANCELED = "CANCELED" } interface RequestDetails { /** Reason the request has been rejected. */ rejectionReason?: string | null; } interface ApproveCreateRequestsRequest { /** Create Request IDs to approve. Limited to `100`. */ createRequestIds?: string[]; } interface ApproveCreateRequestsResponse { /** Approved Create Requests. */ createRequest?: CreateRequest[]; } interface RejectCreateRequestsRequest { /** Rejection data. */ rejections?: Rejection[]; } interface Rejection { /** ID of the Create Request to reject. */ createRequestId?: string; /** Rejection reason. Free text displayed to the creator of the rejected Create Request. Limited to 1,000 characters. */ reason?: string | null; } interface RejectCreateRequestsResponse { /** Rejected Create Requests. */ createRequest?: CreateRequest[]; } interface ListCreateRequestsRequest { /** Number of items to load. Maximum `100`. */ limit?: number | null; /** Number of items to skip in the current sort order. */ offset?: number | null; } interface ListCreateRequestsResponse { /** Create Requests. */ createRequests?: CreateRequest[]; metadata?: PagingMetadata; } interface PagingMetadata { /** 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. */ total?: number | null; /** Flag that indicates the server failed to calculate the `total` field. */ tooManyToCount?: boolean | null; } interface QueryCreateRequestsRequest { query?: Query; } interface Query { /** * Filter object in the following format: * `"filter" : { * "fieldName1": "value1", * "fieldName2":{"$operator":"value2"} * }` * Example of operators: `$eq`, `$ne`, `$lt`, `$lte`, `$gt`, `$gte`, `$in`, `$hasSome`, `$hasAll`, `$startsWith`, `$contains` */ filter?: any; /** * Sort object in the following format: * `[{"fieldName":"sortField1","order":"ASC"},{"fieldName":"sortField2","order":"DESC"}]` */ sort?: Sorting[]; /** Paging options to limit and skip the number of items. */ paging?: Paging; /** 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. */ fields?: string[]; /** 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. */ fieldsets?: string[]; } interface Sorting { /** Name of the field to sort by. */ fieldName?: string; /** Sort order. */ order?: SortOrder; } declare enum SortOrder { ASC = "ASC", DESC = "DESC" } interface Paging { /** Number of items to load. */ limit?: number | null; /** Number of items to skip in the current sort order. */ offset?: number | null; } interface QueryCreateRequestsResponse { /** Retrieved Create Requests. */ createRequests?: CreateRequest[]; metadata?: PagingMetadata; } interface EventsNonNullableFields { eventIds: string[]; } interface AccessRestrictionNonNullableFields { events?: EventsNonNullableFields; type: Type; } interface GroupDetailsPositionNonNullableFields { x: number; y: number; } interface GroupDetailsNonNullableFields { logoPosition?: GroupDetailsPositionNonNullableFields; mobileLogoPosition?: GroupDetailsPositionNonNullableFields; } interface PositionNonNullableFields { x: number; y: number; } interface CoverImageNonNullableFields { position?: PositionNonNullableFields; mobilePosition?: PositionNonNullableFields; } interface OnboardingStepSettingsNonNullableFields { stepKey: StepKey; visible: boolean; } interface GroupSettingsNonNullableFields { allowedToInviteMembers: AllowPolicy; allowedToApproveJoinRequests: AllowPolicy; allowedToAddMembers: AllowPolicy; allowedToCreatePosts: AllowPolicy; allowedToCommentPosts: AllowPolicy; onboardingStepsSettings: OnboardingStepSettingsNonNullableFields[]; } interface IdentityNonNullableFields { identityType: IdentityType; } interface GroupNonNullableFields { privacyLevel: PrivacyStatus; privacyStatus: PrivacyStatus; accessRestriction?: AccessRestrictionNonNullableFields; details?: GroupDetailsNonNullableFields; coverImage?: CoverImageNonNullableFields; settings?: GroupSettingsNonNullableFields; createdBy?: IdentityNonNullableFields; } interface CreateRequestNonNullableFields { group?: GroupNonNullableFields; status: RequestStatus; } interface ApproveCreateRequestsResponseNonNullableFields { createRequest: CreateRequestNonNullableFields[]; } interface RejectCreateRequestsResponseNonNullableFields { createRequest: CreateRequestNonNullableFields[]; } interface ListCreateRequestsResponseNonNullableFields { createRequests: CreateRequestNonNullableFields[]; } interface QueryCreateRequestsResponseNonNullableFields { createRequests: CreateRequestNonNullableFields[]; } type __PublicMethodMetaInfo = { getUrl: (context: any) => string; httpMethod: K; path: string; pathParams: M; __requestType: T; __originalRequestType: S; __responseType: Q; __originalResponseType: R; }; declare function approveCreateRequests(): __PublicMethodMetaInfo<'POST', {}, ApproveCreateRequestsRequest, ApproveCreateRequestsRequest$1, ApproveCreateRequestsResponse & ApproveCreateRequestsResponseNonNullableFields, ApproveCreateRequestsResponse$1 & ApproveCreateRequestsResponseNonNullableFields$1>; declare function rejectCreateRequests(): __PublicMethodMetaInfo<'POST', {}, RejectCreateRequestsRequest, RejectCreateRequestsRequest$1, RejectCreateRequestsResponse & RejectCreateRequestsResponseNonNullableFields, RejectCreateRequestsResponse$1 & RejectCreateRequestsResponseNonNullableFields$1>; declare function listCreateRequests(): __PublicMethodMetaInfo<'GET', {}, ListCreateRequestsRequest, ListCreateRequestsRequest$1, ListCreateRequestsResponse & ListCreateRequestsResponseNonNullableFields, ListCreateRequestsResponse$1 & ListCreateRequestsResponseNonNullableFields$1>; declare function queryCreateRequests(): __PublicMethodMetaInfo<'POST', {}, QueryCreateRequestsRequest, QueryCreateRequestsRequest$1, QueryCreateRequestsResponse & QueryCreateRequestsResponseNonNullableFields, QueryCreateRequestsResponse$1 & QueryCreateRequestsResponseNonNullableFields$1>; export { type __PublicMethodMetaInfo, approveCreateRequests, listCreateRequests, queryCreateRequests, rejectCreateRequests };