UNPKG

@anthropic-ai/sdk

Version:
208 lines (190 loc) • 5 kB
import { APIResource } from '../../../../core/resource'; import * as WorkspacesAPI from './workspaces'; import { BetaWorkspaceMembersPage } from './workspaces'; import { APIPromise } from '../../../../core/api-promise'; import { Page, type PageParams, PagePromise } from '../../../../core/pagination'; import { RequestOptions } from '../../../../internal/request-options'; import { path } from '../../../../internal/utils/path'; export class Members extends APIResource { /** * Get Workspace Member * * @example * ```ts * const betaWorkspaceMember = * await client.beta.organization.workspaces.members.retrieve( * 'user_id', * { workspace_id: 'workspace_id' }, * ); * ``` */ retrieve( userID: string, params: MemberRetrieveParams, options?: RequestOptions, ): APIPromise<WorkspacesAPI.BetaWorkspaceMember> { const { workspace_id } = params; return this._client.get( path`/v1/organizations/workspaces/${workspace_id}/members/${userID}?beta=true`, options, ); } /** * Update Workspace Member * * @example * ```ts * const betaWorkspaceMember = * await client.beta.organization.workspaces.members.update( * 'user_id', * { * workspace_id: 'workspace_id', * workspace_role: 'workspace_admin', * }, * ); * ``` */ update( userID: string, params: MemberUpdateParams, options?: RequestOptions, ): APIPromise<WorkspacesAPI.BetaWorkspaceMember> { const { workspace_id, ...body } = params; return this._client.post(path`/v1/organizations/workspaces/${workspace_id}/members/${userID}?beta=true`, { body, ...options, }); } /** * List Workspace Members * * @example * ```ts * // Automatically fetches more pages as needed. * for await (const betaWorkspaceMember of client.beta.organization.workspaces.members.list( * 'workspace_id', * )) { * // ... * } * ``` */ list( workspaceID: string, query: MemberListParams | null | undefined = {}, options?: RequestOptions, ): PagePromise<BetaWorkspaceMembersPage, WorkspacesAPI.BetaWorkspaceMember> { return this._client.getAPIList( path`/v1/organizations/workspaces/${workspaceID}/members?beta=true`, Page<WorkspacesAPI.BetaWorkspaceMember>, { query, ...options }, ); } /** * Create Workspace Member * * @example * ```ts * const betaWorkspaceMember = * await client.beta.organization.workspaces.members.add( * 'workspace_id', * { * user_id: 'user_01WCz1FkmYMm4gnmykNKUu3Q', * workspace_role: 'workspace_admin', * }, * ); * ``` */ add( workspaceID: string, body: MemberAddParams, options?: RequestOptions, ): APIPromise<WorkspacesAPI.BetaWorkspaceMember> { return this._client.post(path`/v1/organizations/workspaces/${workspaceID}/members?beta=true`, { body, ...options, }); } /** * Delete Workspace Member * * @example * ```ts * const member = * await client.beta.organization.workspaces.members.remove( * 'user_id', * { workspace_id: 'workspace_id' }, * ); * ``` */ remove( userID: string, params: MemberRemoveParams, options?: RequestOptions, ): APIPromise<MemberRemoveResponse> { const { workspace_id } = params; return this._client.delete( path`/v1/organizations/workspaces/${workspace_id}/members/${userID}?beta=true`, options, ); } } export interface MemberRemoveResponse { /** * Deleted object type. * * For Workspace Members, this is always `"workspace_member_deleted"`. */ type: 'workspace_member_deleted'; /** * ID of the User. */ user_id: string; /** * ID of the Workspace. */ workspace_id: string; } export interface MemberRetrieveParams { /** * ID of the Workspace. */ workspace_id: string; } export interface MemberUpdateParams { /** * Path param: ID of the Workspace. */ workspace_id: string; /** * Body param: New workspace role for the User. */ workspace_role: WorkspacesAPI.BetaWorkspaceRole; } export interface MemberListParams extends PageParams {} export interface MemberAddParams { /** * ID of the User. */ user_id: string; /** * Role of the new Workspace Member. Cannot be `workspace_billing`. */ workspace_role: WorkspacesAPI.BetaNoBillingWorkspaceRole; } export interface MemberRemoveParams { /** * ID of the Workspace. */ workspace_id: string; } export declare namespace Members { export { type MemberRemoveResponse as MemberRemoveResponse, type MemberRetrieveParams as MemberRetrieveParams, type MemberUpdateParams as MemberUpdateParams, type MemberListParams as MemberListParams, type MemberAddParams as MemberAddParams, type MemberRemoveParams as MemberRemoveParams, }; } export { type BetaWorkspaceMembersPage };