/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ import * as z from "zod/v4-mini"; import { remap as remap$ } from "../../lib/primitives.js"; import { ClosedEnum } from "../../types/enums.js"; /** * The role of the member within the customer. To assign or transfer ownership, use the member update endpoint. */ export const Role = { Member: "member", BillingManager: "billing_manager", } as const; /** * The role of the member within the customer. To assign or transfer ownership, use the member update endpoint. */ export type Role = ClosedEnum; /** * Schema for creating a new member. */ export type MemberCreate = { /** * The ID of the customer this member belongs to. */ customerId: string; /** * The email address of the member. */ email: string; name?: string | null | undefined; /** * The ID of the member in your system. This must be unique within the customer. */ externalId?: string | null | undefined; /** * The role of the member within the customer. To assign or transfer ownership, use the member update endpoint. */ role?: Role | undefined; }; /** @internal */ export const Role$outboundSchema: z.ZodMiniEnum = z.enum(Role); /** @internal */ export type MemberCreate$Outbound = { customer_id: string; email: string; name?: string | null | undefined; external_id?: string | null | undefined; role: string; }; /** @internal */ export const MemberCreate$outboundSchema: z.ZodMiniType< MemberCreate$Outbound, MemberCreate > = z.pipe( z.object({ customerId: z.string(), email: z.string(), name: z.optional(z.nullable(z.string())), externalId: z.optional(z.nullable(z.string())), role: z._default(Role$outboundSchema, "member"), }), z.transform((v) => { return remap$(v, { customerId: "customer_id", externalId: "external_id", }); }), ); export function memberCreateToJSON(memberCreate: MemberCreate): string { return JSON.stringify(MemberCreate$outboundSchema.parse(memberCreate)); }