/* * 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 { Result as SafeParseResult } from "../../types/fp.js"; import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type PutFoldersFolderIdSharingsSharingIdSharing = { /** * Allow the user or group to share the folder with others. */ canShare?: boolean | undefined; /** * Allow the user or group to download media from the folder. */ canDownload?: boolean | undefined; /** * Allow the user or group to upload media to the folder. */ canUpload?: boolean | undefined; /** * Give this user admin rights to the folder. */ isAdmin?: boolean | undefined; }; export type PutFoldersFolderIdSharingsSharingIdRequestBody = { sharing?: PutFoldersFolderIdSharingsSharingIdSharing | undefined; }; export type PutFoldersFolderIdSharingsSharingIdRequest = { /** * ID of the folder */ folderId: string; /** * ID of the sharing to be updated */ sharingId: string; requestBody: PutFoldersFolderIdSharingsSharingIdRequestBody; }; export type PutFoldersFolderIdSharingsSharingIdShare = { id: number; name: string; type: string; email: string; }; export type PutFoldersFolderIdSharingsSharingIdFolder = { id: number; name: string; }; /** * A sharing is an object that links either a contact or a contact group to a folder, including information about the contacts' permissions to that folder. * * @remarks */ export type PutFoldersFolderIdSharingsSharingIdResponse = { id: number; isAdmin: boolean; canShare: boolean; canDownload: boolean; canUpload: boolean; share: PutFoldersFolderIdSharingsSharingIdShare; folder: PutFoldersFolderIdSharingsSharingIdFolder; /** * 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 PutFoldersFolderIdSharingsSharingIdSharing$Outbound = { canShare?: boolean | undefined; canDownload?: boolean | undefined; canUpload?: boolean | undefined; isAdmin?: boolean | undefined; }; /** @internal */ export const PutFoldersFolderIdSharingsSharingIdSharing$outboundSchema: z.ZodType< PutFoldersFolderIdSharingsSharingIdSharing$Outbound, z.ZodTypeDef, PutFoldersFolderIdSharingsSharingIdSharing > = z.object({ canShare: z.boolean().optional(), canDownload: z.boolean().optional(), canUpload: z.boolean().optional(), isAdmin: z.boolean().optional(), }); export function putFoldersFolderIdSharingsSharingIdSharingToJSON( putFoldersFolderIdSharingsSharingIdSharing: PutFoldersFolderIdSharingsSharingIdSharing, ): string { return JSON.stringify( PutFoldersFolderIdSharingsSharingIdSharing$outboundSchema.parse( putFoldersFolderIdSharingsSharingIdSharing, ), ); } /** @internal */ export type PutFoldersFolderIdSharingsSharingIdRequestBody$Outbound = { sharing?: PutFoldersFolderIdSharingsSharingIdSharing$Outbound | undefined; }; /** @internal */ export const PutFoldersFolderIdSharingsSharingIdRequestBody$outboundSchema: z.ZodType< PutFoldersFolderIdSharingsSharingIdRequestBody$Outbound, z.ZodTypeDef, PutFoldersFolderIdSharingsSharingIdRequestBody > = z.object({ sharing: z.lazy(() => PutFoldersFolderIdSharingsSharingIdSharing$outboundSchema ).optional(), }); export function putFoldersFolderIdSharingsSharingIdRequestBodyToJSON( putFoldersFolderIdSharingsSharingIdRequestBody: PutFoldersFolderIdSharingsSharingIdRequestBody, ): string { return JSON.stringify( PutFoldersFolderIdSharingsSharingIdRequestBody$outboundSchema.parse( putFoldersFolderIdSharingsSharingIdRequestBody, ), ); } /** @internal */ export type PutFoldersFolderIdSharingsSharingIdRequest$Outbound = { folderId: string; sharingId: string; RequestBody: PutFoldersFolderIdSharingsSharingIdRequestBody$Outbound; }; /** @internal */ export const PutFoldersFolderIdSharingsSharingIdRequest$outboundSchema: z.ZodType< PutFoldersFolderIdSharingsSharingIdRequest$Outbound, z.ZodTypeDef, PutFoldersFolderIdSharingsSharingIdRequest > = z.object({ folderId: z.string(), sharingId: z.string(), requestBody: z.lazy(() => PutFoldersFolderIdSharingsSharingIdRequestBody$outboundSchema ), }).transform((v) => { return remap$(v, { requestBody: "RequestBody", }); }); export function putFoldersFolderIdSharingsSharingIdRequestToJSON( putFoldersFolderIdSharingsSharingIdRequest: PutFoldersFolderIdSharingsSharingIdRequest, ): string { return JSON.stringify( PutFoldersFolderIdSharingsSharingIdRequest$outboundSchema.parse( putFoldersFolderIdSharingsSharingIdRequest, ), ); } /** @internal */ export const PutFoldersFolderIdSharingsSharingIdShare$inboundSchema: z.ZodType< PutFoldersFolderIdSharingsSharingIdShare, z.ZodTypeDef, unknown > = z.object({ id: z.number().int(), name: z.string(), type: z.string(), email: z.string(), }); export function putFoldersFolderIdSharingsSharingIdShareFromJSON( jsonString: string, ): SafeParseResult< PutFoldersFolderIdSharingsSharingIdShare, SDKValidationError > { return safeParse( jsonString, (x) => PutFoldersFolderIdSharingsSharingIdShare$inboundSchema.parse( JSON.parse(x), ), `Failed to parse 'PutFoldersFolderIdSharingsSharingIdShare' from JSON`, ); } /** @internal */ export const PutFoldersFolderIdSharingsSharingIdFolder$inboundSchema: z.ZodType< PutFoldersFolderIdSharingsSharingIdFolder, z.ZodTypeDef, unknown > = z.object({ id: z.number().int(), name: z.string(), }); export function putFoldersFolderIdSharingsSharingIdFolderFromJSON( jsonString: string, ): SafeParseResult< PutFoldersFolderIdSharingsSharingIdFolder, SDKValidationError > { return safeParse( jsonString, (x) => PutFoldersFolderIdSharingsSharingIdFolder$inboundSchema.parse( JSON.parse(x), ), `Failed to parse 'PutFoldersFolderIdSharingsSharingIdFolder' from JSON`, ); } /** @internal */ export const PutFoldersFolderIdSharingsSharingIdResponse$inboundSchema: z.ZodType< PutFoldersFolderIdSharingsSharingIdResponse, z.ZodTypeDef, unknown > = z.object({ id: z.number().int(), is_admin: z.boolean(), can_share: z.boolean(), can_download: z.boolean(), can_upload: z.boolean(), share: z.lazy(() => PutFoldersFolderIdSharingsSharingIdShare$inboundSchema), folder: z.lazy(() => PutFoldersFolderIdSharingsSharingIdFolder$inboundSchema ), cursor: z.nullable(z.string()).optional(), }).transform((v) => { return remap$(v, { "is_admin": "isAdmin", "can_share": "canShare", "can_download": "canDownload", "can_upload": "canUpload", }); }); export function putFoldersFolderIdSharingsSharingIdResponseFromJSON( jsonString: string, ): SafeParseResult< PutFoldersFolderIdSharingsSharingIdResponse, SDKValidationError > { return safeParse( jsonString, (x) => PutFoldersFolderIdSharingsSharingIdResponse$inboundSchema.parse( JSON.parse(x), ), `Failed to parse 'PutFoldersFolderIdSharingsSharingIdResponse' from JSON`, ); }