/* * 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 GetMediasMediaHashedIdRequest = { /** * The hashed ID of the media. */ mediaHashedId: string; /** * Format for media descriptions */ descriptionFormat?: "markdown" | undefined; }; /** * A string representing what type of media this is. */ export const GetMediasMediaHashedIdType = { Video: "Video", Audio: "Audio", Image: "Image", PdfDocument: "PdfDocument", MicrosoftOfficeDocument: "MicrosoftOfficeDocument", Swf: "Swf", UnknownType: "UnknownType", } as const; /** * A string representing what type of media this is. */ export type GetMediasMediaHashedIdType = ClosedEnum< typeof GetMediasMediaHashedIdType >; /** * Post upload processing status. - `queued`: the file is waiting in the queue to be processed. - `processing`: the file is actively being processed. - `ready`: the file has been fully processed and is ready for embedding and viewing. - `failed`: the file was unable to be processed (usually a format or size error). * * @remarks */ export const GetMediasMediaHashedIdStatus = { Queued: "queued", Processing: "processing", Ready: "ready", Failed: "failed", } as const; /** * Post upload processing status. - `queued`: the file is waiting in the queue to be processed. - `processing`: the file is actively being processed. - `ready`: the file has been fully processed and is ready for embedding and viewing. - `failed`: the file was unable to be processed (usually a format or size error). * * @remarks */ export type GetMediasMediaHashedIdStatus = ClosedEnum< typeof GetMediasMediaHashedIdStatus >; export type GetMediasMediaHashedIdThumbnail = { url?: string | undefined; width?: number | undefined; height?: number | undefined; }; export type GetMediasMediaHashedIdFolder = { /** * A unique numeric identifier for the folder within the system. */ id?: number | undefined; /** * The folder’s display name. */ name?: string | undefined; /** * A private hashed id, uniquely identifying the folder within the system. */ hashedId?: string | undefined; }; export type GetMediasMediaHashedIdAsset = { /** * A direct-access URL to the content of the asset. */ url?: string | undefined; /** * The width of this specific asset, if applicable. */ width?: number | null | undefined; /** * The height of this specific asset, if applicable. */ height?: number | null | undefined; /** * The size of the asset file that’s referenced by url, measured in bytes. */ fileSize?: number | null | undefined; /** * The asset’s content type. */ contentType?: string | null | undefined; /** * The internal type of the asset, describing how the asset should be used. Values can include OriginalFile, FlashVideoFile, MdFlashVideoFile, HdFlashVideoFile, Mp4VideoFile, MdMp4VideoFile, HdMp4VideoFile, IPhoneVideoFile, StillImageFile, SwfFile, Mp3AudioFile, and LargeImageFile. * * @remarks */ type?: string | undefined; }; /** * A subfolder within a folder that contains media. */ export type GetMediasMediaHashedIdSubfolder = { /** * A unique alphanumeric identifier for this subfolder. */ hashedId: string; /** * The display name of the subfolder. */ name?: string | null | undefined; /** * A description for the subfolder. */ description?: string | null | undefined; /** * The position of this subfolder within its folder, used for ordering. */ position: number | null; /** * The date when the subfolder was created. */ created: Date | null; /** * The date when the subfolder was last modified. */ updated: Date | null; /** * 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; }; export type GetMediasMediaHashedIdTag = { /** * The display name of the tag. */ name?: string | undefined; }; /** * A media generally represents a video or an audio which can be embedded into your website. * * @remarks * * CDN-backed medias are accessible using this url structure: https://fast.wistia.com/embed/medias/{hashed_id}.m3u8. * For more information, see https://docs.wistia.com/docs/asset-urls#getting-hls-assets. */ export type GetMediasMediaHashedIdResponse = { /** * A unique numeric identifier for the media within the system. */ id?: number | undefined; /** * The display name of the media. */ name?: string | undefined; /** * A string representing what type of media this is. */ type?: GetMediasMediaHashedIdType | undefined; /** * Whether or not the media is archived, either true or false. */ archived?: boolean | undefined; /** * The date when the media was originally uploaded. */ created?: Date | undefined; /** * The date when the media was last changed. */ updated?: Date | undefined; /** * Specifies the length (in seconds) for audio and video files. Specifies number of pages in the document. Omitted for other types of media. */ duration?: number | null | undefined; /** * DEPRECATED: If you want to programmatically embed videos, follow the construct an embed code guide. * * @remarks * * @deprecated field: This will be removed in a future release, please migrate away from it as soon as possible. */ embedCode?: string | undefined; /** * A unique alphanumeric identifier for this media. */ hashedId?: string | undefined; /** * A description for the media which usually appears near the top of the sidebar on the media's page. */ description?: string | undefined; /** * A floating point value between 0 and 1 that indicates the progress of the processing for this file. */ progress?: number | undefined; /** * Post upload processing status. - `queued`: the file is waiting in the queue to be processed. - `processing`: the file is actively being processed. - `ready`: the file has been fully processed and is ready for embedding and viewing. - `failed`: the file was unable to be processed (usually a format or size error). * * @remarks */ status?: GetMediasMediaHashedIdStatus | undefined; /** * The title of the section in which the media appears. This attribute is omitted if the media is not in a section (default). */ section?: string | null | undefined; thumbnail?: GetMediasMediaHashedIdThumbnail | undefined; folder: GetMediasMediaHashedIdFolder | null; /** * An array of the assets available for this media. */ assets?: Array | undefined; /** * The subfolder (media group) in which the media appears. Null if the media is not in a subfolder. */ subfolder?: GetMediasMediaHashedIdSubfolder | undefined; /** * Tags associated with this media. */ tags?: Array | undefined; }; /** @internal */ export type GetMediasMediaHashedIdRequest$Outbound = { mediaHashedId: string; description_format?: "markdown" | undefined; }; /** @internal */ export const GetMediasMediaHashedIdRequest$outboundSchema: z.ZodType< GetMediasMediaHashedIdRequest$Outbound, z.ZodTypeDef, GetMediasMediaHashedIdRequest > = z.object({ mediaHashedId: z.string(), descriptionFormat: z.literal("markdown").optional(), }).transform((v) => { return remap$(v, { descriptionFormat: "description_format", }); }); export function getMediasMediaHashedIdRequestToJSON( getMediasMediaHashedIdRequest: GetMediasMediaHashedIdRequest, ): string { return JSON.stringify( GetMediasMediaHashedIdRequest$outboundSchema.parse( getMediasMediaHashedIdRequest, ), ); } /** @internal */ export const GetMediasMediaHashedIdType$inboundSchema: z.ZodNativeEnum< typeof GetMediasMediaHashedIdType > = z.nativeEnum(GetMediasMediaHashedIdType); /** @internal */ export const GetMediasMediaHashedIdStatus$inboundSchema: z.ZodNativeEnum< typeof GetMediasMediaHashedIdStatus > = z.nativeEnum(GetMediasMediaHashedIdStatus); /** @internal */ export const GetMediasMediaHashedIdThumbnail$inboundSchema: z.ZodType< GetMediasMediaHashedIdThumbnail, z.ZodTypeDef, unknown > = z.object({ url: z.string().optional(), width: z.number().int().optional(), height: z.number().int().optional(), }); export function getMediasMediaHashedIdThumbnailFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => GetMediasMediaHashedIdThumbnail$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'GetMediasMediaHashedIdThumbnail' from JSON`, ); } /** @internal */ export const GetMediasMediaHashedIdFolder$inboundSchema: z.ZodType< GetMediasMediaHashedIdFolder, z.ZodTypeDef, unknown > = z.object({ id: z.number().int().optional(), name: z.string().optional(), hashedId: z.string().optional(), }); export function getMediasMediaHashedIdFolderFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => GetMediasMediaHashedIdFolder$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'GetMediasMediaHashedIdFolder' from JSON`, ); } /** @internal */ export const GetMediasMediaHashedIdAsset$inboundSchema: z.ZodType< GetMediasMediaHashedIdAsset, z.ZodTypeDef, unknown > = z.object({ url: z.string().optional(), width: z.nullable(z.number().int()).optional(), height: z.nullable(z.number().int()).optional(), file_size: z.nullable(z.number().int()).optional(), content_type: z.nullable(z.string()).optional(), type: z.string().optional(), }).transform((v) => { return remap$(v, { "file_size": "fileSize", "content_type": "contentType", }); }); export function getMediasMediaHashedIdAssetFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => GetMediasMediaHashedIdAsset$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'GetMediasMediaHashedIdAsset' from JSON`, ); } /** @internal */ export const GetMediasMediaHashedIdSubfolder$inboundSchema: z.ZodType< GetMediasMediaHashedIdSubfolder, z.ZodTypeDef, unknown > = z.object({ hashed_id: z.string(), name: z.nullable(z.string()).optional(), description: z.nullable(z.string()).optional(), position: z.nullable(z.number().int()), created: z.nullable( z.string().datetime({ offset: true }).transform(v => new Date(v)), ), updated: z.nullable( z.string().datetime({ offset: true }).transform(v => new Date(v)), ), cursor: z.nullable(z.string()).optional(), }).transform((v) => { return remap$(v, { "hashed_id": "hashedId", }); }); export function getMediasMediaHashedIdSubfolderFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => GetMediasMediaHashedIdSubfolder$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'GetMediasMediaHashedIdSubfolder' from JSON`, ); } /** @internal */ export const GetMediasMediaHashedIdTag$inboundSchema: z.ZodType< GetMediasMediaHashedIdTag, z.ZodTypeDef, unknown > = z.object({ name: z.string().optional(), }); export function getMediasMediaHashedIdTagFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => GetMediasMediaHashedIdTag$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'GetMediasMediaHashedIdTag' from JSON`, ); } /** @internal */ export const GetMediasMediaHashedIdResponse$inboundSchema: z.ZodType< GetMediasMediaHashedIdResponse, z.ZodTypeDef, unknown > = z.object({ id: z.number().int().optional(), name: z.string().optional(), type: GetMediasMediaHashedIdType$inboundSchema.optional(), archived: z.boolean().optional(), created: z.string().datetime({ offset: true }).transform(v => new Date(v)) .optional(), updated: z.string().datetime({ offset: true }).transform(v => new Date(v)) .optional(), duration: z.nullable(z.number()).optional(), embedCode: z.string().optional(), hashed_id: z.string().optional(), description: z.string().optional(), progress: z.number().optional(), status: GetMediasMediaHashedIdStatus$inboundSchema.optional(), section: z.nullable(z.string()).optional(), thumbnail: z.lazy(() => GetMediasMediaHashedIdThumbnail$inboundSchema) .optional(), folder: z.nullable(z.lazy(() => GetMediasMediaHashedIdFolder$inboundSchema)), assets: z.array(z.lazy(() => GetMediasMediaHashedIdAsset$inboundSchema)) .optional(), subfolder: z.lazy(() => GetMediasMediaHashedIdSubfolder$inboundSchema) .optional(), tags: z.array(z.lazy(() => GetMediasMediaHashedIdTag$inboundSchema)) .optional(), }).transform((v) => { return remap$(v, { "hashed_id": "hashedId", }); }); export function getMediasMediaHashedIdResponseFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => GetMediasMediaHashedIdResponse$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'GetMediasMediaHashedIdResponse' from JSON`, ); }