/* * 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"; /** * If `cursor[enabled]` is set to 1, the first result set will be fetched with cursor pagination enabled. This * * @remarks * values is ignored if `cursor[before]` or `cursor[after]` are set. */ export const GetCaptionsEnabled = { Zero: 0, One: 1, } as const; /** * If `cursor[enabled]` is set to 1, the first result set will be fetched with cursor pagination enabled. This * * @remarks * values is ignored if `cursor[before]` or `cursor[after]` are set. */ export type GetCaptionsEnabled = ClosedEnum; /** * If `cursor[enabled]` is set to 1 than cursor pagination is enabled and the * * @remarks * first set of records are fetched up to the `per_page`. Cursor * pagination will also be turned on if `cursor[before]` or `cursor[after]` * are set. Records returned will have a `cursor` property set which can be used to fetch more records in the same `sort_by` ordering. * The cursor value of the last record can be used to fetch records after the current result set and * the cursor of the first record can be used to fetch records before the result set. * * NOTE: a cursor value is only valid if the `sort_by` value hasn't changed from the * last fetch. For example, you cannot fetch using `sort_by` id and than pass that * cursor value to a `sort_by` name. */ export type GetCaptionsCursor = { /** * If `cursor[enabled]` is set to 1, the first result set will be fetched with cursor pagination enabled. This * * @remarks * values is ignored if `cursor[before]` or `cursor[after]` are set. */ enabled?: GetCaptionsEnabled | undefined; /** * If `cursor[before]` is set than cursor pagination is enabled and all records * * @remarks * before the cursor up to the `per_page` are returned. This feature is useful for * fetching "new records", for example, in a "pull to refersh" feature when showing records in a descending * order. */ before?: string | undefined; /** * If `cursor[after]` is set than cursor pagination is enabled and all records * * @remarks * after the cursor up to the `per_page` are returned. */ after?: string | undefined; }; /** * Ordering. When using cursor pagination (see cursor param), * * @remarks * only `id` is supported. */ export const GetCaptionsSortBy = { Id: "id", Created: "created", } as const; /** * Ordering. When using cursor pagination (see cursor param), * * @remarks * only `id` is supported. */ export type GetCaptionsSortBy = ClosedEnum; /** * Ordering Sort Direction (0 = desc, 1 = asc; default is 1) */ export const GetCaptionsSortDirection = { Zero: 0, One: 1, } as const; /** * Ordering Sort Direction (0 = desc, 1 = asc; default is 1) */ export type GetCaptionsSortDirection = ClosedEnum< typeof GetCaptionsSortDirection >; export type GetCaptionsRequest = { /** * Find captions for a particular media by providing the media hashed ID */ mediaId?: string | undefined; /** * The page number to retrieve. This cannot be combined with `cursor`, * * @remarks * pagination. */ page?: number | undefined; /** * The number of medias per page. Use this for both offset pagination and cursor pagination. */ perPage?: number | undefined; /** * If `cursor[enabled]` is set to 1 than cursor pagination is enabled and the * * @remarks * first set of records are fetched up to the `per_page`. Cursor * pagination will also be turned on if `cursor[before]` or `cursor[after]` * are set. Records returned will have a `cursor` property set which can be used to fetch more records in the same `sort_by` ordering. * The cursor value of the last record can be used to fetch records after the current result set and * the cursor of the first record can be used to fetch records before the result set. * * NOTE: a cursor value is only valid if the `sort_by` value hasn't changed from the * last fetch. For example, you cannot fetch using `sort_by` id and than pass that * cursor value to a `sort_by` name. */ cursor?: GetCaptionsCursor | undefined; /** * Ordering. When using cursor pagination (see cursor param), * * @remarks * only `id` is supported. */ sortBy?: GetCaptionsSortBy | undefined; /** * Ordering Sort Direction (0 = desc, 1 = asc; default is 1) */ sortDirection?: GetCaptionsSortDirection | undefined; }; export type GetCaptionsResponse = { /** * English name of the language. */ englishName?: string | undefined; /** * Native name of the language. */ nativeName?: string | undefined; /** * A 3 character language code as specified by ISO-639–2. */ language: string; /** * The text of the captions for the specified language in SRT format. */ text?: string | null | undefined; isDraft: boolean; /** * The unique hashed identifier of the time-coded transcript. */ id: string; /** * A cursor for stable pagination based on current `sort_by` order. You can pass this to `cursor[before]` or `cursor[after]` as a parameter to fetch the records before or after this record in the same sort order. This is only populated if records were fetched with `cursor[enabled]`, or `cursor[before]` or `cursor[after]`. */ cursor?: string | null | undefined; }; /** @internal */ export const GetCaptionsEnabled$outboundSchema: z.ZodNativeEnum< typeof GetCaptionsEnabled > = z.nativeEnum(GetCaptionsEnabled); /** @internal */ export type GetCaptionsCursor$Outbound = { enabled?: number | undefined; before?: string | undefined; after?: string | undefined; }; /** @internal */ export const GetCaptionsCursor$outboundSchema: z.ZodType< GetCaptionsCursor$Outbound, z.ZodTypeDef, GetCaptionsCursor > = z.object({ enabled: GetCaptionsEnabled$outboundSchema.optional(), before: z.string().optional(), after: z.string().optional(), }); export function getCaptionsCursorToJSON( getCaptionsCursor: GetCaptionsCursor, ): string { return JSON.stringify( GetCaptionsCursor$outboundSchema.parse(getCaptionsCursor), ); } /** @internal */ export const GetCaptionsSortBy$outboundSchema: z.ZodNativeEnum< typeof GetCaptionsSortBy > = z.nativeEnum(GetCaptionsSortBy); /** @internal */ export const GetCaptionsSortDirection$outboundSchema: z.ZodNativeEnum< typeof GetCaptionsSortDirection > = z.nativeEnum(GetCaptionsSortDirection); /** @internal */ export type GetCaptionsRequest$Outbound = { media_id?: string | undefined; page?: number | undefined; per_page?: number | undefined; cursor?: GetCaptionsCursor$Outbound | undefined; sort_by: string; sort_direction: number; }; /** @internal */ export const GetCaptionsRequest$outboundSchema: z.ZodType< GetCaptionsRequest$Outbound, z.ZodTypeDef, GetCaptionsRequest > = z.object({ mediaId: z.string().optional(), page: z.number().int().optional(), perPage: z.number().int().optional(), cursor: z.lazy(() => GetCaptionsCursor$outboundSchema).optional(), sortBy: GetCaptionsSortBy$outboundSchema.default("id"), sortDirection: GetCaptionsSortDirection$outboundSchema.default(1), }).transform((v) => { return remap$(v, { mediaId: "media_id", perPage: "per_page", sortBy: "sort_by", sortDirection: "sort_direction", }); }); export function getCaptionsRequestToJSON( getCaptionsRequest: GetCaptionsRequest, ): string { return JSON.stringify( GetCaptionsRequest$outboundSchema.parse(getCaptionsRequest), ); } /** @internal */ export const GetCaptionsResponse$inboundSchema: z.ZodType< GetCaptionsResponse, z.ZodTypeDef, unknown > = z.object({ english_name: z.string().optional(), native_name: z.string().optional(), language: z.string(), text: z.nullable(z.string()).optional(), is_draft: z.boolean(), id: z.string(), cursor: z.nullable(z.string()).optional(), }).transform((v) => { return remap$(v, { "english_name": "englishName", "native_name": "nativeName", "is_draft": "isDraft", }); }); export function getCaptionsResponseFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => GetCaptionsResponse$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'GetCaptionsResponse' from JSON`, ); }