/* * 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 PostMediasMediaHashedIdTrimsRequestBody = { /** * An array of strings matching the format of HH:MM:SS.mmm-HH:MM:SS.mmm where HH is hours, MM is minutes, SS is seconds and mmm is milliseconds. When keep_trims is false (default), the ranges specify parts of the media to remove. When keep_trims is true, the ranges specify parts of the media to keep. */ trims: Array; /** * When set to true, the trims parameter is treated as ranges to keep rather than ranges to remove. Defaults to false. */ keepTrims?: boolean | undefined; }; export type PostMediasMediaHashedIdTrimsRequest = { /** * The hashed ID of the media. */ mediaHashedId: string; requestBody: PostMediasMediaHashedIdTrimsRequestBody; }; /** * The status of the background job that's been queued for the request. */ export const PostMediasMediaHashedIdTrimsStatus = { Queued: "queued", Started: "started", Finished: "finished", Failed: "failed", } as const; /** * The status of the background job that's been queued for the request. */ export type PostMediasMediaHashedIdTrimsStatus = ClosedEnum< typeof PostMediasMediaHashedIdTrimsStatus >; /** * A background job keeps track of the progress of an asynchronous task, e.g * * @remarks * bulk archiving media, translating media, etc. */ export type PostMediasMediaHashedIdTrimsBackgroundJobStatus = { /** * The ID of the background job that's been queued for the request. */ id: number; /** * The status of the background job that's been queued for the request. */ status: PostMediasMediaHashedIdTrimsStatus; }; /** * Successful queueing of trims worker. */ export type PostMediasMediaHashedIdTrimsResponse = { /** * A background job keeps track of the progress of an asynchronous task, e.g * * @remarks * bulk archiving media, translating media, etc. */ backgroundJobStatus?: | PostMediasMediaHashedIdTrimsBackgroundJobStatus | undefined; }; /** @internal */ export type PostMediasMediaHashedIdTrimsRequestBody$Outbound = { trims: Array; keep_trims: boolean; }; /** @internal */ export const PostMediasMediaHashedIdTrimsRequestBody$outboundSchema: z.ZodType< PostMediasMediaHashedIdTrimsRequestBody$Outbound, z.ZodTypeDef, PostMediasMediaHashedIdTrimsRequestBody > = z.object({ trims: z.array(z.string()), keepTrims: z.boolean().default(false), }).transform((v) => { return remap$(v, { keepTrims: "keep_trims", }); }); export function postMediasMediaHashedIdTrimsRequestBodyToJSON( postMediasMediaHashedIdTrimsRequestBody: PostMediasMediaHashedIdTrimsRequestBody, ): string { return JSON.stringify( PostMediasMediaHashedIdTrimsRequestBody$outboundSchema.parse( postMediasMediaHashedIdTrimsRequestBody, ), ); } /** @internal */ export type PostMediasMediaHashedIdTrimsRequest$Outbound = { mediaHashedId: string; RequestBody: PostMediasMediaHashedIdTrimsRequestBody$Outbound; }; /** @internal */ export const PostMediasMediaHashedIdTrimsRequest$outboundSchema: z.ZodType< PostMediasMediaHashedIdTrimsRequest$Outbound, z.ZodTypeDef, PostMediasMediaHashedIdTrimsRequest > = z.object({ mediaHashedId: z.string(), requestBody: z.lazy(() => PostMediasMediaHashedIdTrimsRequestBody$outboundSchema ), }).transform((v) => { return remap$(v, { requestBody: "RequestBody", }); }); export function postMediasMediaHashedIdTrimsRequestToJSON( postMediasMediaHashedIdTrimsRequest: PostMediasMediaHashedIdTrimsRequest, ): string { return JSON.stringify( PostMediasMediaHashedIdTrimsRequest$outboundSchema.parse( postMediasMediaHashedIdTrimsRequest, ), ); } /** @internal */ export const PostMediasMediaHashedIdTrimsStatus$inboundSchema: z.ZodNativeEnum< typeof PostMediasMediaHashedIdTrimsStatus > = z.nativeEnum(PostMediasMediaHashedIdTrimsStatus); /** @internal */ export const PostMediasMediaHashedIdTrimsBackgroundJobStatus$inboundSchema: z.ZodType< PostMediasMediaHashedIdTrimsBackgroundJobStatus, z.ZodTypeDef, unknown > = z.object({ id: z.number().int(), status: PostMediasMediaHashedIdTrimsStatus$inboundSchema, }); export function postMediasMediaHashedIdTrimsBackgroundJobStatusFromJSON( jsonString: string, ): SafeParseResult< PostMediasMediaHashedIdTrimsBackgroundJobStatus, SDKValidationError > { return safeParse( jsonString, (x) => PostMediasMediaHashedIdTrimsBackgroundJobStatus$inboundSchema.parse( JSON.parse(x), ), `Failed to parse 'PostMediasMediaHashedIdTrimsBackgroundJobStatus' from JSON`, ); } /** @internal */ export const PostMediasMediaHashedIdTrimsResponse$inboundSchema: z.ZodType< PostMediasMediaHashedIdTrimsResponse, z.ZodTypeDef, unknown > = z.object({ background_job_status: z.lazy(() => PostMediasMediaHashedIdTrimsBackgroundJobStatus$inboundSchema ).optional(), }).transform((v) => { return remap$(v, { "background_job_status": "backgroundJobStatus", }); }); export function postMediasMediaHashedIdTrimsResponseFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => PostMediasMediaHashedIdTrimsResponse$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'PostMediasMediaHashedIdTrimsResponse' from JSON`, ); }