import { BaseResource } from '@gitbeaker/requester-utils'; import { RequestHelper, endpoint } from '../infrastructure'; import type { GitlabAPIResponse, PaginationRequestOptions, PaginationTypes, ShowExpanded, Sudo, } from '../infrastructure'; import { AccessLevel } from '../constants'; export interface MemberRoleSchema extends Record { id: number; group_id: number; base_access_level: number; read_code: boolean; } export class GroupMemberRoles extends BaseResource { add( groupId: string | number, baseAccessLevel: Exclude< AccessLevel, AccessLevel.NO_ACCESS | AccessLevel.MINIMAL_ACCESS | AccessLevel.ADMIN >, options?: { readCode?: boolean } & Sudo & ShowExpanded, ): Promise> { return RequestHelper.post()(this, endpoint`groups/${groupId}/members`, { baseAccessLevel, ...options, }); } all( groupId: string | number, options: PaginationRequestOptions

& Sudo & ShowExpanded, ): Promise> { return RequestHelper.get()( this, endpoint`groups/${groupId}/member_roles`, options, ); } remove( groupId: string | number, memberRoleId: number, options?: Sudo & ShowExpanded, ): Promise> { return RequestHelper.del()( this, endpoint`groups/${groupId}/member_roles/${memberRoleId}`, options, ); } }