/// declare module PlayFabGroupsModule { export interface IPlayFabGroups { /** * Accepts an outstanding invitation to to join a group * https://docs.microsoft.com/rest/api/playfab/groups/groups/acceptgroupapplication */ AcceptGroupApplication( entityToken: string, request?: PlayFabGroupsModels.AcceptGroupApplicationRequest ): Promise; /** * Accepts an invitation to join a group * https://docs.microsoft.com/rest/api/playfab/groups/groups/acceptgroupinvitation */ AcceptGroupInvitation( entityToken: string, request?: PlayFabGroupsModels.AcceptGroupInvitationRequest ): Promise; /** * Adds members to a group or role. * https://docs.microsoft.com/rest/api/playfab/groups/groups/addmembers */ AddMembers( entityToken: string, request?: PlayFabGroupsModels.AddMembersRequest ): Promise; /** * Applies to join a group * https://docs.microsoft.com/rest/api/playfab/groups/groups/applytogroup */ ApplyToGroup( entityToken: string, request?: PlayFabGroupsModels.ApplyToGroupRequest ): Promise; /** * Blocks a list of entities from joining a group. * https://docs.microsoft.com/rest/api/playfab/groups/groups/blockentity */ BlockEntity( entityToken: string, request?: PlayFabGroupsModels.BlockEntityRequest ): Promise; /** * Changes the role membership of a list of entities from one role to another. * https://docs.microsoft.com/rest/api/playfab/groups/groups/changememberrole */ ChangeMemberRole( entityToken: string, request?: PlayFabGroupsModels.ChangeMemberRoleRequest ): Promise; /** * Creates a new group. * https://docs.microsoft.com/rest/api/playfab/groups/groups/creategroup */ CreateGroup( entityToken: string, request?: PlayFabGroupsModels.CreateGroupRequest ): Promise; /** * Creates a new group role. * https://docs.microsoft.com/rest/api/playfab/groups/groups/createrole */ CreateRole( entityToken: string, request?: PlayFabGroupsModels.CreateGroupRoleRequest ): Promise; /** * Deletes a group and all roles, invitations, join requests, and blocks associated with it. * https://docs.microsoft.com/rest/api/playfab/groups/groups/deletegroup */ DeleteGroup( entityToken: string, request?: PlayFabGroupsModels.DeleteGroupRequest ): Promise; /** * Deletes an existing role in a group. * https://docs.microsoft.com/rest/api/playfab/groups/groups/deleterole */ DeleteRole( entityToken: string, request?: PlayFabGroupsModels.DeleteRoleRequest ): Promise; /** * Gets information about a group and its roles * https://docs.microsoft.com/rest/api/playfab/groups/groups/getgroup */ GetGroup( entityToken: string, request?: PlayFabGroupsModels.GetGroupRequest ): Promise; /** * Invites a player to join a group * https://docs.microsoft.com/rest/api/playfab/groups/groups/invitetogroup */ InviteToGroup( entityToken: string, request?: PlayFabGroupsModels.InviteToGroupRequest ): Promise; /** * Checks to see if an entity is a member of a group or role within the group * https://docs.microsoft.com/rest/api/playfab/groups/groups/ismember */ IsMember( entityToken: string, request?: PlayFabGroupsModels.IsMemberRequest ): Promise; /** * Lists all outstanding requests to join a group * https://docs.microsoft.com/rest/api/playfab/groups/groups/listgroupapplications */ ListGroupApplications( entityToken: string, request?: PlayFabGroupsModels.ListGroupApplicationsRequest ): Promise; /** * Lists all entities blocked from joining a group * https://docs.microsoft.com/rest/api/playfab/groups/groups/listgroupblocks */ ListGroupBlocks( entityToken: string, request?: PlayFabGroupsModels.ListGroupBlocksRequest ): Promise; /** * Lists all outstanding invitations for a group * https://docs.microsoft.com/rest/api/playfab/groups/groups/listgroupinvitations */ ListGroupInvitations( entityToken: string, request?: PlayFabGroupsModels.ListGroupInvitationsRequest ): Promise; /** * Lists all members for a group * https://docs.microsoft.com/rest/api/playfab/groups/groups/listgroupmembers */ ListGroupMembers( entityToken: string, request?: PlayFabGroupsModels.ListGroupMembersRequest ): Promise; /** * Lists all groups and roles for an entity * https://docs.microsoft.com/rest/api/playfab/groups/groups/listmembership */ ListMembership( entityToken: string, request?: PlayFabGroupsModels.ListMembershipRequest ): Promise; /** * Lists all outstanding invitations and group applications for an entity * https://docs.microsoft.com/rest/api/playfab/groups/groups/listmembershipopportunities */ ListMembershipOpportunities( entityToken: string, request?: PlayFabGroupsModels.ListMembershipOpportunitiesRequest ): Promise; /** * Removes an application to join a group * https://docs.microsoft.com/rest/api/playfab/groups/groups/removegroupapplication */ RemoveGroupApplication( entityToken: string, request?: PlayFabGroupsModels.RemoveGroupApplicationRequest ): Promise; /** * Removes an invitation join a group * https://docs.microsoft.com/rest/api/playfab/groups/groups/removegroupinvitation */ RemoveGroupInvitation( entityToken: string, request?: PlayFabGroupsModels.RemoveGroupInvitationRequest ): Promise; /** * Removes members from a group. * https://docs.microsoft.com/rest/api/playfab/groups/groups/removemembers */ RemoveMembers( entityToken: string, request?: PlayFabGroupsModels.RemoveMembersRequest ): Promise; /** * Unblocks a list of entities from joining a group * https://docs.microsoft.com/rest/api/playfab/groups/groups/unblockentity */ UnblockEntity( entityToken: string, request?: PlayFabGroupsModels.UnblockEntityRequest ): Promise; /** * Updates non-membership data about a group. * https://docs.microsoft.com/rest/api/playfab/groups/groups/updategroup */ UpdateGroup( entityToken: string, request?: PlayFabGroupsModels.UpdateGroupRequest ): Promise; /** * Updates metadata about a role. * https://docs.microsoft.com/rest/api/playfab/groups/groups/updaterole */ UpdateRole( entityToken: string, request?: PlayFabGroupsModels.UpdateGroupRoleRequest ): Promise; } } declare module PlayFabGroupsModels { export interface AcceptGroupApplicationRequest extends PlayFabModule.IPlayFabRequestCommon { /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */ CustomTags?: { [key: string]: string | undefined }; /** * Optional. Type of the entity to accept as. If specified, must be the same entity as the claimant or an entity that is a * child of the claimant entity. Defaults to the claimant entity. */ Entity: EntityKey; /** The identifier of the group */ Group: EntityKey; } export interface AcceptGroupInvitationRequest extends PlayFabModule.IPlayFabRequestCommon { /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */ CustomTags?: { [key: string]: string | undefined }; /** The entity to perform this action on. */ Entity?: EntityKey; /** The identifier of the group */ Group: EntityKey; } export interface AddMembersRequest extends PlayFabModule.IPlayFabRequestCommon { /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */ CustomTags?: { [key: string]: string | undefined }; /** The identifier of the group */ Group: EntityKey; /** List of entities to add to the group. Only entities of type title_player_account and character may be added to groups. */ Members: EntityKey[]; /** * Optional: The ID of the existing role to add the entities to. If this is not specified, the default member role for the * group will be used. Role IDs must be between 1 and 64 characters long. */ RoleId?: string; } export interface ApplyToGroupRequest extends PlayFabModule.IPlayFabRequestCommon { /** Optional, default true. Automatically accept an outstanding invitation if one exists instead of creating an application */ AutoAcceptOutstandingInvite?: boolean; /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */ CustomTags?: { [key: string]: string | undefined }; /** The entity to perform this action on. */ Entity?: EntityKey; /** The identifier of the group */ Group: EntityKey; } export interface ApplyToGroupResponse extends PlayFabModule.IPlayFabResultCommon { /** Type of entity that requested membership */ Entity?: EntityWithLineage; /** When the application to join will expire and be deleted */ Expires: string; /** ID of the group that the entity requesting membership to */ Group?: EntityKey; } export interface BlockEntityRequest extends PlayFabModule.IPlayFabRequestCommon { /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */ CustomTags?: { [key: string]: string | undefined }; /** The entity to perform this action on. */ Entity: EntityKey; /** The identifier of the group */ Group: EntityKey; } export interface ChangeMemberRoleRequest extends PlayFabModule.IPlayFabRequestCommon { /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */ CustomTags?: { [key: string]: string | undefined }; /** * The ID of the role that the entities will become a member of. This must be an existing role. Role IDs must be between 1 * and 64 characters long. */ DestinationRoleId?: string; /** The identifier of the group */ Group: EntityKey; /** * List of entities to move between roles in the group. All entities in this list must be members of the group and origin * role. */ Members: EntityKey[]; /** The ID of the role that the entities currently are a member of. Role IDs must be between 1 and 64 characters long. */ OriginRoleId: string; } export interface CreateGroupRequest extends PlayFabModule.IPlayFabRequestCommon { /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */ CustomTags?: { [key: string]: string | undefined }; /** The entity to perform this action on. */ Entity?: EntityKey; /** The name of the group. This is unique at the title level by default. */ GroupName: string; } export interface CreateGroupResponse extends PlayFabModule.IPlayFabResultCommon { /** The ID of the administrator role for the group. */ AdminRoleId?: string; /** The server date and time the group was created. */ Created: string; /** The identifier of the group */ Group: EntityKey; /** The name of the group. */ GroupName?: string; /** The ID of the default member role for the group. */ MemberRoleId?: string; /** The current version of the profile, can be used for concurrency control during updates. */ ProfileVersion: number; /** The list of roles and names that belong to the group. */ Roles?: { [key: string]: string | undefined }; } export interface CreateGroupRoleRequest extends PlayFabModule.IPlayFabRequestCommon { /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */ CustomTags?: { [key: string]: string | undefined }; /** The identifier of the group */ Group: EntityKey; /** * The ID of the role. This must be unique within the group and cannot be changed. Role IDs must be between 1 and 64 * characters long. */ RoleId: string; /** * The name of the role. This must be unique within the group and can be changed later. Role names must be between 1 and * 100 characters long */ RoleName: string; } export interface CreateGroupRoleResponse extends PlayFabModule.IPlayFabResultCommon { /** The current version of the group profile, can be used for concurrency control during updates. */ ProfileVersion: number; /** ID for the role */ RoleId?: string; /** The name of the role */ RoleName?: string; } export interface DeleteGroupRequest extends PlayFabModule.IPlayFabRequestCommon { /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */ CustomTags?: { [key: string]: string | undefined }; /** ID of the group or role to remove */ Group: EntityKey; } export interface DeleteRoleRequest extends PlayFabModule.IPlayFabRequestCommon { /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */ CustomTags?: { [key: string]: string | undefined }; /** The identifier of the group */ Group: EntityKey; /** The ID of the role to delete. Role IDs must be between 1 and 64 characters long. */ RoleId?: string; } export interface EmptyResponse extends PlayFabModule.IPlayFabResultCommon {} export interface EntityKey { /** Unique ID of the entity. */ Id: string; /** Entity type. See https://docs.microsoft.com/gaming/playfab/features/data/entities/available-built-in-entity-types */ Type?: string; } export interface EntityMemberRole { /** The list of members in the role */ Members?: EntityWithLineage[]; /** The ID of the role. */ RoleId?: string; /** The name of the role */ RoleName?: string; } export interface EntityWithLineage { /** The entity key for the specified entity */ Key?: EntityKey; /** Dictionary of entity keys for related entities. Dictionary key is entity type. */ Lineage?: { [key: string]: EntityKey }; } export interface GetGroupRequest extends PlayFabModule.IPlayFabRequestCommon { /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */ CustomTags?: { [key: string]: string | undefined }; /** The identifier of the group */ Group?: EntityKey; /** The full name of the group */ GroupName?: string; } export interface GetGroupResponse extends PlayFabModule.IPlayFabResultCommon { /** The ID of the administrator role for the group. */ AdminRoleId?: string; /** The server date and time the group was created. */ Created: string; /** The identifier of the group */ Group: EntityKey; /** The name of the group. */ GroupName?: string; /** The ID of the default member role for the group. */ MemberRoleId?: string; /** The current version of the profile, can be used for concurrency control during updates. */ ProfileVersion: number; /** The list of roles and names that belong to the group. */ Roles?: { [key: string]: string | undefined }; } export interface GroupApplication { /** Type of entity that requested membership */ Entity?: EntityWithLineage; /** When the application to join will expire and be deleted */ Expires: string; /** ID of the group that the entity requesting membership to */ Group?: EntityKey; } export interface GroupBlock { /** The entity that is blocked */ Entity?: EntityWithLineage; /** ID of the group that the entity is blocked from */ Group: EntityKey; } export interface GroupInvitation { /** When the invitation will expire and be deleted */ Expires: string; /** The group that the entity invited to */ Group?: EntityKey; /** The entity that created the invitation */ InvitedByEntity?: EntityWithLineage; /** The entity that is invited */ InvitedEntity?: EntityWithLineage; /** ID of the role in the group to assign the user to. */ RoleId?: string; } export interface GroupRole { /** ID for the role */ RoleId?: string; /** The name of the role */ RoleName?: string; } export interface GroupWithRoles { /** ID for the group */ Group?: EntityKey; /** The name of the group */ GroupName?: string; /** The current version of the profile, can be used for concurrency control during updates. */ ProfileVersion: number; /** The list of roles within the group */ Roles?: GroupRole[]; } export interface InviteToGroupRequest extends PlayFabModule.IPlayFabRequestCommon { /** Optional, default true. Automatically accept an application if one exists instead of creating an invitation */ AutoAcceptOutstandingApplication?: boolean; /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */ CustomTags?: { [key: string]: string | undefined }; /** The entity to perform this action on. */ Entity: EntityKey; /** The identifier of the group */ Group: EntityKey; /** * Optional. ID of an existing a role in the group to assign the user to. The group's default member role is used if this * is not specified. Role IDs must be between 1 and 64 characters long. */ RoleId?: string; } export interface InviteToGroupResponse extends PlayFabModule.IPlayFabResultCommon { /** When the invitation will expire and be deleted */ Expires: string; /** The group that the entity invited to */ Group?: EntityKey; /** The entity that created the invitation */ InvitedByEntity?: EntityWithLineage; /** The entity that is invited */ InvitedEntity?: EntityWithLineage; /** ID of the role in the group to assign the user to. */ RoleId?: string; } export interface IsMemberRequest extends PlayFabModule.IPlayFabRequestCommon { /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */ CustomTags?: { [key: string]: string | undefined }; /** The entity to perform this action on. */ Entity: EntityKey; /** The identifier of the group */ Group: EntityKey; /** * Optional: ID of the role to check membership of. Defaults to any role (that is, check to see if the entity is a member * of the group in any capacity) if not specified. */ RoleId?: string; } export interface IsMemberResponse extends PlayFabModule.IPlayFabResultCommon { /** A value indicating whether or not the entity is a member. */ IsMember: boolean; } export interface ListGroupApplicationsRequest extends PlayFabModule.IPlayFabRequestCommon { /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */ CustomTags?: { [key: string]: string | undefined }; /** The identifier of the group */ Group: EntityKey; } export interface ListGroupApplicationsResponse extends PlayFabModule.IPlayFabResultCommon { /** The requested list of applications to the group. */ Applications?: GroupApplication[]; } export interface ListGroupBlocksRequest extends PlayFabModule.IPlayFabRequestCommon { /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */ CustomTags?: { [key: string]: string | undefined }; /** The identifier of the group */ Group: EntityKey; } export interface ListGroupBlocksResponse extends PlayFabModule.IPlayFabResultCommon { /** The requested list blocked entities. */ BlockedEntities?: GroupBlock[]; } export interface ListGroupInvitationsRequest extends PlayFabModule.IPlayFabRequestCommon { /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */ CustomTags?: { [key: string]: string | undefined }; /** The identifier of the group */ Group: EntityKey; } export interface ListGroupInvitationsResponse extends PlayFabModule.IPlayFabResultCommon { /** The requested list of group invitations. */ Invitations?: GroupInvitation[]; } export interface ListGroupMembersRequest extends PlayFabModule.IPlayFabRequestCommon { /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */ CustomTags?: { [key: string]: string | undefined }; /** ID of the group to list the members and roles for */ Group: EntityKey; } export interface ListGroupMembersResponse extends PlayFabModule.IPlayFabResultCommon { /** The requested list of roles and member entity IDs. */ Members?: EntityMemberRole[]; } export interface ListMembershipOpportunitiesRequest extends PlayFabModule.IPlayFabRequestCommon { /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */ CustomTags?: { [key: string]: string | undefined }; /** The entity to perform this action on. */ Entity?: EntityKey; } export interface ListMembershipOpportunitiesResponse extends PlayFabModule.IPlayFabResultCommon { /** The requested list of group applications. */ Applications?: GroupApplication[]; /** The requested list of group invitations. */ Invitations?: GroupInvitation[]; } export interface ListMembershipRequest extends PlayFabModule.IPlayFabRequestCommon { /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */ CustomTags?: { [key: string]: string | undefined }; /** The entity to perform this action on. */ Entity?: EntityKey; } export interface ListMembershipResponse extends PlayFabModule.IPlayFabResultCommon { /** The list of groups */ Groups?: GroupWithRoles[]; } type OperationTypes = "Created" | "Updated" | "Deleted" | "None"; export interface RemoveGroupApplicationRequest extends PlayFabModule.IPlayFabRequestCommon { /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */ CustomTags?: { [key: string]: string | undefined }; /** The entity to perform this action on. */ Entity: EntityKey; /** The identifier of the group */ Group: EntityKey; } export interface RemoveGroupInvitationRequest extends PlayFabModule.IPlayFabRequestCommon { /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */ CustomTags?: { [key: string]: string | undefined }; /** The entity to perform this action on. */ Entity: EntityKey; /** The identifier of the group */ Group: EntityKey; } export interface RemoveMembersRequest extends PlayFabModule.IPlayFabRequestCommon { /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */ CustomTags?: { [key: string]: string | undefined }; /** The identifier of the group */ Group: EntityKey; /** List of entities to remove */ Members: EntityKey[]; /** The ID of the role to remove the entities from. */ RoleId?: string; } export interface UnblockEntityRequest extends PlayFabModule.IPlayFabRequestCommon { /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */ CustomTags?: { [key: string]: string | undefined }; /** The entity to perform this action on. */ Entity: EntityKey; /** The identifier of the group */ Group: EntityKey; } export interface UpdateGroupRequest extends PlayFabModule.IPlayFabRequestCommon { /** Optional: the ID of an existing role to set as the new administrator role for the group */ AdminRoleId?: string; /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */ CustomTags?: { [key: string]: string | undefined }; /** * Optional field used for concurrency control. By specifying the previously returned value of ProfileVersion from the * GetGroup API, you can ensure that the group data update will only be performed if the group has not been updated by any * other clients since the version you last loaded. */ ExpectedProfileVersion?: number; /** The identifier of the group */ Group: EntityKey; /** Optional: the new name of the group */ GroupName?: string; /** Optional: the ID of an existing role to set as the new member role for the group */ MemberRoleId?: string; } export interface UpdateGroupResponse extends PlayFabModule.IPlayFabResultCommon { /** Optional reason to explain why the operation was the result that it was. */ OperationReason?: string; /** New version of the group data. */ ProfileVersion: number; /** Indicates which operation was completed, either Created, Updated, Deleted or None. */ SetResult?: string; } export interface UpdateGroupRoleRequest extends PlayFabModule.IPlayFabRequestCommon { /** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */ CustomTags?: { [key: string]: string | undefined }; /** * Optional field used for concurrency control. By specifying the previously returned value of ProfileVersion from the * GetGroup API, you can ensure that the group data update will only be performed if the group has not been updated by any * other clients since the version you last loaded. */ ExpectedProfileVersion?: number; /** The identifier of the group */ Group: EntityKey; /** ID of the role to update. Role IDs must be between 1 and 64 characters long. */ RoleId?: string; /** The new name of the role */ RoleName: string; } export interface UpdateGroupRoleResponse extends PlayFabModule.IPlayFabResultCommon { /** Optional reason to explain why the operation was the result that it was. */ OperationReason?: string; /** New version of the role data. */ ProfileVersion: number; /** Indicates which operation was completed, either Created, Updated, Deleted or None. */ SetResult?: string; } }