/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ import { customerPortalMembersAddMember } from "../funcs/customerPortalMembersAddMember.js"; import { customerPortalMembersListMembers } from "../funcs/customerPortalMembersListMembers.js"; import { customerPortalMembersRemoveMember } from "../funcs/customerPortalMembersRemoveMember.js"; import { customerPortalMembersUpdateMember } from "../funcs/customerPortalMembersUpdateMember.js"; import { ClientSDK, RequestOptions } from "../lib/sdks.js"; import { CustomerPortalMember } from "../models/components/customerportalmember.js"; import { CustomerPortalMemberCreate } from "../models/components/customerportalmembercreate.js"; import { CustomerPortalMembersListMembersRequest, CustomerPortalMembersListMembersResponse, } from "../models/operations/customerportalmemberslistmembers.js"; import { CustomerPortalMembersRemoveMemberRequest } from "../models/operations/customerportalmembersremovemember.js"; import { CustomerPortalMembersUpdateMemberRequest } from "../models/operations/customerportalmembersupdatemember.js"; import { unwrapAsync } from "../types/fp.js"; import { PageIterator, unwrapResultIterator } from "../types/operations.js"; export class PolarMembers extends ClientSDK { /** * List Members * * @remarks * List all members of the customer's team. * * Only available to owners and billing managers of team customers. */ async listMembers( request: CustomerPortalMembersListMembersRequest, options?: RequestOptions, ): Promise< PageIterator > { return unwrapResultIterator(customerPortalMembersListMembers( this, request, options, )); } /** * Add Member * * @remarks * Add a new member to the customer's team. * * Only available to owners and billing managers of team customers. * * Rules: * - Cannot add a member with the owner role (there must be exactly one owner) * - If a member with this email already exists, the existing member is returned */ async addMember( request: CustomerPortalMemberCreate, options?: RequestOptions, ): Promise { return unwrapAsync(customerPortalMembersAddMember( this, request, options, )); } /** * Remove Member * * @remarks * Remove a member from the team. * * Only available to owners and billing managers of team customers. * * Rules: * - Cannot remove yourself * - Cannot remove the only owner */ async removeMember( request: CustomerPortalMembersRemoveMemberRequest, options?: RequestOptions, ): Promise { return unwrapAsync(customerPortalMembersRemoveMember( this, request, options, )); } /** * Update Member * * @remarks * Update a member's role. * * Only available to owners and billing managers of team customers. * * Rules: * - Cannot modify your own role (to prevent self-demotion) * - Customer must have exactly one owner at all times */ async updateMember( request: CustomerPortalMembersUpdateMemberRequest, options?: RequestOptions, ): Promise { return unwrapAsync(customerPortalMembersUpdateMember( this, request, options, )); } }