/* * 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 DeleteFoldersIdRequest = { /** * Folder Hashed ID */ id: string; }; /** * A string representing what type of media this is. */ export const DeleteFoldersIdType = { 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 DeleteFoldersIdType = ClosedEnum; /** * 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 DeleteFoldersIdStatus = { 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 DeleteFoldersIdStatus = ClosedEnum; export type DeleteFoldersIdThumbnail = { url?: string | undefined; width?: number | undefined; height?: number | undefined; }; /** * A link to where you can fetch the medias for this folder. */ export type DeleteFoldersIdMedias = { /** * 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?: DeleteFoldersIdType | 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?: DeleteFoldersIdStatus | 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?: DeleteFoldersIdThumbnail | undefined; }; /** * A folder (previously called a project) is a container in which to organize media into. It can be * * @remarks * used to set permissions that apply to all the media in the folder as well as * organizing media into subfolders (previously called media groups). */ export type DeleteFoldersIdResponse = { /** * A unique numeric identifier for the folder within the system. */ id: number; /** * The folder’s display name. */ name: string; /** * The folder’s description. */ description?: string | null | undefined; /** * The number of different medias that have been uploaded to the folder. */ mediaCount: number; /** * A link to where you can fetch the medias for this folder. */ medias: DeleteFoldersIdMedias; /** * The date that the folder was originally created. */ created: Date; /** * The date that the folder was last updated. */ updated: Date; /** * A private hashed id, uniquely identifying the folder within the system. */ hashedId: string; /** * A boolean indicating whether the folder is available for public (anonymous) viewing. */ public: boolean; /** * If the folder is public, this field contains a string representing the ID used for referencing the folder in public URLs. */ publicId: string | null; anonymousCanUpload?: boolean | undefined; anonymousCanDownload?: boolean | undefined; /** * 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 type DeleteFoldersIdRequest$Outbound = { id: string; }; /** @internal */ export const DeleteFoldersIdRequest$outboundSchema: z.ZodType< DeleteFoldersIdRequest$Outbound, z.ZodTypeDef, DeleteFoldersIdRequest > = z.object({ id: z.string(), }); export function deleteFoldersIdRequestToJSON( deleteFoldersIdRequest: DeleteFoldersIdRequest, ): string { return JSON.stringify( DeleteFoldersIdRequest$outboundSchema.parse(deleteFoldersIdRequest), ); } /** @internal */ export const DeleteFoldersIdType$inboundSchema: z.ZodNativeEnum< typeof DeleteFoldersIdType > = z.nativeEnum(DeleteFoldersIdType); /** @internal */ export const DeleteFoldersIdStatus$inboundSchema: z.ZodNativeEnum< typeof DeleteFoldersIdStatus > = z.nativeEnum(DeleteFoldersIdStatus); /** @internal */ export const DeleteFoldersIdThumbnail$inboundSchema: z.ZodType< DeleteFoldersIdThumbnail, z.ZodTypeDef, unknown > = z.object({ url: z.string().optional(), width: z.number().int().optional(), height: z.number().int().optional(), }); export function deleteFoldersIdThumbnailFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => DeleteFoldersIdThumbnail$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'DeleteFoldersIdThumbnail' from JSON`, ); } /** @internal */ export const DeleteFoldersIdMedias$inboundSchema: z.ZodType< DeleteFoldersIdMedias, z.ZodTypeDef, unknown > = z.object({ id: z.number().int().optional(), name: z.string().optional(), type: DeleteFoldersIdType$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: DeleteFoldersIdStatus$inboundSchema.optional(), section: z.nullable(z.string()).optional(), thumbnail: z.lazy(() => DeleteFoldersIdThumbnail$inboundSchema).optional(), }).transform((v) => { return remap$(v, { "hashed_id": "hashedId", }); }); export function deleteFoldersIdMediasFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => DeleteFoldersIdMedias$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'DeleteFoldersIdMedias' from JSON`, ); } /** @internal */ export const DeleteFoldersIdResponse$inboundSchema: z.ZodType< DeleteFoldersIdResponse, z.ZodTypeDef, unknown > = z.object({ id: z.number().int(), name: z.string(), description: z.nullable(z.string()).optional(), media_count: z.number().int(), medias: z.lazy(() => DeleteFoldersIdMedias$inboundSchema), created: z.string().datetime({ offset: true }).transform(v => new Date(v)), updated: z.string().datetime({ offset: true }).transform(v => new Date(v)), hashed_id: z.string(), public: z.boolean(), public_id: z.nullable(z.string()), anonymous_can_upload: z.boolean().optional(), anonymous_can_download: z.boolean().optional(), cursor: z.nullable(z.string()).optional(), }).transform((v) => { return remap$(v, { "media_count": "mediaCount", "hashed_id": "hashedId", "public_id": "publicId", "anonymous_can_upload": "anonymousCanUpload", "anonymous_can_download": "anonymousCanDownload", }); }); export function deleteFoldersIdResponseFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => DeleteFoldersIdResponse$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'DeleteFoldersIdResponse' from JSON`, ); }