import { GraphqlClient } from './../common/GraphqlClient'; import { ManagementTokenProvider } from './ManagementTokenProvider'; import { ManagementClientOptions } from './types'; import { CommonMessage, Group, PaginatedAuthorizedResources, PaginatedGroups, PaginatedUsers, ResourceType } from '../../types/graphql.v2'; import { DeepPartial } from '../../types/index'; /** * @class GroupsManagementClient Management group * @description This module is used to manage appow groups, and can perform * operations such as group addition, deletion, modification, * group addition/deleting users, group addition/deletion strategies, etc. * * @example * * Please use the module in the following way instead of initializing the module directly: * \`\`\`javascript * import { ManagementClient } from "appow-js-sdk" * const managementClient = new ManagementClient({ * userPoolId: "YOUR_USERPOOL_ID", * secret: "YOUR_USERPOOL_SECRET", * }) * managementClient.groups.list // Get group list * managementClient.groups.create // Create group * managementClient.groups.listUsers // Get the list of grouped users * \`\`\` * * @name GroupsManagementClient */ export declare class GroupsManagementClient { options: ManagementClientOptions; graphqlClient: GraphqlClient; tokenProvider: ManagementTokenProvider; constructor(options: ManagementClientOptions, graphqlClient: GraphqlClient, tokenProvider: ManagementTokenProvider); /** * @name create * @name_zh Create group * @description Create group * * @param {string} code Group unique identifier * @param {string} name Name of group * @param {string} [description] Descriptioon * * @example * managementClient.groups.create('group', 'Group xxx') * * @returns {Promise>} * @memberof GroupsManagementClient */ create(code: string, name: string, description?: string): Promise>; /** * @name delete * @name_zh Delete group * @description Delete group * * @param {string} code Group unique identifier * * @example * managementClient.groups.delete('rolea') * * @returns {Promise} * @memberof GroupsManagementClient */ delete(code: string): Promise; /** * @name update * @name_zh Update group * @description Update group * * @param {string} code Group unique identifier * @param {Object} input * @param {string} [input.name] New name * @param {string} [input.description] New description * @param {string} [input.newCode] New unique identifier * * @example * managementClient.groups.update('group', {newCode: 'newcode'}) * * * @returns {Promise>} * @memberof GroupsManagementClient */ update(code: string, input: { description?: string; newCode?: string; name?: string; }): Promise>; /** * @name detail * @name_zh Get group details * @description Get group details * * @param {string} code Group unique identifier * * @example * managementClient.groups.detail('manager') * * @returns {Promise>} Group details * @memberof GroupsManagementClient */ detail(code: string): Promise>; /** * @name list * @name_zh Get group list * @description Get group list * * @param {number} [page=1] Number of pages * @param {number} [limit=10] Number of items in one page * * @example * * managementClient.groups.list(1, 10) * * @returns {Promise>} * @memberof GroupsManagementClient */ list(page?: number, limit?: number): Promise>; /** * @name deleteMany * @name_zh Delete groups in bulk * @description Delete groups in bulk * * @param {string[]} codeList Group unique identifier list * * @example * managementClient.groups.deleteMany(['groupa', 'groupb']) * * @returns {Promise} * @memberof GroupsManagementClient */ deleteMany(codeList: string[]): Promise; /** * @name listUsers * @name_zh Get the list of grouped users * @description Get the list of grouped users * @param {string} code Group unique identifier * @param {number} [page=1] Number of pages * @param {number} [limit=10] Number of items in one page * * @example * * managementClient.groups.listUsers(code) * * @returns {Promise>} * @memberof GroupsManagementClient */ listUsers(code: string, page?: number, limit?: number): Promise>; /** * @name addUsers * @name_zh Add users * @description Add users * * @param {string} code Group unique identifier * @param {string[]} userIds user ID list * * @example * managementClient.groups.addUsers(code, ['USERID1', 'USERID2']) * * @returns {Promise} * @memberof GroupsManagementClient */ addUsers(code: string, userIds: string[]): Promise; /** * @name removeUsers * @name_zh Remove users * * @description Remove users * * @param {string} code Group unique identifier * @param {string[]} userIds User ID list * @example * managementClient.groups.removeUsers(code, ['USERID1', 'USERID2']) * * @returns {Promise} * @memberof GroupsManagementClient */ removeUsers(code: string, userIds: string[]): Promise; /** * @description Get all resources authorized by the group * * @param code: Group code * @param namespace: Namespace code * @param options.resourceType ResourceType */ listAuthorizedResources(code: string, namespace: string, options?: { resourceType?: ResourceType; }): Promise; }