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

import * as z from "zod/v3";
import { remap as remap$ } from "../../lib/primitives.js";

export type CreateBulkJob = {
  /**
   * Name for the new job to be created. If empty, server will auto-create name for the job.
   */
  jobName?: string | undefined;
  /**
   * Number of docs this job will have. Will use provided document_requests size if there is a mismatch.
   */
  expectedNumberOfDocs: number;
  /**
   * Language for the user, such as en-US, en-GB, if not provided will default to en-US.
   */
  language?: string | undefined;
};

/** @internal */
export type CreateBulkJob$Outbound = {
  job_name?: string | undefined;
  expected_number_of_docs: number;
  language?: string | undefined;
};

/** @internal */
export const CreateBulkJob$outboundSchema: z.ZodType<
  CreateBulkJob$Outbound,
  z.ZodTypeDef,
  CreateBulkJob
> = z.object({
  jobName: z.string().optional(),
  expectedNumberOfDocs: z.number().int(),
  language: z.string().optional(),
}).transform((v) => {
  return remap$(v, {
    jobName: "job_name",
    expectedNumberOfDocs: "expected_number_of_docs",
  });
});

export function createBulkJobToJSON(createBulkJob: CreateBulkJob): string {
  return JSON.stringify(CreateBulkJob$outboundSchema.parse(createBulkJob));
}
