/* * 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 PostMediaExtendedAudioDescriptionsOrderRequest = { /** * The hashed id of the media to order the extended audio description for. */ mediaId: string; /** * Whether the extended audio description should be automatically enabled once the order is complete. */ enabled?: boolean | undefined; /** * Whether to use AI-generated audio descriptions (cheaper) or human-generated (higher quality). */ aiEnabled?: boolean | undefined; /** * Optional instructions for the audio description provider. */ orderInstructions?: string | undefined; }; /** * The current status of the order. */ export const PostMediaExtendedAudioDescriptionsOrderOrderStatus = { InProgress: "in_progress", Completed: "completed", Cancelled: "cancelled", Failed: "failed", } as const; /** * The current status of the order. */ export type PostMediaExtendedAudioDescriptionsOrderOrderStatus = ClosedEnum< typeof PostMediaExtendedAudioDescriptionsOrderOrderStatus >; export type PostMediaExtendedAudioDescriptionsOrderMedia = { /** * A unique alphanumeric identifier for the record. */ id: string; /** * A URL for fetching all the records of the given record type. You can pass hashed_ids as a param with multiple values * * @remarks * to do a batch fetch for this records type. */ indexUrl: string; /** * A URL that can be used to fetch this record. */ url: string; }; export type PostMediaExtendedAudioDescriptionsOrderMediaExtendedAudioDescription = { /** * A unique alphanumeric identifier for the record. */ id: string; /** * A URL for fetching all the records of the given record type. You can pass hashed_ids as a param with multiple values * * @remarks * to do a batch fetch for this records type. */ indexUrl: string; /** * A URL that can be used to fetch this record. */ url: string; }; export type PostMediaExtendedAudioDescriptionsOrderOrder = { /** * The hashed ID of the order. Use this to poll order status via the order_status endpoint. */ id: string; /** * The current status of the order. */ orderStatus: PostMediaExtendedAudioDescriptionsOrderOrderStatus; createdAt: Date; updatedAt: Date; media: PostMediaExtendedAudioDescriptionsOrderMedia; /** * Link to the resulting media extended audio description. Null while the order is in progress. */ mediaExtendedAudioDescription?: | PostMediaExtendedAudioDescriptionsOrderMediaExtendedAudioDescription | null | undefined; }; /** * Extended audio description ordered successfully. */ export type PostMediaExtendedAudioDescriptionsOrderResponse = { /** * Success message indicating the order has been placed. */ message: string; order: PostMediaExtendedAudioDescriptionsOrderOrder; }; /** @internal */ export type PostMediaExtendedAudioDescriptionsOrderRequest$Outbound = { media_id: string; enabled: boolean; ai_enabled: boolean; order_instructions?: string | undefined; }; /** @internal */ export const PostMediaExtendedAudioDescriptionsOrderRequest$outboundSchema: z.ZodType< PostMediaExtendedAudioDescriptionsOrderRequest$Outbound, z.ZodTypeDef, PostMediaExtendedAudioDescriptionsOrderRequest > = z.object({ mediaId: z.string(), enabled: z.boolean().default(true), aiEnabled: z.boolean().default(true), orderInstructions: z.string().optional(), }).transform((v) => { return remap$(v, { mediaId: "media_id", aiEnabled: "ai_enabled", orderInstructions: "order_instructions", }); }); export function postMediaExtendedAudioDescriptionsOrderRequestToJSON( postMediaExtendedAudioDescriptionsOrderRequest: PostMediaExtendedAudioDescriptionsOrderRequest, ): string { return JSON.stringify( PostMediaExtendedAudioDescriptionsOrderRequest$outboundSchema.parse( postMediaExtendedAudioDescriptionsOrderRequest, ), ); } /** @internal */ export const PostMediaExtendedAudioDescriptionsOrderOrderStatus$inboundSchema: z.ZodNativeEnum = z .nativeEnum(PostMediaExtendedAudioDescriptionsOrderOrderStatus); /** @internal */ export const PostMediaExtendedAudioDescriptionsOrderMedia$inboundSchema: z.ZodType< PostMediaExtendedAudioDescriptionsOrderMedia, z.ZodTypeDef, unknown > = z.object({ id: z.string(), index_url: z.string(), url: z.string(), }).transform((v) => { return remap$(v, { "index_url": "indexUrl", }); }); export function postMediaExtendedAudioDescriptionsOrderMediaFromJSON( jsonString: string, ): SafeParseResult< PostMediaExtendedAudioDescriptionsOrderMedia, SDKValidationError > { return safeParse( jsonString, (x) => PostMediaExtendedAudioDescriptionsOrderMedia$inboundSchema.parse( JSON.parse(x), ), `Failed to parse 'PostMediaExtendedAudioDescriptionsOrderMedia' from JSON`, ); } /** @internal */ export const PostMediaExtendedAudioDescriptionsOrderMediaExtendedAudioDescription$inboundSchema: z.ZodType< PostMediaExtendedAudioDescriptionsOrderMediaExtendedAudioDescription, z.ZodTypeDef, unknown > = z.object({ id: z.string(), index_url: z.string(), url: z.string(), }).transform((v) => { return remap$(v, { "index_url": "indexUrl", }); }); export function postMediaExtendedAudioDescriptionsOrderMediaExtendedAudioDescriptionFromJSON( jsonString: string, ): SafeParseResult< PostMediaExtendedAudioDescriptionsOrderMediaExtendedAudioDescription, SDKValidationError > { return safeParse( jsonString, (x) => PostMediaExtendedAudioDescriptionsOrderMediaExtendedAudioDescription$inboundSchema .parse(JSON.parse(x)), `Failed to parse 'PostMediaExtendedAudioDescriptionsOrderMediaExtendedAudioDescription' from JSON`, ); } /** @internal */ export const PostMediaExtendedAudioDescriptionsOrderOrder$inboundSchema: z.ZodType< PostMediaExtendedAudioDescriptionsOrderOrder, z.ZodTypeDef, unknown > = z.object({ id: z.string(), order_status: PostMediaExtendedAudioDescriptionsOrderOrderStatus$inboundSchema, created_at: z.string().datetime({ offset: true }).transform(v => new Date(v) ), updated_at: z.string().datetime({ offset: true }).transform(v => new Date(v) ), media: z.lazy(() => PostMediaExtendedAudioDescriptionsOrderMedia$inboundSchema ), media_extended_audio_description: z.nullable( z.lazy(() => PostMediaExtendedAudioDescriptionsOrderMediaExtendedAudioDescription$inboundSchema ), ).optional(), }).transform((v) => { return remap$(v, { "order_status": "orderStatus", "created_at": "createdAt", "updated_at": "updatedAt", "media_extended_audio_description": "mediaExtendedAudioDescription", }); }); export function postMediaExtendedAudioDescriptionsOrderOrderFromJSON( jsonString: string, ): SafeParseResult< PostMediaExtendedAudioDescriptionsOrderOrder, SDKValidationError > { return safeParse( jsonString, (x) => PostMediaExtendedAudioDescriptionsOrderOrder$inboundSchema.parse( JSON.parse(x), ), `Failed to parse 'PostMediaExtendedAudioDescriptionsOrderOrder' from JSON`, ); } /** @internal */ export const PostMediaExtendedAudioDescriptionsOrderResponse$inboundSchema: z.ZodType< PostMediaExtendedAudioDescriptionsOrderResponse, z.ZodTypeDef, unknown > = z.object({ message: z.string(), order: z.lazy(() => PostMediaExtendedAudioDescriptionsOrderOrder$inboundSchema ), }); export function postMediaExtendedAudioDescriptionsOrderResponseFromJSON( jsonString: string, ): SafeParseResult< PostMediaExtendedAudioDescriptionsOrderResponse, SDKValidationError > { return safeParse( jsonString, (x) => PostMediaExtendedAudioDescriptionsOrderResponse$inboundSchema.parse( JSON.parse(x), ), `Failed to parse 'PostMediaExtendedAudioDescriptionsOrderResponse' from JSON`, ); }