UNPKG

box-node-sdk

Version:

Official SDK for Box Platform APIs

846 lines (845 loc) 31.2 kB
import { serializeFile } from './file'; import { deserializeFile } from './file'; import { serializeFolder } from './folder'; import { deserializeFolder } from './folder'; import { serializeWebLink } from './webLink'; import { deserializeWebLink } from './webLink'; import { serializeGroupMini } from './groupMini'; import { deserializeGroupMini } from './groupMini'; import { serializeCollaborationItem } from './collaborationItem'; import { deserializeCollaborationItem } from './collaborationItem'; import { serializeAppItem } from './appItem'; import { deserializeAppItem } from './appItem'; import { serializeCollaborationAccessGrantee } from './collaborationAccessGrantee'; import { deserializeCollaborationAccessGrantee } from './collaborationAccessGrantee'; import { serializeUserCollaborations } from './userCollaborations'; import { deserializeUserCollaborations } from './userCollaborations'; import { serializeTermsOfServiceBase } from './termsOfServiceBase'; import { deserializeTermsOfServiceBase } from './termsOfServiceBase'; import { serializeDateTime } from '../internal/utils'; import { deserializeDateTime } from '../internal/utils'; import { File } from './file'; import { Folder } from './folder'; import { WebLink } from './webLink'; import { GroupMini } from './groupMini'; import { CollaborationItem } from './collaborationItem'; import { AppItem } from './appItem'; import { CollaborationAccessGrantee } from './collaborationAccessGrantee'; import { UserCollaborations } from './userCollaborations'; import { TermsOfServiceBase } from './termsOfServiceBase'; import { BoxSdkError } from '../box/errors'; import { DateTime } from '../internal/utils'; 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 CollaborationTypeField = 'collaboration'; export type CollaborationRoleField = | 'editor' | 'viewer' | 'previewer' | 'uploader' | 'previewer uploader' | 'viewer uploader' | 'co-owner' | 'owner' | string; export type CollaborationStatusField = | 'accepted' | 'pending' | 'rejected' | string; export interface CollaborationAcceptanceRequirementsStatusTermsOfServiceRequirementField { /** * Whether or not the terms of service have been accepted. The * field is `null` when there is no terms of service required. */ readonly isAccepted?: boolean | null; readonly termsOfService?: TermsOfServiceBase; readonly rawData?: SerializedData; } export interface CollaborationAcceptanceRequirementsStatusStrongPasswordRequirementField { /** * Whether or not the enterprise that owns the content requires * a strong password to collaborate on the content, or enforces * an exposed password detection for the external collaborators. */ readonly enterpriseHasStrongPasswordRequiredForExternalUsers?: boolean; /** * Whether or not the user has a strong and not exposed password set * for their account. The field is `null` when a strong password is * not required. */ readonly userHasStrongPassword?: boolean | null; readonly rawData?: SerializedData; } export interface CollaborationAcceptanceRequirementsStatusTwoFactorAuthenticationRequirementField { /** * Whether or not the enterprise that owns the content requires * two-factor authentication to be enabled in order to * collaborate on the content. */ readonly enterpriseHasTwoFactorAuthEnabled?: boolean; /** * Whether or not the user has two-factor authentication * enabled. The field is `null` when two-factor * authentication is not required. */ readonly userHasTwoFactorAuthenticationEnabled?: boolean | null; readonly rawData?: SerializedData; } export interface CollaborationAcceptanceRequirementsStatusField { readonly termsOfServiceRequirement?: CollaborationAcceptanceRequirementsStatusTermsOfServiceRequirementField; readonly strongPasswordRequirement?: CollaborationAcceptanceRequirementsStatusStrongPasswordRequirementField; readonly twoFactorAuthenticationRequirement?: CollaborationAcceptanceRequirementsStatusTwoFactorAuthenticationRequirementField; readonly rawData?: SerializedData; } export class Collaboration { /** * The unique identifier for this collaboration. */ readonly id!: string; /** * The value will always be `collaboration`. */ readonly type: CollaborationTypeField = 'collaboration' as CollaborationTypeField; readonly item?: CollaborationItem | null; readonly appItem?: AppItem | null; readonly accessibleBy?: CollaborationAccessGrantee; /** * The email address used to invite an unregistered collaborator, if * they are not a registered user. */ readonly inviteEmail?: string | null; /** * The level of access granted. */ readonly role?: CollaborationRoleField; /** * When the collaboration will expire, or `null` if no expiration * date is set. */ readonly expiresAt?: DateTime | null; /** * If set to `true`, collaborators have access to * shared items, but such items won't be visible in the * All Files list. Additionally, collaborators won't * see the path to the root folder for the * shared item. */ readonly isAccessOnly?: boolean; /** * The status of the collaboration invitation. If the status * is `pending`, `login` and `name` return an empty string. */ readonly status?: CollaborationStatusField; /** * When the `status` of the collaboration object changed to * `accepted` or `rejected`. */ readonly acknowledgedAt?: DateTime; readonly createdBy?: UserCollaborations; /** * When the collaboration object was created. */ readonly createdAt?: DateTime; /** * When the collaboration object was last modified. */ readonly modifiedAt?: DateTime; readonly acceptanceRequirementsStatus?: CollaborationAcceptanceRequirementsStatusField; readonly rawData?: SerializedData; constructor( fields: Omit<Collaboration, 'type'> & Partial<Pick<Collaboration, 'type'>>, ) { if (fields.id !== undefined) { this.id = fields.id; } if (fields.type !== undefined) { this.type = fields.type; } if (fields.item !== undefined) { this.item = fields.item; } if (fields.appItem !== undefined) { this.appItem = fields.appItem; } if (fields.accessibleBy !== undefined) { this.accessibleBy = fields.accessibleBy; } if (fields.inviteEmail !== undefined) { this.inviteEmail = fields.inviteEmail; } if (fields.role !== undefined) { this.role = fields.role; } if (fields.expiresAt !== undefined) { this.expiresAt = fields.expiresAt; } if (fields.isAccessOnly !== undefined) { this.isAccessOnly = fields.isAccessOnly; } if (fields.status !== undefined) { this.status = fields.status; } if (fields.acknowledgedAt !== undefined) { this.acknowledgedAt = fields.acknowledgedAt; } if (fields.createdBy !== undefined) { this.createdBy = fields.createdBy; } if (fields.createdAt !== undefined) { this.createdAt = fields.createdAt; } if (fields.modifiedAt !== undefined) { this.modifiedAt = fields.modifiedAt; } if (fields.acceptanceRequirementsStatus !== undefined) { this.acceptanceRequirementsStatus = fields.acceptanceRequirementsStatus; } if (fields.rawData !== undefined) { this.rawData = fields.rawData; } } } export interface CollaborationInput { /** * The unique identifier for this collaboration. */ readonly id: string; /** * The value will always be `collaboration`. */ readonly type?: CollaborationTypeField; readonly item?: CollaborationItem | null; readonly appItem?: AppItem | null; readonly accessibleBy?: CollaborationAccessGrantee; /** * The email address used to invite an unregistered collaborator, if * they are not a registered user. */ readonly inviteEmail?: string | null; /** * The level of access granted. */ readonly role?: CollaborationRoleField; /** * When the collaboration will expire, or `null` if no expiration * date is set. */ readonly expiresAt?: DateTime | null; /** * If set to `true`, collaborators have access to * shared items, but such items won't be visible in the * All Files list. Additionally, collaborators won't * see the path to the root folder for the * shared item. */ readonly isAccessOnly?: boolean; /** * The status of the collaboration invitation. If the status * is `pending`, `login` and `name` return an empty string. */ readonly status?: CollaborationStatusField; /** * When the `status` of the collaboration object changed to * `accepted` or `rejected`. */ readonly acknowledgedAt?: DateTime; readonly createdBy?: UserCollaborations; /** * When the collaboration object was created. */ readonly createdAt?: DateTime; /** * When the collaboration object was last modified. */ readonly modifiedAt?: DateTime; readonly acceptanceRequirementsStatus?: CollaborationAcceptanceRequirementsStatusField; readonly rawData?: SerializedData; } export function serializeCollaborationTypeField( val: CollaborationTypeField, ): SerializedData { return val; } export function deserializeCollaborationTypeField( val: SerializedData, ): CollaborationTypeField { if (val == 'collaboration') { return val; } throw new BoxSdkError({ message: "Can't deserialize CollaborationTypeField", }); } export function serializeCollaborationRoleField( val: CollaborationRoleField, ): SerializedData { return val; } export function deserializeCollaborationRoleField( val: SerializedData, ): CollaborationRoleField { 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 (val == 'owner') { return val; } if (sdIsString(val)) { return val; } throw new BoxSdkError({ message: "Can't deserialize CollaborationRoleField", }); } export function serializeCollaborationStatusField( val: CollaborationStatusField, ): SerializedData { return val; } export function deserializeCollaborationStatusField( val: SerializedData, ): CollaborationStatusField { if (val == 'accepted') { return val; } if (val == 'pending') { return val; } if (val == 'rejected') { return val; } if (sdIsString(val)) { return val; } throw new BoxSdkError({ message: "Can't deserialize CollaborationStatusField", }); } export function serializeCollaborationAcceptanceRequirementsStatusTermsOfServiceRequirementField( val: CollaborationAcceptanceRequirementsStatusTermsOfServiceRequirementField, ): SerializedData { return { ['is_accepted']: val.isAccepted, ['terms_of_service']: val.termsOfService == void 0 ? val.termsOfService : serializeTermsOfServiceBase(val.termsOfService), }; } export function deserializeCollaborationAcceptanceRequirementsStatusTermsOfServiceRequirementField( val: SerializedData, ): CollaborationAcceptanceRequirementsStatusTermsOfServiceRequirementField { if (!sdIsMap(val)) { throw new BoxSdkError({ message: 'Expecting a map for "CollaborationAcceptanceRequirementsStatusTermsOfServiceRequirementField"', }); } if (!(val.is_accepted == void 0) && !sdIsBoolean(val.is_accepted)) { throw new BoxSdkError({ message: 'Expecting boolean for "is_accepted" of type "CollaborationAcceptanceRequirementsStatusTermsOfServiceRequirementField"', }); } const isAccepted: undefined | boolean = val.is_accepted == void 0 ? void 0 : val.is_accepted; const termsOfService: undefined | TermsOfServiceBase = val.terms_of_service == void 0 ? void 0 : deserializeTermsOfServiceBase(val.terms_of_service); return { isAccepted: isAccepted, termsOfService: termsOfService, } satisfies CollaborationAcceptanceRequirementsStatusTermsOfServiceRequirementField; } export function serializeCollaborationAcceptanceRequirementsStatusStrongPasswordRequirementField( val: CollaborationAcceptanceRequirementsStatusStrongPasswordRequirementField, ): SerializedData { return { ['enterprise_has_strong_password_required_for_external_users']: val.enterpriseHasStrongPasswordRequiredForExternalUsers, ['user_has_strong_password']: val.userHasStrongPassword, }; } export function deserializeCollaborationAcceptanceRequirementsStatusStrongPasswordRequirementField( val: SerializedData, ): CollaborationAcceptanceRequirementsStatusStrongPasswordRequirementField { if (!sdIsMap(val)) { throw new BoxSdkError({ message: 'Expecting a map for "CollaborationAcceptanceRequirementsStatusStrongPasswordRequirementField"', }); } if ( !( val.enterprise_has_strong_password_required_for_external_users == void 0 ) && !sdIsBoolean(val.enterprise_has_strong_password_required_for_external_users) ) { throw new BoxSdkError({ message: 'Expecting boolean for "enterprise_has_strong_password_required_for_external_users" of type "CollaborationAcceptanceRequirementsStatusStrongPasswordRequirementField"', }); } const enterpriseHasStrongPasswordRequiredForExternalUsers: | undefined | boolean = val.enterprise_has_strong_password_required_for_external_users == void 0 ? void 0 : val.enterprise_has_strong_password_required_for_external_users; if ( !(val.user_has_strong_password == void 0) && !sdIsBoolean(val.user_has_strong_password) ) { throw new BoxSdkError({ message: 'Expecting boolean for "user_has_strong_password" of type "CollaborationAcceptanceRequirementsStatusStrongPasswordRequirementField"', }); } const userHasStrongPassword: undefined | boolean = val.user_has_strong_password == void 0 ? void 0 : val.user_has_strong_password; return { enterpriseHasStrongPasswordRequiredForExternalUsers: enterpriseHasStrongPasswordRequiredForExternalUsers, userHasStrongPassword: userHasStrongPassword, } satisfies CollaborationAcceptanceRequirementsStatusStrongPasswordRequirementField; } export function serializeCollaborationAcceptanceRequirementsStatusTwoFactorAuthenticationRequirementField( val: CollaborationAcceptanceRequirementsStatusTwoFactorAuthenticationRequirementField, ): SerializedData { return { ['enterprise_has_two_factor_auth_enabled']: val.enterpriseHasTwoFactorAuthEnabled, ['user_has_two_factor_authentication_enabled']: val.userHasTwoFactorAuthenticationEnabled, }; } export function deserializeCollaborationAcceptanceRequirementsStatusTwoFactorAuthenticationRequirementField( val: SerializedData, ): CollaborationAcceptanceRequirementsStatusTwoFactorAuthenticationRequirementField { if (!sdIsMap(val)) { throw new BoxSdkError({ message: 'Expecting a map for "CollaborationAcceptanceRequirementsStatusTwoFactorAuthenticationRequirementField"', }); } if ( !(val.enterprise_has_two_factor_auth_enabled == void 0) && !sdIsBoolean(val.enterprise_has_two_factor_auth_enabled) ) { throw new BoxSdkError({ message: 'Expecting boolean for "enterprise_has_two_factor_auth_enabled" of type "CollaborationAcceptanceRequirementsStatusTwoFactorAuthenticationRequirementField"', }); } const enterpriseHasTwoFactorAuthEnabled: undefined | boolean = val.enterprise_has_two_factor_auth_enabled == void 0 ? void 0 : val.enterprise_has_two_factor_auth_enabled; if ( !(val.user_has_two_factor_authentication_enabled == void 0) && !sdIsBoolean(val.user_has_two_factor_authentication_enabled) ) { throw new BoxSdkError({ message: 'Expecting boolean for "user_has_two_factor_authentication_enabled" of type "CollaborationAcceptanceRequirementsStatusTwoFactorAuthenticationRequirementField"', }); } const userHasTwoFactorAuthenticationEnabled: undefined | boolean = val.user_has_two_factor_authentication_enabled == void 0 ? void 0 : val.user_has_two_factor_authentication_enabled; return { enterpriseHasTwoFactorAuthEnabled: enterpriseHasTwoFactorAuthEnabled, userHasTwoFactorAuthenticationEnabled: userHasTwoFactorAuthenticationEnabled, } satisfies CollaborationAcceptanceRequirementsStatusTwoFactorAuthenticationRequirementField; } export function serializeCollaborationAcceptanceRequirementsStatusField( val: CollaborationAcceptanceRequirementsStatusField, ): SerializedData { return { ['terms_of_service_requirement']: val.termsOfServiceRequirement == void 0 ? val.termsOfServiceRequirement : serializeCollaborationAcceptanceRequirementsStatusTermsOfServiceRequirementField( val.termsOfServiceRequirement, ), ['strong_password_requirement']: val.strongPasswordRequirement == void 0 ? val.strongPasswordRequirement : serializeCollaborationAcceptanceRequirementsStatusStrongPasswordRequirementField( val.strongPasswordRequirement, ), ['two_factor_authentication_requirement']: val.twoFactorAuthenticationRequirement == void 0 ? val.twoFactorAuthenticationRequirement : serializeCollaborationAcceptanceRequirementsStatusTwoFactorAuthenticationRequirementField( val.twoFactorAuthenticationRequirement, ), }; } export function deserializeCollaborationAcceptanceRequirementsStatusField( val: SerializedData, ): CollaborationAcceptanceRequirementsStatusField { if (!sdIsMap(val)) { throw new BoxSdkError({ message: 'Expecting a map for "CollaborationAcceptanceRequirementsStatusField"', }); } const termsOfServiceRequirement: | undefined | CollaborationAcceptanceRequirementsStatusTermsOfServiceRequirementField = val.terms_of_service_requirement == void 0 ? void 0 : deserializeCollaborationAcceptanceRequirementsStatusTermsOfServiceRequirementField( val.terms_of_service_requirement, ); const strongPasswordRequirement: | undefined | CollaborationAcceptanceRequirementsStatusStrongPasswordRequirementField = val.strong_password_requirement == void 0 ? void 0 : deserializeCollaborationAcceptanceRequirementsStatusStrongPasswordRequirementField( val.strong_password_requirement, ); const twoFactorAuthenticationRequirement: | undefined | CollaborationAcceptanceRequirementsStatusTwoFactorAuthenticationRequirementField = val.two_factor_authentication_requirement == void 0 ? void 0 : deserializeCollaborationAcceptanceRequirementsStatusTwoFactorAuthenticationRequirementField( val.two_factor_authentication_requirement, ); return { termsOfServiceRequirement: termsOfServiceRequirement, strongPasswordRequirement: strongPasswordRequirement, twoFactorAuthenticationRequirement: twoFactorAuthenticationRequirement, } satisfies CollaborationAcceptanceRequirementsStatusField; } export function serializeCollaboration(val: Collaboration): SerializedData { return { ['id']: val.id, ['type']: serializeCollaborationTypeField(val.type), ['item']: val.item == void 0 ? val.item : serializeCollaborationItem(val.item), ['app_item']: val.appItem == void 0 ? val.appItem : serializeAppItem(val.appItem), ['accessible_by']: val.accessibleBy == void 0 ? val.accessibleBy : serializeCollaborationAccessGrantee(val.accessibleBy), ['invite_email']: val.inviteEmail, ['role']: val.role == void 0 ? val.role : serializeCollaborationRoleField(val.role), ['expires_at']: val.expiresAt == void 0 ? val.expiresAt : serializeDateTime(val.expiresAt), ['is_access_only']: val.isAccessOnly, ['status']: val.status == void 0 ? val.status : serializeCollaborationStatusField(val.status), ['acknowledged_at']: val.acknowledgedAt == void 0 ? val.acknowledgedAt : serializeDateTime(val.acknowledgedAt), ['created_by']: val.createdBy == void 0 ? val.createdBy : serializeUserCollaborations(val.createdBy), ['created_at']: val.createdAt == void 0 ? val.createdAt : serializeDateTime(val.createdAt), ['modified_at']: val.modifiedAt == void 0 ? val.modifiedAt : serializeDateTime(val.modifiedAt), ['acceptance_requirements_status']: val.acceptanceRequirementsStatus == void 0 ? val.acceptanceRequirementsStatus : serializeCollaborationAcceptanceRequirementsStatusField( val.acceptanceRequirementsStatus, ), }; } export function deserializeCollaboration(val: SerializedData): Collaboration { if (!sdIsMap(val)) { throw new BoxSdkError({ message: 'Expecting a map for "Collaboration"' }); } if (val.id == void 0) { throw new BoxSdkError({ message: 'Expecting "id" of type "Collaboration" to be defined', }); } if (!sdIsString(val.id)) { throw new BoxSdkError({ message: 'Expecting string for "id" of type "Collaboration"', }); } const id: string = val.id; if (val.type == void 0) { throw new BoxSdkError({ message: 'Expecting "type" of type "Collaboration" to be defined', }); } const type: CollaborationTypeField = deserializeCollaborationTypeField( val.type, ); const item: undefined | CollaborationItem = val.item == void 0 ? void 0 : deserializeCollaborationItem(val.item); const appItem: undefined | AppItem = val.app_item == void 0 ? void 0 : deserializeAppItem(val.app_item); const accessibleBy: undefined | CollaborationAccessGrantee = val.accessible_by == void 0 ? void 0 : deserializeCollaborationAccessGrantee(val.accessible_by); if (!(val.invite_email == void 0) && !sdIsString(val.invite_email)) { throw new BoxSdkError({ message: 'Expecting string for "invite_email" of type "Collaboration"', }); } const inviteEmail: undefined | string = val.invite_email == void 0 ? void 0 : val.invite_email; const role: undefined | CollaborationRoleField = val.role == void 0 ? void 0 : deserializeCollaborationRoleField(val.role); if (!(val.expires_at == void 0) && !sdIsString(val.expires_at)) { throw new BoxSdkError({ message: 'Expecting string for "expires_at" of type "Collaboration"', }); } const expiresAt: undefined | DateTime = val.expires_at == void 0 ? void 0 : deserializeDateTime(val.expires_at); if (!(val.is_access_only == void 0) && !sdIsBoolean(val.is_access_only)) { throw new BoxSdkError({ message: 'Expecting boolean for "is_access_only" of type "Collaboration"', }); } const isAccessOnly: undefined | boolean = val.is_access_only == void 0 ? void 0 : val.is_access_only; const status: undefined | CollaborationStatusField = val.status == void 0 ? void 0 : deserializeCollaborationStatusField(val.status); if (!(val.acknowledged_at == void 0) && !sdIsString(val.acknowledged_at)) { throw new BoxSdkError({ message: 'Expecting string for "acknowledged_at" of type "Collaboration"', }); } const acknowledgedAt: undefined | DateTime = val.acknowledged_at == void 0 ? void 0 : deserializeDateTime(val.acknowledged_at); const createdBy: undefined | UserCollaborations = val.created_by == void 0 ? void 0 : deserializeUserCollaborations(val.created_by); if (!(val.created_at == void 0) && !sdIsString(val.created_at)) { throw new BoxSdkError({ message: 'Expecting string for "created_at" of type "Collaboration"', }); } 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 "Collaboration"', }); } const modifiedAt: undefined | DateTime = val.modified_at == void 0 ? void 0 : deserializeDateTime(val.modified_at); const acceptanceRequirementsStatus: | undefined | CollaborationAcceptanceRequirementsStatusField = val.acceptance_requirements_status == void 0 ? void 0 : deserializeCollaborationAcceptanceRequirementsStatusField( val.acceptance_requirements_status, ); return { id: id, type: type, item: item, appItem: appItem, accessibleBy: accessibleBy, inviteEmail: inviteEmail, role: role, expiresAt: expiresAt, isAccessOnly: isAccessOnly, status: status, acknowledgedAt: acknowledgedAt, createdBy: createdBy, createdAt: createdAt, modifiedAt: modifiedAt, acceptanceRequirementsStatus: acceptanceRequirementsStatus, } satisfies Collaboration; } export function serializeCollaborationInput( val: CollaborationInput, ): SerializedData { return { ['id']: val.id, ['type']: val.type == void 0 ? val.type : serializeCollaborationTypeField(val.type), ['item']: val.item == void 0 ? val.item : serializeCollaborationItem(val.item), ['app_item']: val.appItem == void 0 ? val.appItem : serializeAppItem(val.appItem), ['accessible_by']: val.accessibleBy == void 0 ? val.accessibleBy : serializeCollaborationAccessGrantee(val.accessibleBy), ['invite_email']: val.inviteEmail, ['role']: val.role == void 0 ? val.role : serializeCollaborationRoleField(val.role), ['expires_at']: val.expiresAt == void 0 ? val.expiresAt : serializeDateTime(val.expiresAt), ['is_access_only']: val.isAccessOnly, ['status']: val.status == void 0 ? val.status : serializeCollaborationStatusField(val.status), ['acknowledged_at']: val.acknowledgedAt == void 0 ? val.acknowledgedAt : serializeDateTime(val.acknowledgedAt), ['created_by']: val.createdBy == void 0 ? val.createdBy : serializeUserCollaborations(val.createdBy), ['created_at']: val.createdAt == void 0 ? val.createdAt : serializeDateTime(val.createdAt), ['modified_at']: val.modifiedAt == void 0 ? val.modifiedAt : serializeDateTime(val.modifiedAt), ['acceptance_requirements_status']: val.acceptanceRequirementsStatus == void 0 ? val.acceptanceRequirementsStatus : serializeCollaborationAcceptanceRequirementsStatusField( val.acceptanceRequirementsStatus, ), }; } export function deserializeCollaborationInput( val: SerializedData, ): CollaborationInput { if (!sdIsMap(val)) { throw new BoxSdkError({ message: 'Expecting a map for "CollaborationInput"', }); } if (val.id == void 0) { throw new BoxSdkError({ message: 'Expecting "id" of type "CollaborationInput" to be defined', }); } if (!sdIsString(val.id)) { throw new BoxSdkError({ message: 'Expecting string for "id" of type "CollaborationInput"', }); } const id: string = val.id; const type: undefined | CollaborationTypeField = val.type == void 0 ? void 0 : deserializeCollaborationTypeField(val.type); const item: undefined | CollaborationItem = val.item == void 0 ? void 0 : deserializeCollaborationItem(val.item); const appItem: undefined | AppItem = val.app_item == void 0 ? void 0 : deserializeAppItem(val.app_item); const accessibleBy: undefined | CollaborationAccessGrantee = val.accessible_by == void 0 ? void 0 : deserializeCollaborationAccessGrantee(val.accessible_by); if (!(val.invite_email == void 0) && !sdIsString(val.invite_email)) { throw new BoxSdkError({ message: 'Expecting string for "invite_email" of type "CollaborationInput"', }); } const inviteEmail: undefined | string = val.invite_email == void 0 ? void 0 : val.invite_email; const role: undefined | CollaborationRoleField = val.role == void 0 ? void 0 : deserializeCollaborationRoleField(val.role); if (!(val.expires_at == void 0) && !sdIsString(val.expires_at)) { throw new BoxSdkError({ message: 'Expecting string for "expires_at" of type "CollaborationInput"', }); } const expiresAt: undefined | DateTime = val.expires_at == void 0 ? void 0 : deserializeDateTime(val.expires_at); if (!(val.is_access_only == void 0) && !sdIsBoolean(val.is_access_only)) { throw new BoxSdkError({ message: 'Expecting boolean for "is_access_only" of type "CollaborationInput"', }); } const isAccessOnly: undefined | boolean = val.is_access_only == void 0 ? void 0 : val.is_access_only; const status: undefined | CollaborationStatusField = val.status == void 0 ? void 0 : deserializeCollaborationStatusField(val.status); if (!(val.acknowledged_at == void 0) && !sdIsString(val.acknowledged_at)) { throw new BoxSdkError({ message: 'Expecting string for "acknowledged_at" of type "CollaborationInput"', }); } const acknowledgedAt: undefined | DateTime = val.acknowledged_at == void 0 ? void 0 : deserializeDateTime(val.acknowledged_at); const createdBy: undefined | UserCollaborations = val.created_by == void 0 ? void 0 : deserializeUserCollaborations(val.created_by); if (!(val.created_at == void 0) && !sdIsString(val.created_at)) { throw new BoxSdkError({ message: 'Expecting string for "created_at" of type "CollaborationInput"', }); } 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 "CollaborationInput"', }); } const modifiedAt: undefined | DateTime = val.modified_at == void 0 ? void 0 : deserializeDateTime(val.modified_at); const acceptanceRequirementsStatus: | undefined | CollaborationAcceptanceRequirementsStatusField = val.acceptance_requirements_status == void 0 ? void 0 : deserializeCollaborationAcceptanceRequirementsStatusField( val.acceptance_requirements_status, ); return { id: id, type: type, item: item, appItem: appItem, accessibleBy: accessibleBy, inviteEmail: inviteEmail, role: role, expiresAt: expiresAt, isAccessOnly: isAccessOnly, status: status, acknowledgedAt: acknowledgedAt, createdBy: createdBy, createdAt: createdAt, modifiedAt: modifiedAt, acceptanceRequirementsStatus: acceptanceRequirementsStatus, } satisfies CollaborationInput; }