import { Cluster } from './cluster'; import { NodeCallback } from './utilities'; /** * Contains information about an origin for a role. * * @category Management */ export declare class Origin { /** * The type of this origin. */ type: string; /** * The name of this origin. */ name: string; /** * @internal */ constructor(data: Origin); /** * @internal */ static _fromNsData(data: any): Origin; } /** * Contains information about a role. * * @category Management */ export declare class Role { /** * The name of the role. */ name: string; /** * The bucket this role applies to. */ bucket: string | undefined; /** * The scope this role applies to. */ scope: string | undefined; /** * The collection this role applies to. */ collection: string | undefined; /** * @internal */ constructor(data: Role); /** * @internal */ static _fromNsData(data: any): Role; /** * @internal */ static _toNsStr(role: string | Role): string; } /** * Contains information about a role along with its description. * * @category Management */ export declare class RoleAndDescription extends Role { /** * The user-friendly display name for this role. */ displayName: string; /** * The description of this role. */ description: string; /** * @internal */ constructor(data: RoleAndDescription); /** * @internal */ static _fromNsData(data: any): RoleAndDescription; } /** * Contains information about a role along with its origin. * * @category Management */ export declare class RoleAndOrigin extends Role { /** * The origins for this role. */ origins: Origin[]; /** * @internal */ constructor(data: RoleAndOrigin); /** * @internal */ static _fromNsData(data: any): RoleAndOrigin; } /** * Specifies information about a user. * * @category Management */ export interface IUser { /** * The username of the user. */ username: string; /** * The display name of the user. */ displayName?: string; /** * The groups associated with this user. */ groups?: string[]; /** * The roles associates with this user. */ roles?: (Role | string)[]; /** * The password for this user. */ password?: string; } /** * Contains information about a user. * * @category Management */ export declare class User implements IUser { /** * The username of the user. */ username: string; /** * The display name of the user. */ displayName: string; /** * The groups associated with this user. */ groups: string[]; /** * The roles associates with this user. */ roles: Role[]; /** * This is never populated in a result returned by the server. */ password: undefined; /** * @internal */ constructor(data: User); /** * @internal */ static _fromNsData(data: any): User; /** * @internal */ static _toNsData(user: IUser): any; } /** * Contains information about a user along with some additional meta-data * about that user. * * @category Management */ export declare class UserAndMetadata extends User { /** * The domain this user is part of. */ domain: string; /** * The effective roles that are associated with this user. */ effectiveRoles: RoleAndOrigin[]; /** * The last time the users password was changed. */ passwordChanged: Date; /** * The external groups that this user is associated with. */ externalGroups: string[]; /** * Same as {@link effectiveRoles}, which already contains the roles * including their origins. * * @deprecated Use {@link effectiveRoles} instead. */ get effectiveRolesAndOrigins(): RoleAndOrigin[]; /** * @internal */ constructor(data: UserAndMetadata); /** * @internal */ static _fromNsData(data: any): UserAndMetadata; } /** * Specifies information about a group. * * @category Management */ export interface IGroup { /** * The name of the group. */ name: string; /** * The description for the group. */ description?: string; /** * The roles which are associated with this group. */ roles?: (Role | string)[]; /** * The LDAP group that this group is associated with. */ ldapGroupReference?: string; } /** * Contains information about a group. * * @category Management */ export declare class Group { /** * The name of the group. */ name: string; /** * The description for the group. */ description: string; /** * The roles which are associated with this group. */ roles: Role[]; /** * The LDAP group that this group is associated with. */ ldapGroupReference: string | undefined; /** * @internal */ constructor(data: Group); /** * @internal */ static _fromNsData(data: any): Group; /** * @internal */ static _toNsData(group: IGroup): any; } /** * @category Management */ export interface GetUserOptions { /** * The domain to look in for the user. */ domainName?: string; /** * The timeout for this operation, represented in milliseconds. */ timeout?: number; } /** * @category Management */ export interface GetAllUsersOptions { /** * The domain to look in for users. */ domainName?: string; /** * The timeout for this operation, represented in milliseconds. */ timeout?: number; } /** * @category Management */ export interface UpsertUserOptions { /** * The domain to upsert the user within. */ domainName?: string; /** * The timeout for this operation, represented in milliseconds. */ timeout?: number; } /** * @category Management */ export interface ChangePasswordOptions { /** * The timeout for this operation, represented in milliseconds. */ timeout?: number; } /** * @category Management */ export interface DropUserOptions { /** * The domain to drop the user from. */ domainName?: string; /** * The timeout for this operation, represented in milliseconds. */ timeout?: number; } /** * @category Management */ export interface GetRolesOptions { /** * The timeout for this operation, represented in milliseconds. */ timeout?: number; } /** * @category Management */ export interface GetGroupOptions { /** * The timeout for this operation, represented in milliseconds. */ timeout?: number; } /** * @category Management */ export interface GetAllGroupsOptions { /** * The timeout for this operation, represented in milliseconds. */ timeout?: number; } /** * @category Management */ export interface UpsertGroupOptions { /** * The timeout for this operation, represented in milliseconds. */ timeout?: number; } /** * @category Management */ export interface DropGroupOptions { /** * The timeout for this operation, represented in milliseconds. */ timeout?: number; } /** * UserManager is an interface which enables the management of users, * groups and roles for the cluster. * * @category Management */ export declare class UserManager { private _cluster; /** * @internal */ constructor(cluster: Cluster); private get _http(); /** * Returns a specific user by their username. * * @param username The username of the user to fetch. * @param options Optional parameters for this operation. * @param callback A node-style callback to be invoked after execution. */ getUser(username: string, options?: GetUserOptions, callback?: NodeCallback): Promise; /** * Returns a list of all existing users. * * @param options Optional parameters for this operation. * @param callback A node-style callback to be invoked after execution. */ getAllUsers(options?: GetAllUsersOptions, callback?: NodeCallback): Promise; /** * Creates or updates an existing user. * * @param user The user to update. * @param options Optional parameters for this operation. * @param callback A node-style callback to be invoked after execution. */ upsertUser(user: IUser, options?: UpsertUserOptions, callback?: NodeCallback): Promise; /** * Change password for the currently authenticatd user. * * @param newPassword The new password to be applied. * @param options Optional parameters for this operation. * @param callback A node-style callback to be invoked after execution. */ changePassword(newPassword: string, options?: ChangePasswordOptions, callback?: NodeCallback): Promise; /** * Drops an existing user. * * @param username The username of the user to drop. * @param options Optional parameters for this operation. * @param callback A node-style callback to be invoked after execution. */ dropUser(username: string, options?: DropUserOptions, callback?: NodeCallback): Promise; /** * Returns a list of roles available on the server. * * @param options Optional parameters for this operation. * @param callback A node-style callback to be invoked after execution. */ getRoles(options?: GetRolesOptions, callback?: NodeCallback): Promise; /** * Returns a group by it's name. * * @param groupName The name of the group to retrieve. * @param options Optional parameters for this operation. * @param callback A node-style callback to be invoked after execution. */ getGroup(groupName: string, options?: GetGroupOptions, callback?: NodeCallback): Promise; /** * Returns a list of all existing groups. * * @param options Optional parameters for this operation. * @param callback A node-style callback to be invoked after execution. */ getAllGroups(options?: GetAllGroupsOptions, callback?: NodeCallback): Promise; /** * Creates or updates an existing group. * * @param group The group to update. * @param options Optional parameters for this operation. * @param callback A node-style callback to be invoked after execution. */ upsertGroup(group: IGroup, options?: UpsertGroupOptions, callback?: NodeCallback): Promise; /** * Drops an existing group. * * @param groupName The name of the group to drop. * @param options Optional parameters for this operation. * @param callback A node-style callback to be invoked after execution. */ dropGroup(groupName: string, options?: DropGroupOptions, callback?: NodeCallback): Promise; }