/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. * @generated-id: 4d8ce69828b1 */ import * as z from "zod/v4"; import { safeParse } from "../lib/schemas.js"; import { ClosedEnum } from "../types/enums.js"; import { Result as SafeParseResult } from "../types/fp.js"; import { SDKValidationError } from "./errors/sdkvalidationerror.js"; import { WorkspaceRole, WorkspaceRole$inboundSchema } from "./workspacerole.js"; export const WorkspaceInvitationPreviewKind = { Email: "email", Link: "link", } as const; export type WorkspaceInvitationPreviewKind = ClosedEnum< typeof WorkspaceInvitationPreviewKind >; export type WorkspaceInvitationPreviewWorkspace = { /** * Unique identifier for the workspace. */ id: string; name: string; logoUrl: string | null; }; export type Inviter = { name: string; image: string | null; }; export const WorkspaceInvitationPreviewState = { Active: "active", Accepted: "accepted", Expired: "expired", Revoked: "revoked", } as const; export type WorkspaceInvitationPreviewState = ClosedEnum< typeof WorkspaceInvitationPreviewState >; export type WorkspaceInvitationPreview = { kind: WorkspaceInvitationPreviewKind; workspace: WorkspaceInvitationPreviewWorkspace; inviter: Inviter | null; /** * Role for workspace-scoped service accounts */ role: WorkspaceRole; expiresAt: Date; state: WorkspaceInvitationPreviewState; emailHint: string | null; }; /** @internal */ export const WorkspaceInvitationPreviewKind$inboundSchema: z.ZodEnum< typeof WorkspaceInvitationPreviewKind > = z.enum(WorkspaceInvitationPreviewKind); /** @internal */ export const WorkspaceInvitationPreviewWorkspace$inboundSchema: z.ZodType< WorkspaceInvitationPreviewWorkspace, unknown > = z.object({ id: z.string(), name: z.string(), logoUrl: z.nullable(z.string()), }); export function workspaceInvitationPreviewWorkspaceFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => WorkspaceInvitationPreviewWorkspace$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'WorkspaceInvitationPreviewWorkspace' from JSON`, ); } /** @internal */ export const Inviter$inboundSchema: z.ZodType = z.object({ name: z.string(), image: z.nullable(z.string()), }); export function inviterFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => Inviter$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'Inviter' from JSON`, ); } /** @internal */ export const WorkspaceInvitationPreviewState$inboundSchema: z.ZodEnum< typeof WorkspaceInvitationPreviewState > = z.enum(WorkspaceInvitationPreviewState); /** @internal */ export const WorkspaceInvitationPreview$inboundSchema: z.ZodType< WorkspaceInvitationPreview, unknown > = z.object({ kind: WorkspaceInvitationPreviewKind$inboundSchema, workspace: z.lazy(() => WorkspaceInvitationPreviewWorkspace$inboundSchema), inviter: z.nullable(z.lazy(() => Inviter$inboundSchema)), role: WorkspaceRole$inboundSchema, expiresAt: z.iso.datetime({ offset: true }).transform(v => new Date(v)), state: WorkspaceInvitationPreviewState$inboundSchema, emailHint: z.nullable(z.string()), }); export function workspaceInvitationPreviewFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => WorkspaceInvitationPreview$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'WorkspaceInvitationPreview' from JSON`, ); }