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

import * as z from "zod/v3";
import { ClosedEnum } from "../types/enums.js";

export const IncludeDisabled = {
  True: "true",
  False: "false",
} as const;
export type IncludeDisabled = ClosedEnum<typeof IncludeDisabled>;

export type ListAiGatewayRulesRequest = {
  includeDisabled?: IncludeDisabled | undefined;
  /**
   * The Team identifier to perform the request on behalf of.
   */
  teamId?: string | undefined;
  /**
   * The Team slug to perform the request on behalf of.
   */
  slug?: string | undefined;
};

/** @internal */
export const IncludeDisabled$outboundSchema: z.ZodNativeEnum<
  typeof IncludeDisabled
> = z.nativeEnum(IncludeDisabled);

/** @internal */
export type ListAiGatewayRulesRequest$Outbound = {
  includeDisabled?: string | undefined;
  teamId?: string | undefined;
  slug?: string | undefined;
};

/** @internal */
export const ListAiGatewayRulesRequest$outboundSchema: z.ZodType<
  ListAiGatewayRulesRequest$Outbound,
  z.ZodTypeDef,
  ListAiGatewayRulesRequest
> = z.object({
  includeDisabled: IncludeDisabled$outboundSchema.optional(),
  teamId: z.string().optional(),
  slug: z.string().optional(),
});

export function listAiGatewayRulesRequestToJSON(
  listAiGatewayRulesRequest: ListAiGatewayRulesRequest,
): string {
  return JSON.stringify(
    ListAiGatewayRulesRequest$outboundSchema.parse(listAiGatewayRulesRequest),
  );
}
