aiconfig.ts•5.1 kB
/*
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
*/
import * as z from "zod";
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";
import {
AIConfigMaintainer,
AIConfigMaintainer$inboundSchema,
AIConfigMaintainer$Outbound,
AIConfigMaintainer$outboundSchema,
} from "./aiconfigmaintainer.js";
import {
AiConfigsAccess,
AiConfigsAccess$inboundSchema,
AiConfigsAccess$Outbound,
AiConfigsAccess$outboundSchema,
} from "./aiconfigsaccess.js";
import {
AIConfigVariation,
AIConfigVariation$inboundSchema,
AIConfigVariation$Outbound,
AIConfigVariation$outboundSchema,
} from "./aiconfigvariation.js";
import {
ParentAndSelfLinks,
ParentAndSelfLinks$inboundSchema,
ParentAndSelfLinks$Outbound,
ParentAndSelfLinks$outboundSchema,
} from "./parentandselflinks.js";
export const AIConfigMode = {
Agent: "agent",
Completion: "completion",
} as const;
export type AIConfigMode = ClosedEnum<typeof AIConfigMode>;
export type AIConfig = {
access?: AiConfigsAccess | undefined;
/**
* The location and content type of related resources
*/
links?: ParentAndSelfLinks | undefined;
description: string;
key: string;
maintainer?: AIConfigMaintainer | undefined;
mode?: AIConfigMode | undefined;
name: string;
tags: Array<string>;
version: number;
variations: Array<AIConfigVariation>;
createdAt: number;
updatedAt: number;
};
/** @internal */
export const AIConfigMode$inboundSchema: z.ZodNativeEnum<typeof AIConfigMode> =
z.nativeEnum(AIConfigMode);
/** @internal */
export const AIConfigMode$outboundSchema: z.ZodNativeEnum<typeof AIConfigMode> =
AIConfigMode$inboundSchema;
/**
* @internal
* @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
*/
export namespace AIConfigMode$ {
/** @deprecated use `AIConfigMode$inboundSchema` instead. */
export const inboundSchema = AIConfigMode$inboundSchema;
/** @deprecated use `AIConfigMode$outboundSchema` instead. */
export const outboundSchema = AIConfigMode$outboundSchema;
}
/** @internal */
export const AIConfig$inboundSchema: z.ZodType<
AIConfig,
z.ZodTypeDef,
unknown
> = z.object({
_access: AiConfigsAccess$inboundSchema.optional(),
_links: ParentAndSelfLinks$inboundSchema.optional(),
description: z.string(),
key: z.string(),
_maintainer: AIConfigMaintainer$inboundSchema.optional(),
mode: AIConfigMode$inboundSchema.default("completion"),
name: z.string(),
tags: z.array(z.string()),
version: z.number().int(),
variations: z.array(AIConfigVariation$inboundSchema),
createdAt: z.number().int(),
updatedAt: z.number().int(),
}).transform((v) => {
return remap$(v, {
"_access": "access",
"_links": "links",
"_maintainer": "maintainer",
});
});
/** @internal */
export type AIConfig$Outbound = {
_access?: AiConfigsAccess$Outbound | undefined;
_links?: ParentAndSelfLinks$Outbound | undefined;
description: string;
key: string;
_maintainer?: AIConfigMaintainer$Outbound | undefined;
mode: string;
name: string;
tags: Array<string>;
version: number;
variations: Array<AIConfigVariation$Outbound>;
createdAt: number;
updatedAt: number;
};
/** @internal */
export const AIConfig$outboundSchema: z.ZodType<
AIConfig$Outbound,
z.ZodTypeDef,
AIConfig
> = z.object({
access: AiConfigsAccess$outboundSchema.optional(),
links: ParentAndSelfLinks$outboundSchema.optional(),
description: z.string(),
key: z.string(),
maintainer: AIConfigMaintainer$outboundSchema.optional(),
mode: AIConfigMode$outboundSchema.default("completion"),
name: z.string(),
tags: z.array(z.string()),
version: z.number().int(),
variations: z.array(AIConfigVariation$outboundSchema),
createdAt: z.number().int(),
updatedAt: z.number().int(),
}).transform((v) => {
return remap$(v, {
access: "_access",
links: "_links",
maintainer: "_maintainer",
});
});
/**
* @internal
* @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
*/
export namespace AIConfig$ {
/** @deprecated use `AIConfig$inboundSchema` instead. */
export const inboundSchema = AIConfig$inboundSchema;
/** @deprecated use `AIConfig$outboundSchema` instead. */
export const outboundSchema = AIConfig$outboundSchema;
/** @deprecated use `AIConfig$Outbound` instead. */
export type Outbound = AIConfig$Outbound;
}
export function aiConfigToJSON(aiConfig: AIConfig): string {
return JSON.stringify(AIConfig$outboundSchema.parse(aiConfig));
}
export function aiConfigFromJSON(
jsonString: string,
): SafeParseResult<AIConfig, SDKValidationError> {
return safeParse(
jsonString,
(x) => AIConfig$inboundSchema.parse(JSON.parse(x)),
`Failed to parse 'AIConfig' from JSON`,
);
}