/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ import * as z from "zod/v3"; import { remap as remap$ } from "../../lib/primitives.js"; 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"; export type GetExternalUserBudgetsRequest = { id: string; orgId?: string | undefined; }; export const GetExternalUserBudgetsScope = { Org: "org", Apikey: "apikey", User: "user", Team: "team", ExternalUser: "external_user", UserDefault: "user_default", TeamDefault: "team_default", ExternalUserDefault: "external_user_default", } as const; export type GetExternalUserBudgetsScope = ClosedEnum< typeof GetExternalUserBudgetsScope >; export const GetExternalUserBudgetsOwner = { Cluster: "cluster", Org: "org", } as const; export type GetExternalUserBudgetsOwner = ClosedEnum< typeof GetExternalUserBudgetsOwner >; export const GetExternalUserBudgetsPeriod = { Daily: "daily", Weekly: "weekly", Monthly: "monthly", } as const; export type GetExternalUserBudgetsPeriod = ClosedEnum< typeof GetExternalUserBudgetsPeriod >; export const GetExternalUserBudgetsAction = { Alert: "alert", Block: "block", } as const; export type GetExternalUserBudgetsAction = ClosedEnum< typeof GetExternalUserBudgetsAction >; export type GetExternalUserBudgetsThresholds = { pct: number; action: GetExternalUserBudgetsAction; }; export const GetExternalUserBudgetsStatus = { Ok: "ok", Blocked: "blocked", } as const; export type GetExternalUserBudgetsStatus = ClosedEnum< typeof GetExternalUserBudgetsStatus >; export type GetExternalUserBudgetsSpend = { /** * Current period bucket, e.g. 2026-07 / 2026-W28 / 2026-07-07 */ window: string; /** * Live spend this window, major currency units */ costSpent: number; limit: number; pct: number; status: GetExternalUserBudgetsStatus; }; export type GetExternalUserBudgetsData = { id: string; scope: GetExternalUserBudgetsScope; scopeId: string; scopeOrgId: string | null; owner: GetExternalUserBudgetsOwner; period: GetExternalUserBudgetsPeriod; limit: number; thresholds: Array; alertWebhookUrl: string | null; spend: GetExternalUserBudgetsSpend; }; /** * OK */ export type GetExternalUserBudgetsResponseBody = { object: "list"; data: Array; }; /** @internal */ export const GetExternalUserBudgetsRequest$inboundSchema: z.ZodType< GetExternalUserBudgetsRequest, z.ZodTypeDef, unknown > = z.object({ id: z.string(), org_id: z.string().optional(), }).transform((v) => { return remap$(v, { "org_id": "orgId", }); }); /** @internal */ export type GetExternalUserBudgetsRequest$Outbound = { id: string; org_id?: string | undefined; }; /** @internal */ export const GetExternalUserBudgetsRequest$outboundSchema: z.ZodType< GetExternalUserBudgetsRequest$Outbound, z.ZodTypeDef, GetExternalUserBudgetsRequest > = z.object({ id: z.string(), orgId: z.string().optional(), }).transform((v) => { return remap$(v, { orgId: "org_id", }); }); export function getExternalUserBudgetsRequestToJSON( getExternalUserBudgetsRequest: GetExternalUserBudgetsRequest, ): string { return JSON.stringify( GetExternalUserBudgetsRequest$outboundSchema.parse( getExternalUserBudgetsRequest, ), ); } export function getExternalUserBudgetsRequestFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => GetExternalUserBudgetsRequest$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'GetExternalUserBudgetsRequest' from JSON`, ); } /** @internal */ export const GetExternalUserBudgetsScope$inboundSchema: z.ZodNativeEnum< typeof GetExternalUserBudgetsScope > = z.nativeEnum(GetExternalUserBudgetsScope); /** @internal */ export const GetExternalUserBudgetsScope$outboundSchema: z.ZodNativeEnum< typeof GetExternalUserBudgetsScope > = GetExternalUserBudgetsScope$inboundSchema; /** @internal */ export const GetExternalUserBudgetsOwner$inboundSchema: z.ZodNativeEnum< typeof GetExternalUserBudgetsOwner > = z.nativeEnum(GetExternalUserBudgetsOwner); /** @internal */ export const GetExternalUserBudgetsOwner$outboundSchema: z.ZodNativeEnum< typeof GetExternalUserBudgetsOwner > = GetExternalUserBudgetsOwner$inboundSchema; /** @internal */ export const GetExternalUserBudgetsPeriod$inboundSchema: z.ZodNativeEnum< typeof GetExternalUserBudgetsPeriod > = z.nativeEnum(GetExternalUserBudgetsPeriod); /** @internal */ export const GetExternalUserBudgetsPeriod$outboundSchema: z.ZodNativeEnum< typeof GetExternalUserBudgetsPeriod > = GetExternalUserBudgetsPeriod$inboundSchema; /** @internal */ export const GetExternalUserBudgetsAction$inboundSchema: z.ZodNativeEnum< typeof GetExternalUserBudgetsAction > = z.nativeEnum(GetExternalUserBudgetsAction); /** @internal */ export const GetExternalUserBudgetsAction$outboundSchema: z.ZodNativeEnum< typeof GetExternalUserBudgetsAction > = GetExternalUserBudgetsAction$inboundSchema; /** @internal */ export const GetExternalUserBudgetsThresholds$inboundSchema: z.ZodType< GetExternalUserBudgetsThresholds, z.ZodTypeDef, unknown > = z.object({ pct: z.number().int(), action: GetExternalUserBudgetsAction$inboundSchema, }); /** @internal */ export type GetExternalUserBudgetsThresholds$Outbound = { pct: number; action: string; }; /** @internal */ export const GetExternalUserBudgetsThresholds$outboundSchema: z.ZodType< GetExternalUserBudgetsThresholds$Outbound, z.ZodTypeDef, GetExternalUserBudgetsThresholds > = z.object({ pct: z.number().int(), action: GetExternalUserBudgetsAction$outboundSchema, }); export function getExternalUserBudgetsThresholdsToJSON( getExternalUserBudgetsThresholds: GetExternalUserBudgetsThresholds, ): string { return JSON.stringify( GetExternalUserBudgetsThresholds$outboundSchema.parse( getExternalUserBudgetsThresholds, ), ); } export function getExternalUserBudgetsThresholdsFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => GetExternalUserBudgetsThresholds$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'GetExternalUserBudgetsThresholds' from JSON`, ); } /** @internal */ export const GetExternalUserBudgetsStatus$inboundSchema: z.ZodNativeEnum< typeof GetExternalUserBudgetsStatus > = z.nativeEnum(GetExternalUserBudgetsStatus); /** @internal */ export const GetExternalUserBudgetsStatus$outboundSchema: z.ZodNativeEnum< typeof GetExternalUserBudgetsStatus > = GetExternalUserBudgetsStatus$inboundSchema; /** @internal */ export const GetExternalUserBudgetsSpend$inboundSchema: z.ZodType< GetExternalUserBudgetsSpend, z.ZodTypeDef, unknown > = z.object({ window: z.string(), cost_spent: z.number(), limit: z.number(), pct: z.number().int(), status: GetExternalUserBudgetsStatus$inboundSchema, }).transform((v) => { return remap$(v, { "cost_spent": "costSpent", }); }); /** @internal */ export type GetExternalUserBudgetsSpend$Outbound = { window: string; cost_spent: number; limit: number; pct: number; status: string; }; /** @internal */ export const GetExternalUserBudgetsSpend$outboundSchema: z.ZodType< GetExternalUserBudgetsSpend$Outbound, z.ZodTypeDef, GetExternalUserBudgetsSpend > = z.object({ window: z.string(), costSpent: z.number(), limit: z.number(), pct: z.number().int(), status: GetExternalUserBudgetsStatus$outboundSchema, }).transform((v) => { return remap$(v, { costSpent: "cost_spent", }); }); export function getExternalUserBudgetsSpendToJSON( getExternalUserBudgetsSpend: GetExternalUserBudgetsSpend, ): string { return JSON.stringify( GetExternalUserBudgetsSpend$outboundSchema.parse( getExternalUserBudgetsSpend, ), ); } export function getExternalUserBudgetsSpendFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => GetExternalUserBudgetsSpend$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'GetExternalUserBudgetsSpend' from JSON`, ); } /** @internal */ export const GetExternalUserBudgetsData$inboundSchema: z.ZodType< GetExternalUserBudgetsData, z.ZodTypeDef, unknown > = z.object({ id: z.string(), scope: GetExternalUserBudgetsScope$inboundSchema, scope_id: z.string(), scope_org_id: z.nullable(z.string()), owner: GetExternalUserBudgetsOwner$inboundSchema, period: GetExternalUserBudgetsPeriod$inboundSchema, limit: z.number(), thresholds: z.array( z.lazy(() => GetExternalUserBudgetsThresholds$inboundSchema), ), alert_webhook_url: z.nullable(z.string()), spend: z.lazy(() => GetExternalUserBudgetsSpend$inboundSchema), }).transform((v) => { return remap$(v, { "scope_id": "scopeId", "scope_org_id": "scopeOrgId", "alert_webhook_url": "alertWebhookUrl", }); }); /** @internal */ export type GetExternalUserBudgetsData$Outbound = { id: string; scope: string; scope_id: string; scope_org_id: string | null; owner: string; period: string; limit: number; thresholds: Array; alert_webhook_url: string | null; spend: GetExternalUserBudgetsSpend$Outbound; }; /** @internal */ export const GetExternalUserBudgetsData$outboundSchema: z.ZodType< GetExternalUserBudgetsData$Outbound, z.ZodTypeDef, GetExternalUserBudgetsData > = z.object({ id: z.string(), scope: GetExternalUserBudgetsScope$outboundSchema, scopeId: z.string(), scopeOrgId: z.nullable(z.string()), owner: GetExternalUserBudgetsOwner$outboundSchema, period: GetExternalUserBudgetsPeriod$outboundSchema, limit: z.number(), thresholds: z.array( z.lazy(() => GetExternalUserBudgetsThresholds$outboundSchema), ), alertWebhookUrl: z.nullable(z.string()), spend: z.lazy(() => GetExternalUserBudgetsSpend$outboundSchema), }).transform((v) => { return remap$(v, { scopeId: "scope_id", scopeOrgId: "scope_org_id", alertWebhookUrl: "alert_webhook_url", }); }); export function getExternalUserBudgetsDataToJSON( getExternalUserBudgetsData: GetExternalUserBudgetsData, ): string { return JSON.stringify( GetExternalUserBudgetsData$outboundSchema.parse(getExternalUserBudgetsData), ); } export function getExternalUserBudgetsDataFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => GetExternalUserBudgetsData$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'GetExternalUserBudgetsData' from JSON`, ); } /** @internal */ export const GetExternalUserBudgetsResponseBody$inboundSchema: z.ZodType< GetExternalUserBudgetsResponseBody, z.ZodTypeDef, unknown > = z.object({ object: z.literal("list"), data: z.array(z.lazy(() => GetExternalUserBudgetsData$inboundSchema)), }); /** @internal */ export type GetExternalUserBudgetsResponseBody$Outbound = { object: "list"; data: Array; }; /** @internal */ export const GetExternalUserBudgetsResponseBody$outboundSchema: z.ZodType< GetExternalUserBudgetsResponseBody$Outbound, z.ZodTypeDef, GetExternalUserBudgetsResponseBody > = z.object({ object: z.literal("list"), data: z.array(z.lazy(() => GetExternalUserBudgetsData$outboundSchema)), }); export function getExternalUserBudgetsResponseBodyToJSON( getExternalUserBudgetsResponseBody: GetExternalUserBudgetsResponseBody, ): string { return JSON.stringify( GetExternalUserBudgetsResponseBody$outboundSchema.parse( getExternalUserBudgetsResponseBody, ), ); } export function getExternalUserBudgetsResponseBodyFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => GetExternalUserBudgetsResponseBody$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'GetExternalUserBudgetsResponseBody' from JSON`, ); }