@puchify/schemas
v0.0.5
Published
Zod schemas and TypeScript types for the [Puchify](https://puchify.com) cloud platform API. Use standalone for runtime validation or as the type foundation for `@puchify/sdk`.
Downloads
487
Readme
@puchify/schemas
Zod schemas and TypeScript types for the Puchify cloud platform API. Use standalone for runtime validation or as the type foundation for @puchify/sdk.
npm install @puchify/schemasQuick start
import { ServerSchema, CreateServerSchema } from "@puchify/schemas"
// Runtime validation
const server = ServerSchema.parse(rawApiResponse)
// Build typed payloads
const input = CreateServerSchema.parse({
name: "web-01",
plan: "c3-small",
region: "ams1",
})Schemas
| Resource | Schemas |
|----------|---------|
| Server | ServerSchema, CreateServerSchema, UpdateServerSchema, ListServersQuerySchema |
| GPU Server | GpuServerSchema, CreateGpuServerSchema, UpdateGpuServerSchema, ListGpuServersQuerySchema |
| Data | DataResourceSchema, CreateDataResourceSchema, UpdateDataResourceSchema, ListDataResourcesQuerySchema |
| Kubernetes | KubernetesClusterSchema, CreateKubernetesClusterSchema, UpdateKubernetesClusterSchema, ListKubernetesClustersQuerySchema |
| Jobs | JobSchema, CreateJobSchema, UpdateJobSchema, ListJobsQuerySchema |
| Object Storage | ObjectStorageBucketSchema, CreateObjectStorageBucketSchema, ListObjectStorageQuerySchema |
| File Storage | FileStorageShareSchema, CreateFileStorageShareSchema, ListFileStorageQuerySchema |
| Load Balancers | LoadBalancerSchema, CreateLoadBalancerSchema, UpdateLoadBalancerSchema, ListLoadBalancersQuerySchema |
| VPN Gateways | VpnGatewaySchema, CreateVpnGatewaySchema, UpdateVpnGatewaySchema, ListVpnGatewaysQuerySchema |
| NAT Gateways | NatGatewaySchema, CreateNatGatewaySchema, UpdateNatGatewaySchema, ListNatGatewaysQuerySchema |
| Domains | DomainSchema, CreateDomainSchema, UpdateDomainSchema, ListDomainsQuerySchema |
| Backups | BackupSchema, CreateBackupSchema, ListBackupsQuerySchema |
| Observability | MetricSchema, AlertSchema, IncidentSchema, ListMetricsQuerySchema, ListAlertsQuerySchema, ListIncidentsQuerySchema |
| Logs | LogEntrySchema, ListLogsQuerySchema |
| Usage | UsageRecordSchema, UsageSummarySchema, ListUsageQuerySchema |
| Settings | TeamSettingsSchema, ProfileSettingsSchema, UpdateTeamSettingsSchema, UpdateProfileSettingsSchema |
| Terminal | TerminalSessionSchema, CreateTerminalSessionSchema |
| Agent | AgentThreadSchema, AgentMessageSchema, ListThreadsQuerySchema, CreateThreadSchema, SendMessageSchema |
| Webhooks | WebhookSchema, WebhookDeliverySchema, CreateWebhookSchema, UpdateWebhookSchema, ListWebhooksQuerySchema |
| Auth / API Keys | ApiKeySchema, CreateApiKeySchema, CreateApiKeyResponseSchema, ListApiKeysQuerySchema |
| Apple Silicon | AppleSiliconSchema, CreateAppleSiliconSchema, UpdateAppleSiliconSchema, ListAppleSiliconQuerySchema |
| Elastic Metal | ElasticMetalSchema, CreateElasticMetalSchema, UpdateElasticMetalSchema, ListElasticMetalQuerySchema |
| Block Storage | BlockStorageSchema, CreateBlockStorageSchema, UpdateBlockStorageSchema, ListBlockStorageQuerySchema |
| Public Gateways | PublicGatewaySchema, CreatePublicGatewaySchema, UpdatePublicGatewaySchema, ListPublicGatewaysQuerySchema |
| VPC | VpcSchema, CreateVpcSchema, UpdateVpcSchema, ListVpcsQuerySchema |
| Edge Services | EdgeServicesSchema, CreateEdgeServicesSchema, UpdateEdgeServicesSchema, ListEdgeServicesQuerySchema |
| Container Registry | ContainerRegistrySchema, CreateContainerRegistrySchema, UpdateContainerRegistrySchema, ListContainerRegistriesQuerySchema |
| Support Cases | SupportCaseSchema, CreateSupportCaseSchema, UpdateSupportCaseSchema, ListSupportCasesQuerySchema |
Each schema has an inferred TypeScript type exported as PascalCase (e.g. Server, CreateServer).
Response envelopes
import { EnvelopeSchema, ListEnvelopeSchema, MetaSchema } from "@puchify/schemas"
const SingleResponse = EnvelopeSchema(ServerSchema)
const ListResponse = ListEnvelopeSchema(ServerSchema)
type Meta = z.infer<typeof MetaSchema>
// { persistence: "synced" | "stale" | "unavailable"
// provider: "connected" | "degraded" | "unavailable"
// next_cursor?: string | null }