/* * 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"; /** * A flag indicating whether or not the folder is enabled for public access. Set to “1” to enable and “0” to disable. */ export const PutFoldersIdPublicEnum = { Zero: "0", One: "1", } as const; /** * A flag indicating whether or not the folder is enabled for public access. Set to “1” to enable and “0” to disable. */ export type PutFoldersIdPublicEnum = ClosedEnum; export type PutFoldersIdPublicUnion = PutFoldersIdPublicEnum | boolean; export type PutFoldersIdRequestBody = { /** * The folder’s new name. */ name?: string | undefined; /** * The folder’s new description. */ description?: string | undefined; /** * Whether anonymous users can upload media to the folder. */ anonymousCanUpload?: boolean | undefined; /** * Whether anonymous users can download media from the folder. */ anonymousCanDownload?: boolean | undefined; public?: PutFoldersIdPublicEnum | boolean | undefined; }; export type PutFoldersIdRequest = { /** * Folder Hashed ID */ id: string; requestBody?: PutFoldersIdRequestBody | undefined; }; /** * A string representing what type of media this is. */ export const PutFoldersIdType = { 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 PutFoldersIdType = 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 PutFoldersIdStatus = { 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 PutFoldersIdStatus = ClosedEnum; export type PutFoldersIdThumbnail = { url?: string | undefined; width?: number | undefined; height?: number | undefined; }; /** * A link to where you can fetch the medias for this folder. */ export type PutFoldersIdMedias = { /** * 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?: PutFoldersIdType | 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?: PutFoldersIdStatus | 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?: PutFoldersIdThumbnail | 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 PutFoldersIdResponse = { /** * 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: PutFoldersIdMedias; /** * 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 const PutFoldersIdPublicEnum$outboundSchema: z.ZodNativeEnum< typeof PutFoldersIdPublicEnum > = z.nativeEnum(PutFoldersIdPublicEnum); /** @internal */ export type PutFoldersIdPublicUnion$Outbound = string | boolean; /** @internal */ export const PutFoldersIdPublicUnion$outboundSchema: z.ZodType< PutFoldersIdPublicUnion$Outbound, z.ZodTypeDef, PutFoldersIdPublicUnion > = z.union([PutFoldersIdPublicEnum$outboundSchema, z.boolean()]); export function putFoldersIdPublicUnionToJSON( putFoldersIdPublicUnion: PutFoldersIdPublicUnion, ): string { return JSON.stringify( PutFoldersIdPublicUnion$outboundSchema.parse(putFoldersIdPublicUnion), ); } /** @internal */ export type PutFoldersIdRequestBody$Outbound = { name?: string | undefined; description?: string | undefined; anonymousCanUpload?: boolean | undefined; anonymousCanDownload?: boolean | undefined; public?: string | boolean | undefined; }; /** @internal */ export const PutFoldersIdRequestBody$outboundSchema: z.ZodType< PutFoldersIdRequestBody$Outbound, z.ZodTypeDef, PutFoldersIdRequestBody > = z.object({ name: z.string().optional(), description: z.string().optional(), anonymousCanUpload: z.boolean().optional(), anonymousCanDownload: z.boolean().optional(), public: z.union([PutFoldersIdPublicEnum$outboundSchema, z.boolean()]) .optional(), }); export function putFoldersIdRequestBodyToJSON( putFoldersIdRequestBody: PutFoldersIdRequestBody, ): string { return JSON.stringify( PutFoldersIdRequestBody$outboundSchema.parse(putFoldersIdRequestBody), ); } /** @internal */ export type PutFoldersIdRequest$Outbound = { id: string; RequestBody?: PutFoldersIdRequestBody$Outbound | undefined; }; /** @internal */ export const PutFoldersIdRequest$outboundSchema: z.ZodType< PutFoldersIdRequest$Outbound, z.ZodTypeDef, PutFoldersIdRequest > = z.object({ id: z.string(), requestBody: z.lazy(() => PutFoldersIdRequestBody$outboundSchema).optional(), }).transform((v) => { return remap$(v, { requestBody: "RequestBody", }); }); export function putFoldersIdRequestToJSON( putFoldersIdRequest: PutFoldersIdRequest, ): string { return JSON.stringify( PutFoldersIdRequest$outboundSchema.parse(putFoldersIdRequest), ); } /** @internal */ export const PutFoldersIdType$inboundSchema: z.ZodNativeEnum< typeof PutFoldersIdType > = z.nativeEnum(PutFoldersIdType); /** @internal */ export const PutFoldersIdStatus$inboundSchema: z.ZodNativeEnum< typeof PutFoldersIdStatus > = z.nativeEnum(PutFoldersIdStatus); /** @internal */ export const PutFoldersIdThumbnail$inboundSchema: z.ZodType< PutFoldersIdThumbnail, z.ZodTypeDef, unknown > = z.object({ url: z.string().optional(), width: z.number().int().optional(), height: z.number().int().optional(), }); export function putFoldersIdThumbnailFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => PutFoldersIdThumbnail$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'PutFoldersIdThumbnail' from JSON`, ); } /** @internal */ export const PutFoldersIdMedias$inboundSchema: z.ZodType< PutFoldersIdMedias, z.ZodTypeDef, unknown > = z.object({ id: z.number().int().optional(), name: z.string().optional(), type: PutFoldersIdType$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: PutFoldersIdStatus$inboundSchema.optional(), section: z.nullable(z.string()).optional(), thumbnail: z.lazy(() => PutFoldersIdThumbnail$inboundSchema).optional(), }).transform((v) => { return remap$(v, { "hashed_id": "hashedId", }); }); export function putFoldersIdMediasFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => PutFoldersIdMedias$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'PutFoldersIdMedias' from JSON`, ); } /** @internal */ export const PutFoldersIdResponse$inboundSchema: z.ZodType< PutFoldersIdResponse, 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(() => PutFoldersIdMedias$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 putFoldersIdResponseFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => PutFoldersIdResponse$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'PutFoldersIdResponse' from JSON`, ); }