UNPKG

box-node-sdk

Version:

Official SDK for Box Platform APIs

916 lines (915 loc) 31.4 kB
import { serializeFolderBaseTypeField } from './folderBase'; import { deserializeFolderBaseTypeField } from './folderBase'; import { serializeFolderBase } from './folderBase'; import { deserializeFolderBase } from './folderBase'; import { serializeFolderMini } from './folderMini'; import { deserializeFolderMini } from './folderMini'; import { serializeDateTime } from '../internal/utils'; import { deserializeDateTime } from '../internal/utils'; import { serializeFolderPathCollectionField } from './folder'; import { deserializeFolderPathCollectionField } from './folder'; import { serializeUserMini } from './userMini'; import { deserializeUserMini } from './userMini'; import { serializeFolderSharedLinkField } from './folder'; import { deserializeFolderSharedLinkField } from './folder'; import { serializeFolderFolderUploadEmailField } from './folder'; import { deserializeFolderFolderUploadEmailField } from './folder'; import { serializeFolderItemStatusField } from './folder'; import { deserializeFolderItemStatusField } from './folder'; import { serializeItems } from './items'; import { deserializeItems } from './items'; import { serializeFolder } from './folder'; import { deserializeFolder } from './folder'; import { serializeMetadataFull } from './metadataFull'; import { deserializeMetadataFull } from './metadataFull'; import { FolderBaseTypeField } from './folderBase'; import { FolderBase } from './folderBase'; import { FolderMini } from './folderMini'; import { DateTime } from '../internal/utils'; import { FolderPathCollectionField } from './folder'; import { UserMini } from './userMini'; import { FolderSharedLinkField } from './folder'; import { FolderFolderUploadEmailField } from './folder'; import { FolderItemStatusField } from './folder'; import { Items } from './items'; import { Folder } from './folder'; import { MetadataFull } from './metadataFull'; import { BoxSdkError } from '../box/errors'; import { SerializedData } from '../serialization/json'; import { sdIsEmpty } from '../serialization/json'; import { sdIsBoolean } from '../serialization/json'; import { sdIsNumber } from '../serialization/json'; import { sdIsString } from '../serialization/json'; import { sdIsList } from '../serialization/json'; import { sdIsMap } from '../serialization/json'; export type FolderFullSyncStateField = | 'synced' | 'not_synced' | 'partially_synced' | string; export interface FolderFullPermissionsField { /** * Specifies if the current user can delete this item. */ readonly canDelete: boolean; /** * Specifies if the current user can download this item. */ readonly canDownload: boolean; /** * Specifies if the current user can invite new * users to collaborate on this item, and if the user can * update the role of a user already collaborated on this * item. */ readonly canInviteCollaborator: boolean; /** * Specifies if the user can rename this item. */ readonly canRename: boolean; /** * Specifies if the user can change the access level of an * existing shared link on this item. */ readonly canSetShareAccess: boolean; /** * Specifies if the user can create a shared link for this item. */ readonly canShare: boolean; /** * Specifies if the user can upload into this folder. */ readonly canUpload: boolean; readonly rawData?: SerializedData; } export interface FolderFullMetadataField { readonly extraData?: { readonly [key: string]: { readonly [key: string]: MetadataFull; }; }; readonly rawData?: SerializedData; } export type FolderFullAllowedSharedLinkAccessLevelsField = | 'open' | 'company' | 'collaborators' | string; export type FolderFullAllowedInviteeRolesField = | 'editor' | 'viewer' | 'previewer' | 'uploader' | 'previewer uploader' | 'viewer uploader' | 'co-owner' | string; export interface FolderFullWatermarkInfoField { /** * Specifies if this item has a watermark applied. */ readonly isWatermarked?: boolean; readonly rawData?: SerializedData; } export interface FolderFullClassificationField { /** * The name of the classification. */ readonly name?: string; /** * An explanation of the meaning of this classification. */ readonly definition?: string; /** * The color that is used to display the * classification label in a user-interface. Colors are defined by the admin * or co-admin who created the classification in the Box web app. */ readonly color?: string; readonly rawData?: SerializedData; } export class FolderFull extends Folder { readonly syncState?: FolderFullSyncStateField; readonly hasCollaborations?: boolean; readonly permissions?: FolderFullPermissionsField; readonly tags?: readonly string[]; readonly canNonOwnersInvite?: boolean; readonly isExternallyOwned?: boolean; readonly metadata?: FolderFullMetadataField; readonly isCollaborationRestrictedToEnterprise?: boolean; readonly allowedSharedLinkAccessLevels?: readonly FolderFullAllowedSharedLinkAccessLevelsField[]; readonly allowedInviteeRoles?: readonly FolderFullAllowedInviteeRolesField[]; readonly watermarkInfo?: FolderFullWatermarkInfoField; readonly isAccessibleViaSharedLink?: boolean; readonly canNonOwnersViewCollaborators?: boolean; readonly classification?: FolderFullClassificationField; readonly isAssociatedWithAppItem?: boolean; constructor(fields: FolderFull) { super(fields); if (fields.syncState !== undefined) { this.syncState = fields.syncState; } if (fields.hasCollaborations !== undefined) { this.hasCollaborations = fields.hasCollaborations; } if (fields.permissions !== undefined) { this.permissions = fields.permissions; } if (fields.tags !== undefined) { this.tags = fields.tags; } if (fields.canNonOwnersInvite !== undefined) { this.canNonOwnersInvite = fields.canNonOwnersInvite; } if (fields.isExternallyOwned !== undefined) { this.isExternallyOwned = fields.isExternallyOwned; } if (fields.metadata !== undefined) { this.metadata = fields.metadata; } if (fields.isCollaborationRestrictedToEnterprise !== undefined) { this.isCollaborationRestrictedToEnterprise = fields.isCollaborationRestrictedToEnterprise; } if (fields.allowedSharedLinkAccessLevels !== undefined) { this.allowedSharedLinkAccessLevels = fields.allowedSharedLinkAccessLevels; } if (fields.allowedInviteeRoles !== undefined) { this.allowedInviteeRoles = fields.allowedInviteeRoles; } if (fields.watermarkInfo !== undefined) { this.watermarkInfo = fields.watermarkInfo; } if (fields.isAccessibleViaSharedLink !== undefined) { this.isAccessibleViaSharedLink = fields.isAccessibleViaSharedLink; } if (fields.canNonOwnersViewCollaborators !== undefined) { this.canNonOwnersViewCollaborators = fields.canNonOwnersViewCollaborators; } if (fields.classification !== undefined) { this.classification = fields.classification; } if (fields.isAssociatedWithAppItem !== undefined) { this.isAssociatedWithAppItem = fields.isAssociatedWithAppItem; } } } export function serializeFolderFullSyncStateField( val: FolderFullSyncStateField, ): SerializedData { return val; } export function deserializeFolderFullSyncStateField( val: SerializedData, ): FolderFullSyncStateField { if (val == 'synced') { return val; } if (val == 'not_synced') { return val; } if (val == 'partially_synced') { return val; } if (sdIsString(val)) { return val; } throw new BoxSdkError({ message: "Can't deserialize FolderFullSyncStateField", }); } export function serializeFolderFullPermissionsField( val: FolderFullPermissionsField, ): SerializedData { return { ['can_delete']: val.canDelete, ['can_download']: val.canDownload, ['can_invite_collaborator']: val.canInviteCollaborator, ['can_rename']: val.canRename, ['can_set_share_access']: val.canSetShareAccess, ['can_share']: val.canShare, ['can_upload']: val.canUpload, }; } export function deserializeFolderFullPermissionsField( val: SerializedData, ): FolderFullPermissionsField { if (!sdIsMap(val)) { throw new BoxSdkError({ message: 'Expecting a map for "FolderFullPermissionsField"', }); } if (val.can_delete == void 0) { throw new BoxSdkError({ message: 'Expecting "can_delete" of type "FolderFullPermissionsField" to be defined', }); } if (!sdIsBoolean(val.can_delete)) { throw new BoxSdkError({ message: 'Expecting boolean for "can_delete" of type "FolderFullPermissionsField"', }); } const canDelete: boolean = val.can_delete; if (val.can_download == void 0) { throw new BoxSdkError({ message: 'Expecting "can_download" of type "FolderFullPermissionsField" to be defined', }); } if (!sdIsBoolean(val.can_download)) { throw new BoxSdkError({ message: 'Expecting boolean for "can_download" of type "FolderFullPermissionsField"', }); } const canDownload: boolean = val.can_download; if (val.can_invite_collaborator == void 0) { throw new BoxSdkError({ message: 'Expecting "can_invite_collaborator" of type "FolderFullPermissionsField" to be defined', }); } if (!sdIsBoolean(val.can_invite_collaborator)) { throw new BoxSdkError({ message: 'Expecting boolean for "can_invite_collaborator" of type "FolderFullPermissionsField"', }); } const canInviteCollaborator: boolean = val.can_invite_collaborator; if (val.can_rename == void 0) { throw new BoxSdkError({ message: 'Expecting "can_rename" of type "FolderFullPermissionsField" to be defined', }); } if (!sdIsBoolean(val.can_rename)) { throw new BoxSdkError({ message: 'Expecting boolean for "can_rename" of type "FolderFullPermissionsField"', }); } const canRename: boolean = val.can_rename; if (val.can_set_share_access == void 0) { throw new BoxSdkError({ message: 'Expecting "can_set_share_access" of type "FolderFullPermissionsField" to be defined', }); } if (!sdIsBoolean(val.can_set_share_access)) { throw new BoxSdkError({ message: 'Expecting boolean for "can_set_share_access" of type "FolderFullPermissionsField"', }); } const canSetShareAccess: boolean = val.can_set_share_access; if (val.can_share == void 0) { throw new BoxSdkError({ message: 'Expecting "can_share" of type "FolderFullPermissionsField" to be defined', }); } if (!sdIsBoolean(val.can_share)) { throw new BoxSdkError({ message: 'Expecting boolean for "can_share" of type "FolderFullPermissionsField"', }); } const canShare: boolean = val.can_share; if (val.can_upload == void 0) { throw new BoxSdkError({ message: 'Expecting "can_upload" of type "FolderFullPermissionsField" to be defined', }); } if (!sdIsBoolean(val.can_upload)) { throw new BoxSdkError({ message: 'Expecting boolean for "can_upload" of type "FolderFullPermissionsField"', }); } const canUpload: boolean = val.can_upload; return { canDelete: canDelete, canDownload: canDownload, canInviteCollaborator: canInviteCollaborator, canRename: canRename, canSetShareAccess: canSetShareAccess, canShare: canShare, canUpload: canUpload, } satisfies FolderFullPermissionsField; } export function serializeFolderFullMetadataField( val: FolderFullMetadataField, ): SerializedData { return { ...{}, ...val.extraData }; } export function deserializeFolderFullMetadataField( val: SerializedData, ): FolderFullMetadataField { if (!sdIsMap(val)) { throw new BoxSdkError({ message: 'Expecting a map for "FolderFullMetadataField"', }); } if (!(val == void 0) && !sdIsMap(val)) { throw new BoxSdkError({ message: 'Expecting object for "extraData" of type "FolderFullMetadataField"', }); } const extraData: | undefined | { readonly [key: string]: { readonly [key: string]: MetadataFull; }; } = val == void 0 ? void 0 : sdIsMap(val) ? (Object.fromEntries( Object.entries(val).map(([k, v]: [string, any]) => [ k, (function (v: any): any { return sdIsMap(v) ? (Object.fromEntries( Object.entries(v).map(([k, v]: [string, any]) => [ k, deserializeMetadataFull(v), ]), ) as { readonly [key: string]: any; }) : {}; })(v), ]), ) as { readonly [key: string]: any; }) : {}; return { extraData: extraData } satisfies FolderFullMetadataField; } export function serializeFolderFullAllowedSharedLinkAccessLevelsField( val: FolderFullAllowedSharedLinkAccessLevelsField, ): SerializedData { return val; } export function deserializeFolderFullAllowedSharedLinkAccessLevelsField( val: SerializedData, ): FolderFullAllowedSharedLinkAccessLevelsField { if (val == 'open') { return val; } if (val == 'company') { return val; } if (val == 'collaborators') { return val; } if (sdIsString(val)) { return val; } throw new BoxSdkError({ message: "Can't deserialize FolderFullAllowedSharedLinkAccessLevelsField", }); } export function serializeFolderFullAllowedInviteeRolesField( val: FolderFullAllowedInviteeRolesField, ): SerializedData { return val; } export function deserializeFolderFullAllowedInviteeRolesField( val: SerializedData, ): FolderFullAllowedInviteeRolesField { if (val == 'editor') { return val; } if (val == 'viewer') { return val; } if (val == 'previewer') { return val; } if (val == 'uploader') { return val; } if (val == 'previewer uploader') { return val; } if (val == 'viewer uploader') { return val; } if (val == 'co-owner') { return val; } if (sdIsString(val)) { return val; } throw new BoxSdkError({ message: "Can't deserialize FolderFullAllowedInviteeRolesField", }); } export function serializeFolderFullWatermarkInfoField( val: FolderFullWatermarkInfoField, ): SerializedData { return { ['is_watermarked']: val.isWatermarked }; } export function deserializeFolderFullWatermarkInfoField( val: SerializedData, ): FolderFullWatermarkInfoField { if (!sdIsMap(val)) { throw new BoxSdkError({ message: 'Expecting a map for "FolderFullWatermarkInfoField"', }); } if (!(val.is_watermarked == void 0) && !sdIsBoolean(val.is_watermarked)) { throw new BoxSdkError({ message: 'Expecting boolean for "is_watermarked" of type "FolderFullWatermarkInfoField"', }); } const isWatermarked: undefined | boolean = val.is_watermarked == void 0 ? void 0 : val.is_watermarked; return { isWatermarked: isWatermarked, } satisfies FolderFullWatermarkInfoField; } export function serializeFolderFullClassificationField( val: FolderFullClassificationField, ): SerializedData { return { ['name']: val.name, ['definition']: val.definition, ['color']: val.color, }; } export function deserializeFolderFullClassificationField( val: SerializedData, ): FolderFullClassificationField { if (!sdIsMap(val)) { throw new BoxSdkError({ message: 'Expecting a map for "FolderFullClassificationField"', }); } if (!(val.name == void 0) && !sdIsString(val.name)) { throw new BoxSdkError({ message: 'Expecting string for "name" of type "FolderFullClassificationField"', }); } const name: undefined | string = val.name == void 0 ? void 0 : val.name; if (!(val.definition == void 0) && !sdIsString(val.definition)) { throw new BoxSdkError({ message: 'Expecting string for "definition" of type "FolderFullClassificationField"', }); } const definition: undefined | string = val.definition == void 0 ? void 0 : val.definition; if (!(val.color == void 0) && !sdIsString(val.color)) { throw new BoxSdkError({ message: 'Expecting string for "color" of type "FolderFullClassificationField"', }); } const color: undefined | string = val.color == void 0 ? void 0 : val.color; return { name: name, definition: definition, color: color, } satisfies FolderFullClassificationField; } export function serializeFolderFull(val: FolderFull): SerializedData { const base: any = serializeFolder(val); if (!sdIsMap(base)) { throw new BoxSdkError({ message: 'Expecting a map for "FolderFull"' }); } return { ...base, ...{ ['sync_state']: val.syncState == void 0 ? val.syncState : serializeFolderFullSyncStateField(val.syncState), ['has_collaborations']: val.hasCollaborations, ['permissions']: val.permissions == void 0 ? val.permissions : serializeFolderFullPermissionsField(val.permissions), ['tags']: val.tags == void 0 ? val.tags : (val.tags.map(function (item: string): SerializedData { return item; }) as readonly any[]), ['can_non_owners_invite']: val.canNonOwnersInvite, ['is_externally_owned']: val.isExternallyOwned, ['metadata']: val.metadata == void 0 ? val.metadata : serializeFolderFullMetadataField(val.metadata), ['is_collaboration_restricted_to_enterprise']: val.isCollaborationRestrictedToEnterprise, ['allowed_shared_link_access_levels']: val.allowedSharedLinkAccessLevels == void 0 ? val.allowedSharedLinkAccessLevels : (val.allowedSharedLinkAccessLevels.map(function ( item: FolderFullAllowedSharedLinkAccessLevelsField, ): SerializedData { return serializeFolderFullAllowedSharedLinkAccessLevelsField( item, ); }) as readonly any[]), ['allowed_invitee_roles']: val.allowedInviteeRoles == void 0 ? val.allowedInviteeRoles : (val.allowedInviteeRoles.map(function ( item: FolderFullAllowedInviteeRolesField, ): SerializedData { return serializeFolderFullAllowedInviteeRolesField(item); }) as readonly any[]), ['watermark_info']: val.watermarkInfo == void 0 ? val.watermarkInfo : serializeFolderFullWatermarkInfoField(val.watermarkInfo), ['is_accessible_via_shared_link']: val.isAccessibleViaSharedLink, ['can_non_owners_view_collaborators']: val.canNonOwnersViewCollaborators, ['classification']: val.classification == void 0 ? val.classification : serializeFolderFullClassificationField(val.classification), ['is_associated_with_app_item']: val.isAssociatedWithAppItem, }, }; } export function deserializeFolderFull(val: SerializedData): FolderFull { if (!sdIsMap(val)) { throw new BoxSdkError({ message: 'Expecting a map for "FolderFull"' }); } const syncState: undefined | FolderFullSyncStateField = val.sync_state == void 0 ? void 0 : deserializeFolderFullSyncStateField(val.sync_state); if ( !(val.has_collaborations == void 0) && !sdIsBoolean(val.has_collaborations) ) { throw new BoxSdkError({ message: 'Expecting boolean for "has_collaborations" of type "FolderFull"', }); } const hasCollaborations: undefined | boolean = val.has_collaborations == void 0 ? void 0 : val.has_collaborations; const permissions: undefined | FolderFullPermissionsField = val.permissions == void 0 ? void 0 : deserializeFolderFullPermissionsField(val.permissions); if (!(val.tags == void 0) && !sdIsList(val.tags)) { throw new BoxSdkError({ message: 'Expecting array for "tags" of type "FolderFull"', }); } const tags: undefined | readonly string[] = val.tags == void 0 ? void 0 : sdIsList(val.tags) ? (val.tags.map(function (itm: SerializedData): string { if (!sdIsString(itm)) { throw new BoxSdkError({ message: 'Expecting string for "FolderFull"', }); } return itm; }) as readonly any[]) : []; if ( !(val.can_non_owners_invite == void 0) && !sdIsBoolean(val.can_non_owners_invite) ) { throw new BoxSdkError({ message: 'Expecting boolean for "can_non_owners_invite" of type "FolderFull"', }); } const canNonOwnersInvite: undefined | boolean = val.can_non_owners_invite == void 0 ? void 0 : val.can_non_owners_invite; if ( !(val.is_externally_owned == void 0) && !sdIsBoolean(val.is_externally_owned) ) { throw new BoxSdkError({ message: 'Expecting boolean for "is_externally_owned" of type "FolderFull"', }); } const isExternallyOwned: undefined | boolean = val.is_externally_owned == void 0 ? void 0 : val.is_externally_owned; const metadata: undefined | FolderFullMetadataField = val.metadata == void 0 ? void 0 : deserializeFolderFullMetadataField(val.metadata); if ( !(val.is_collaboration_restricted_to_enterprise == void 0) && !sdIsBoolean(val.is_collaboration_restricted_to_enterprise) ) { throw new BoxSdkError({ message: 'Expecting boolean for "is_collaboration_restricted_to_enterprise" of type "FolderFull"', }); } const isCollaborationRestrictedToEnterprise: undefined | boolean = val.is_collaboration_restricted_to_enterprise == void 0 ? void 0 : val.is_collaboration_restricted_to_enterprise; if ( !(val.allowed_shared_link_access_levels == void 0) && !sdIsList(val.allowed_shared_link_access_levels) ) { throw new BoxSdkError({ message: 'Expecting array for "allowed_shared_link_access_levels" of type "FolderFull"', }); } const allowedSharedLinkAccessLevels: | undefined | readonly FolderFullAllowedSharedLinkAccessLevelsField[] = val.allowed_shared_link_access_levels == void 0 ? void 0 : sdIsList(val.allowed_shared_link_access_levels) ? (val.allowed_shared_link_access_levels.map(function ( itm: SerializedData, ): FolderFullAllowedSharedLinkAccessLevelsField { return deserializeFolderFullAllowedSharedLinkAccessLevelsField(itm); }) as readonly any[]) : []; if ( !(val.allowed_invitee_roles == void 0) && !sdIsList(val.allowed_invitee_roles) ) { throw new BoxSdkError({ message: 'Expecting array for "allowed_invitee_roles" of type "FolderFull"', }); } const allowedInviteeRoles: | undefined | readonly FolderFullAllowedInviteeRolesField[] = val.allowed_invitee_roles == void 0 ? void 0 : sdIsList(val.allowed_invitee_roles) ? (val.allowed_invitee_roles.map(function ( itm: SerializedData, ): FolderFullAllowedInviteeRolesField { return deserializeFolderFullAllowedInviteeRolesField(itm); }) as readonly any[]) : []; const watermarkInfo: undefined | FolderFullWatermarkInfoField = val.watermark_info == void 0 ? void 0 : deserializeFolderFullWatermarkInfoField(val.watermark_info); if ( !(val.is_accessible_via_shared_link == void 0) && !sdIsBoolean(val.is_accessible_via_shared_link) ) { throw new BoxSdkError({ message: 'Expecting boolean for "is_accessible_via_shared_link" of type "FolderFull"', }); } const isAccessibleViaSharedLink: undefined | boolean = val.is_accessible_via_shared_link == void 0 ? void 0 : val.is_accessible_via_shared_link; if ( !(val.can_non_owners_view_collaborators == void 0) && !sdIsBoolean(val.can_non_owners_view_collaborators) ) { throw new BoxSdkError({ message: 'Expecting boolean for "can_non_owners_view_collaborators" of type "FolderFull"', }); } const canNonOwnersViewCollaborators: undefined | boolean = val.can_non_owners_view_collaborators == void 0 ? void 0 : val.can_non_owners_view_collaborators; const classification: undefined | FolderFullClassificationField = val.classification == void 0 ? void 0 : deserializeFolderFullClassificationField(val.classification); if ( !(val.is_associated_with_app_item == void 0) && !sdIsBoolean(val.is_associated_with_app_item) ) { throw new BoxSdkError({ message: 'Expecting boolean for "is_associated_with_app_item" of type "FolderFull"', }); } const isAssociatedWithAppItem: undefined | boolean = val.is_associated_with_app_item == void 0 ? void 0 : val.is_associated_with_app_item; if (!(val.created_at == void 0) && !sdIsString(val.created_at)) { throw new BoxSdkError({ message: 'Expecting string for "created_at" of type "FolderFull"', }); } const createdAt: undefined | DateTime = val.created_at == void 0 ? void 0 : deserializeDateTime(val.created_at); if (!(val.modified_at == void 0) && !sdIsString(val.modified_at)) { throw new BoxSdkError({ message: 'Expecting string for "modified_at" of type "FolderFull"', }); } const modifiedAt: undefined | DateTime = val.modified_at == void 0 ? void 0 : deserializeDateTime(val.modified_at); if (!(val.description == void 0) && !sdIsString(val.description)) { throw new BoxSdkError({ message: 'Expecting string for "description" of type "FolderFull"', }); } const description: undefined | string = val.description == void 0 ? void 0 : val.description; if (!(val.size == void 0) && !sdIsNumber(val.size)) { throw new BoxSdkError({ message: 'Expecting number for "size" of type "FolderFull"', }); } const size: undefined | number = val.size == void 0 ? void 0 : val.size; const pathCollection: undefined | FolderPathCollectionField = val.path_collection == void 0 ? void 0 : deserializeFolderPathCollectionField(val.path_collection); const createdBy: undefined | UserMini = val.created_by == void 0 ? void 0 : deserializeUserMini(val.created_by); const modifiedBy: undefined | UserMini = val.modified_by == void 0 ? void 0 : deserializeUserMini(val.modified_by); if (!(val.trashed_at == void 0) && !sdIsString(val.trashed_at)) { throw new BoxSdkError({ message: 'Expecting string for "trashed_at" of type "FolderFull"', }); } const trashedAt: undefined | DateTime = val.trashed_at == void 0 ? void 0 : deserializeDateTime(val.trashed_at); if (!(val.purged_at == void 0) && !sdIsString(val.purged_at)) { throw new BoxSdkError({ message: 'Expecting string for "purged_at" of type "FolderFull"', }); } const purgedAt: undefined | DateTime = val.purged_at == void 0 ? void 0 : deserializeDateTime(val.purged_at); if ( !(val.content_created_at == void 0) && !sdIsString(val.content_created_at) ) { throw new BoxSdkError({ message: 'Expecting string for "content_created_at" of type "FolderFull"', }); } const contentCreatedAt: undefined | DateTime = val.content_created_at == void 0 ? void 0 : deserializeDateTime(val.content_created_at); if ( !(val.content_modified_at == void 0) && !sdIsString(val.content_modified_at) ) { throw new BoxSdkError({ message: 'Expecting string for "content_modified_at" of type "FolderFull"', }); } const contentModifiedAt: undefined | DateTime = val.content_modified_at == void 0 ? void 0 : deserializeDateTime(val.content_modified_at); const ownedBy: undefined | UserMini = val.owned_by == void 0 ? void 0 : deserializeUserMini(val.owned_by); const sharedLink: undefined | FolderSharedLinkField = val.shared_link == void 0 ? void 0 : deserializeFolderSharedLinkField(val.shared_link); const folderUploadEmail: undefined | FolderFolderUploadEmailField = val.folder_upload_email == void 0 ? void 0 : deserializeFolderFolderUploadEmailField(val.folder_upload_email); const parent: undefined | FolderMini = val.parent == void 0 ? void 0 : deserializeFolderMini(val.parent); const itemStatus: undefined | FolderItemStatusField = val.item_status == void 0 ? void 0 : deserializeFolderItemStatusField(val.item_status); const itemCollection: undefined | Items = val.item_collection == void 0 ? void 0 : deserializeItems(val.item_collection); if (!(val.sequence_id == void 0) && !sdIsString(val.sequence_id)) { throw new BoxSdkError({ message: 'Expecting string for "sequence_id" of type "FolderFull"', }); } const sequenceId: undefined | string = val.sequence_id == void 0 ? void 0 : val.sequence_id; if (!(val.name == void 0) && !sdIsString(val.name)) { throw new BoxSdkError({ message: 'Expecting string for "name" of type "FolderFull"', }); } const name: undefined | string = val.name == void 0 ? void 0 : val.name; if (val.id == void 0) { throw new BoxSdkError({ message: 'Expecting "id" of type "FolderFull" to be defined', }); } if (!sdIsString(val.id)) { throw new BoxSdkError({ message: 'Expecting string for "id" of type "FolderFull"', }); } const id: string = val.id; if (!(val.etag == void 0) && !sdIsString(val.etag)) { throw new BoxSdkError({ message: 'Expecting string for "etag" of type "FolderFull"', }); } const etag: undefined | string = val.etag == void 0 ? void 0 : val.etag; if (val.type == void 0) { throw new BoxSdkError({ message: 'Expecting "type" of type "FolderFull" to be defined', }); } const type: FolderBaseTypeField = deserializeFolderBaseTypeField(val.type); return { syncState: syncState, hasCollaborations: hasCollaborations, permissions: permissions, tags: tags, canNonOwnersInvite: canNonOwnersInvite, isExternallyOwned: isExternallyOwned, metadata: metadata, isCollaborationRestrictedToEnterprise: isCollaborationRestrictedToEnterprise, allowedSharedLinkAccessLevels: allowedSharedLinkAccessLevels, allowedInviteeRoles: allowedInviteeRoles, watermarkInfo: watermarkInfo, isAccessibleViaSharedLink: isAccessibleViaSharedLink, canNonOwnersViewCollaborators: canNonOwnersViewCollaborators, classification: classification, isAssociatedWithAppItem: isAssociatedWithAppItem, createdAt: createdAt, modifiedAt: modifiedAt, description: description, size: size, pathCollection: pathCollection, createdBy: createdBy, modifiedBy: modifiedBy, trashedAt: trashedAt, purgedAt: purgedAt, contentCreatedAt: contentCreatedAt, contentModifiedAt: contentModifiedAt, ownedBy: ownedBy, sharedLink: sharedLink, folderUploadEmail: folderUploadEmail, parent: parent, itemStatus: itemStatus, itemCollection: itemCollection, sequenceId: sequenceId, name: name, id: id, etag: etag, type: type, } satisfies FolderFull; }