/*
 * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
 */

import * as z from "zod/v3";
import { safeParse } from "../../lib/schemas.js";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
import {
  AIConfigVariation,
  AIConfigVariation$inboundSchema,
  AIConfigVariation$Outbound,
  AIConfigVariation$outboundSchema,
} from "./aiconfigvariation.js";

export type AIConfigVariationsResponse = {
  /**
   * The items on this page
   */
  items: Array<AIConfigVariation>;
  /**
   * The total number of items
   */
  totalCount: number;
};

/** @internal */
export const AIConfigVariationsResponse$inboundSchema: z.ZodType<
  AIConfigVariationsResponse,
  z.ZodTypeDef,
  unknown
> = z.object({
  items: z.array(AIConfigVariation$inboundSchema),
  totalCount: z.number().int(),
});
/** @internal */
export type AIConfigVariationsResponse$Outbound = {
  items: Array<AIConfigVariation$Outbound>;
  totalCount: number;
};

/** @internal */
export const AIConfigVariationsResponse$outboundSchema: z.ZodType<
  AIConfigVariationsResponse$Outbound,
  z.ZodTypeDef,
  AIConfigVariationsResponse
> = z.object({
  items: z.array(AIConfigVariation$outboundSchema),
  totalCount: z.number().int(),
});

export function aiConfigVariationsResponseToJSON(
  aiConfigVariationsResponse: AIConfigVariationsResponse,
): string {
  return JSON.stringify(
    AIConfigVariationsResponse$outboundSchema.parse(aiConfigVariationsResponse),
  );
}
export function aiConfigVariationsResponseFromJSON(
  jsonString: string,
): SafeParseResult<AIConfigVariationsResponse, SDKValidationError> {
  return safeParse(
    jsonString,
    (x) => AIConfigVariationsResponse$inboundSchema.parse(JSON.parse(x)),
    `Failed to parse 'AIConfigVariationsResponse' from JSON`,
  );
}
