UNPKG

box-node-sdk

Version:

Official SDK for Box Platform APIs

773 lines (772 loc) 19.8 kB
import { serializeUser } from './user'; import { deserializeUser } from './user'; import { serializeEventSource } from './eventSource'; import { deserializeEventSource } from './eventSource'; import { serializeFile } from './file'; import { deserializeFile } from './file'; import { serializeFolder } from './folder'; import { deserializeFolder } from './folder'; import { serializeGenericSource } from './genericSource'; import { deserializeGenericSource } from './genericSource'; import { serializeAppItemEventSource } from './appItemEventSource'; import { deserializeAppItemEventSource } from './appItemEventSource'; import { serializeUserMini } from './userMini'; import { deserializeUserMini } from './userMini'; import { serializeEventSourceResource } from './eventSourceResource'; import { deserializeEventSourceResource } from './eventSourceResource'; import { serializeDateTime } from '../internal/utils'; import { deserializeDateTime } from '../internal/utils'; import { User } from './user'; import { EventSource } from './eventSource'; import { File } from './file'; import { Folder } from './folder'; import { GenericSource } from './genericSource'; import { AppItemEventSource } from './appItemEventSource'; import { UserMini } from './userMini'; import { EventSourceResource } from './eventSourceResource'; 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 EventEventTypeField = | 'ACCESS_GRANTED' | 'ACCESS_REVOKED' | 'ADD_DEVICE_ASSOCIATION' | 'ADD_LOGIN_ACTIVITY_DEVICE' | 'ADMIN_LOGIN' | 'APPLICATION_CREATED' | 'APPLICATION_PUBLIC_KEY_ADDED' | 'APPLICATION_PUBLIC_KEY_DELETED' | 'CHANGE_ADMIN_ROLE' | 'CHANGE_FOLDER_PERMISSION' | 'COLLABORATION_ACCEPT' | 'COLLABORATION_EXPIRATION' | 'COLLABORATION_INVITE' | 'COLLABORATION_REMOVE' | 'COLLABORATION_ROLE_CHANGE' | 'COLLAB_ADD_COLLABORATOR' | 'COLLAB_INVITE_COLLABORATOR' | 'COLLAB_REMOVE_COLLABORATOR' | 'COLLAB_ROLE_CHANGE' | 'COMMENT_CREATE' | 'COMMENT_DELETE' | 'CONTENT_ACCESS' | 'CONTENT_WORKFLOW_ABNORMAL_DOWNLOAD_ACTIVITY' | 'CONTENT_WORKFLOW_AUTOMATION_ADD' | 'CONTENT_WORKFLOW_AUTOMATION_DELETE' | 'CONTENT_WORKFLOW_POLICY_ADD' | 'CONTENT_WORKFLOW_SHARING_POLICY_VIOLATION' | 'CONTENT_WORKFLOW_UPLOAD_POLICY_VIOLATION' | 'COPY' | 'DATA_RETENTION_CREATE_RETENTION' | 'DATA_RETENTION_REMOVE_RETENTION' | 'DELETE' | 'DELETE_USER' | 'DEVICE_TRUST_CHECK_FAILED' | 'DOWNLOAD' | 'EDIT' | 'EDIT_USER' | 'EDR_CROWDSTRIKE_DEVICE_DETECTED' | 'EDR_CROWDSTRIKE_NO_BOX_TOOLS' | 'EDR_CROWDSTRIKE_BOX_TOOLS_OUTDATED' | 'EDR_CROWDSTRIKE_DRIVE_OUTDATED' | 'EDR_CROWDSTRIKE_ACCESS_ALLOWED_NO_CROWDSTRIKE_DEVICE' | 'EDR_CROWDSTRIKE_ACCESS_REVOKED' | 'EMAIL_ALIAS_CONFIRM' | 'EMAIL_ALIAS_REMOVE' | 'ENABLE_TWO_FACTOR_AUTH' | 'ENTERPRISE_APP_AUTHORIZATION_UPDATE' | 'FAILED_LOGIN' | 'FILE_MARKED_MALICIOUS' | 'FILE_WATERMARKED_DOWNLOAD' | 'GROUP_ADD_ITEM' | 'GROUP_ADD_USER' | 'GROUP_CREATION' | 'GROUP_DELETION' | 'GROUP_EDITED' | 'GROUP_REMOVE_ITEM' | 'GROUP_REMOVE_USER' | 'ITEM_COPY' | 'ITEM_CREATE' | 'ITEM_DOWNLOAD' | 'ITEM_EMAIL_SEND' | 'ITEM_MAKE_CURRENT_VERSION' | 'ITEM_MODIFY' | 'ITEM_MOVE' | 'ITEM_OPEN' | 'ITEM_PREVIEW' | 'ITEM_RENAME' | 'ITEM_SHARED' | 'ITEM_SHARED_CREATE' | 'ITEM_SHARED_UNSHARE' | 'ITEM_SHARED_UPDATE' | 'ITEM_SYNC' | 'ITEM_TRASH' | 'ITEM_UNDELETE_VIA_TRASH' | 'ITEM_UNSYNC' | 'ITEM_UPLOAD' | 'LEGAL_HOLD_ASSIGNMENT_CREATE' | 'LEGAL_HOLD_ASSIGNMENT_DELETE' | 'LEGAL_HOLD_POLICY_CREATE' | 'LEGAL_HOLD_POLICY_DELETE' | 'LEGAL_HOLD_POLICY_UPDATE' | 'LOCK' | 'LOCK_CREATE' | 'LOCK_DESTROY' | 'LOGIN' | 'MASTER_INVITE_ACCEPT' | 'MASTER_INVITE_REJECT' | 'METADATA_INSTANCE_CREATE' | 'METADATA_INSTANCE_DELETE' | 'METADATA_INSTANCE_UPDATE' | 'METADATA_TEMPLATE_CREATE' | 'METADATA_TEMPLATE_DELETE' | 'METADATA_TEMPLATE_UPDATE' | 'MOVE' | 'NEW_USER' | 'PREVIEW' | 'REMOVE_DEVICE_ASSOCIATION' | 'REMOVE_LOGIN_ACTIVITY_DEVICE' | 'RENAME' | 'RETENTION_POLICY_ASSIGNMENT_ADD' | 'SHARE' | 'SHARED_LINK_SEND' | 'SHARE_EXPIRATION' | 'SHIELD_ALERT' | 'SHIELD_EXTERNAL_COLLAB_ACCESS_BLOCKED' | 'SHIELD_EXTERNAL_COLLAB_ACCESS_BLOCKED_MISSING_JUSTIFICATION' | 'SHIELD_EXTERNAL_COLLAB_INVITE_BLOCKED' | 'SHIELD_EXTERNAL_COLLAB_INVITE_BLOCKED_MISSING_JUSTIFICATION' | 'SHIELD_JUSTIFICATION_APPROVAL' | 'SHIELD_SHARED_LINK_ACCESS_BLOCKED' | 'SHIELD_SHARED_LINK_STATUS_RESTRICTED_ON_CREATE' | 'SHIELD_SHARED_LINK_STATUS_RESTRICTED_ON_UPDATE' | 'SIGN_DOCUMENT_ASSIGNED' | 'SIGN_DOCUMENT_CANCELLED' | 'SIGN_DOCUMENT_COMPLETED' | 'SIGN_DOCUMENT_CONVERTED' | 'SIGN_DOCUMENT_CREATED' | 'SIGN_DOCUMENT_DECLINED' | 'SIGN_DOCUMENT_EXPIRED' | 'SIGN_DOCUMENT_SIGNED' | 'SIGN_DOCUMENT_VIEWED_BY_SIGNED' | 'SIGNER_DOWNLOADED' | 'SIGNER_FORWARDED' | 'STORAGE_EXPIRATION' | 'TAG_ITEM_CREATE' | 'TASK_ASSIGNMENT_CREATE' | 'TASK_ASSIGNMENT_DELETE' | 'TASK_ASSIGNMENT_UPDATE' | 'TASK_CREATE' | 'TASK_UPDATE' | 'TERMS_OF_SERVICE_ACCEPT' | 'TERMS_OF_SERVICE_REJECT' | 'UNDELETE' | 'UNLOCK' | 'UNSHARE' | 'UPDATE_COLLABORATION_EXPIRATION' | 'UPDATE_SHARE_EXPIRATION' | 'UPLOAD' | 'USER_AUTHENTICATE_OAUTH2_ACCESS_TOKEN_CREATE' | 'WATERMARK_LABEL_CREATE' | 'WATERMARK_LABEL_DELETE' | string; export interface Event { /** * The value will always be `event`. */ readonly type?: string; /** * When the event object was created. */ readonly createdAt?: DateTime; /** * When the event object was recorded in database. */ readonly recordedAt?: DateTime; /** * The ID of the event object. You can use this to detect duplicate events. */ readonly eventId?: string; readonly createdBy?: UserMini; readonly eventType?: EventEventTypeField; /** * The session of the user that performed the action. Not all events will * populate this attribute. */ readonly sessionId?: string; readonly source?: EventSourceResource; /** * This object provides additional information about the event if available. * * This can include how a user performed an event as well as additional * information to correlate an event to external KeySafe logs. Not all events * have an `additional_details` object. This object is only available in the * Enterprise Events. */ readonly additionalDetails?: { readonly [key: string]: any; }; readonly rawData?: SerializedData; } export function serializeEventEventTypeField( val: EventEventTypeField, ): SerializedData { return val; } export function deserializeEventEventTypeField( val: SerializedData, ): EventEventTypeField { if (val == 'ACCESS_GRANTED') { return val; } if (val == 'ACCESS_REVOKED') { return val; } if (val == 'ADD_DEVICE_ASSOCIATION') { return val; } if (val == 'ADD_LOGIN_ACTIVITY_DEVICE') { return val; } if (val == 'ADMIN_LOGIN') { return val; } if (val == 'APPLICATION_CREATED') { return val; } if (val == 'APPLICATION_PUBLIC_KEY_ADDED') { return val; } if (val == 'APPLICATION_PUBLIC_KEY_DELETED') { return val; } if (val == 'CHANGE_ADMIN_ROLE') { return val; } if (val == 'CHANGE_FOLDER_PERMISSION') { return val; } if (val == 'COLLABORATION_ACCEPT') { return val; } if (val == 'COLLABORATION_EXPIRATION') { return val; } if (val == 'COLLABORATION_INVITE') { return val; } if (val == 'COLLABORATION_REMOVE') { return val; } if (val == 'COLLABORATION_ROLE_CHANGE') { return val; } if (val == 'COLLAB_ADD_COLLABORATOR') { return val; } if (val == 'COLLAB_INVITE_COLLABORATOR') { return val; } if (val == 'COLLAB_REMOVE_COLLABORATOR') { return val; } if (val == 'COLLAB_ROLE_CHANGE') { return val; } if (val == 'COMMENT_CREATE') { return val; } if (val == 'COMMENT_DELETE') { return val; } if (val == 'CONTENT_ACCESS') { return val; } if (val == 'CONTENT_WORKFLOW_ABNORMAL_DOWNLOAD_ACTIVITY') { return val; } if (val == 'CONTENT_WORKFLOW_AUTOMATION_ADD') { return val; } if (val == 'CONTENT_WORKFLOW_AUTOMATION_DELETE') { return val; } if (val == 'CONTENT_WORKFLOW_POLICY_ADD') { return val; } if (val == 'CONTENT_WORKFLOW_SHARING_POLICY_VIOLATION') { return val; } if (val == 'CONTENT_WORKFLOW_UPLOAD_POLICY_VIOLATION') { return val; } if (val == 'COPY') { return val; } if (val == 'DATA_RETENTION_CREATE_RETENTION') { return val; } if (val == 'DATA_RETENTION_REMOVE_RETENTION') { return val; } if (val == 'DELETE') { return val; } if (val == 'DELETE_USER') { return val; } if (val == 'DEVICE_TRUST_CHECK_FAILED') { return val; } if (val == 'DOWNLOAD') { return val; } if (val == 'EDIT') { return val; } if (val == 'EDIT_USER') { return val; } if (val == 'EDR_CROWDSTRIKE_DEVICE_DETECTED') { return val; } if (val == 'EDR_CROWDSTRIKE_NO_BOX_TOOLS') { return val; } if (val == 'EDR_CROWDSTRIKE_BOX_TOOLS_OUTDATED') { return val; } if (val == 'EDR_CROWDSTRIKE_DRIVE_OUTDATED') { return val; } if (val == 'EDR_CROWDSTRIKE_ACCESS_ALLOWED_NO_CROWDSTRIKE_DEVICE') { return val; } if (val == 'EDR_CROWDSTRIKE_ACCESS_REVOKED') { return val; } if (val == 'EMAIL_ALIAS_CONFIRM') { return val; } if (val == 'EMAIL_ALIAS_REMOVE') { return val; } if (val == 'ENABLE_TWO_FACTOR_AUTH') { return val; } if (val == 'ENTERPRISE_APP_AUTHORIZATION_UPDATE') { return val; } if (val == 'FAILED_LOGIN') { return val; } if (val == 'FILE_MARKED_MALICIOUS') { return val; } if (val == 'FILE_WATERMARKED_DOWNLOAD') { return val; } if (val == 'GROUP_ADD_ITEM') { return val; } if (val == 'GROUP_ADD_USER') { return val; } if (val == 'GROUP_CREATION') { return val; } if (val == 'GROUP_DELETION') { return val; } if (val == 'GROUP_EDITED') { return val; } if (val == 'GROUP_REMOVE_ITEM') { return val; } if (val == 'GROUP_REMOVE_USER') { return val; } if (val == 'ITEM_COPY') { return val; } if (val == 'ITEM_CREATE') { return val; } if (val == 'ITEM_DOWNLOAD') { return val; } if (val == 'ITEM_EMAIL_SEND') { return val; } if (val == 'ITEM_MAKE_CURRENT_VERSION') { return val; } if (val == 'ITEM_MODIFY') { return val; } if (val == 'ITEM_MOVE') { return val; } if (val == 'ITEM_OPEN') { return val; } if (val == 'ITEM_PREVIEW') { return val; } if (val == 'ITEM_RENAME') { return val; } if (val == 'ITEM_SHARED') { return val; } if (val == 'ITEM_SHARED_CREATE') { return val; } if (val == 'ITEM_SHARED_UNSHARE') { return val; } if (val == 'ITEM_SHARED_UPDATE') { return val; } if (val == 'ITEM_SYNC') { return val; } if (val == 'ITEM_TRASH') { return val; } if (val == 'ITEM_UNDELETE_VIA_TRASH') { return val; } if (val == 'ITEM_UNSYNC') { return val; } if (val == 'ITEM_UPLOAD') { return val; } if (val == 'LEGAL_HOLD_ASSIGNMENT_CREATE') { return val; } if (val == 'LEGAL_HOLD_ASSIGNMENT_DELETE') { return val; } if (val == 'LEGAL_HOLD_POLICY_CREATE') { return val; } if (val == 'LEGAL_HOLD_POLICY_DELETE') { return val; } if (val == 'LEGAL_HOLD_POLICY_UPDATE') { return val; } if (val == 'LOCK') { return val; } if (val == 'LOCK_CREATE') { return val; } if (val == 'LOCK_DESTROY') { return val; } if (val == 'LOGIN') { return val; } if (val == 'MASTER_INVITE_ACCEPT') { return val; } if (val == 'MASTER_INVITE_REJECT') { return val; } if (val == 'METADATA_INSTANCE_CREATE') { return val; } if (val == 'METADATA_INSTANCE_DELETE') { return val; } if (val == 'METADATA_INSTANCE_UPDATE') { return val; } if (val == 'METADATA_TEMPLATE_CREATE') { return val; } if (val == 'METADATA_TEMPLATE_DELETE') { return val; } if (val == 'METADATA_TEMPLATE_UPDATE') { return val; } if (val == 'MOVE') { return val; } if (val == 'NEW_USER') { return val; } if (val == 'PREVIEW') { return val; } if (val == 'REMOVE_DEVICE_ASSOCIATION') { return val; } if (val == 'REMOVE_LOGIN_ACTIVITY_DEVICE') { return val; } if (val == 'RENAME') { return val; } if (val == 'RETENTION_POLICY_ASSIGNMENT_ADD') { return val; } if (val == 'SHARE') { return val; } if (val == 'SHARED_LINK_SEND') { return val; } if (val == 'SHARE_EXPIRATION') { return val; } if (val == 'SHIELD_ALERT') { return val; } if (val == 'SHIELD_EXTERNAL_COLLAB_ACCESS_BLOCKED') { return val; } if (val == 'SHIELD_EXTERNAL_COLLAB_ACCESS_BLOCKED_MISSING_JUSTIFICATION') { return val; } if (val == 'SHIELD_EXTERNAL_COLLAB_INVITE_BLOCKED') { return val; } if (val == 'SHIELD_EXTERNAL_COLLAB_INVITE_BLOCKED_MISSING_JUSTIFICATION') { return val; } if (val == 'SHIELD_JUSTIFICATION_APPROVAL') { return val; } if (val == 'SHIELD_SHARED_LINK_ACCESS_BLOCKED') { return val; } if (val == 'SHIELD_SHARED_LINK_STATUS_RESTRICTED_ON_CREATE') { return val; } if (val == 'SHIELD_SHARED_LINK_STATUS_RESTRICTED_ON_UPDATE') { return val; } if (val == 'SIGN_DOCUMENT_ASSIGNED') { return val; } if (val == 'SIGN_DOCUMENT_CANCELLED') { return val; } if (val == 'SIGN_DOCUMENT_COMPLETED') { return val; } if (val == 'SIGN_DOCUMENT_CONVERTED') { return val; } if (val == 'SIGN_DOCUMENT_CREATED') { return val; } if (val == 'SIGN_DOCUMENT_DECLINED') { return val; } if (val == 'SIGN_DOCUMENT_EXPIRED') { return val; } if (val == 'SIGN_DOCUMENT_SIGNED') { return val; } if (val == 'SIGN_DOCUMENT_VIEWED_BY_SIGNED') { return val; } if (val == 'SIGNER_DOWNLOADED') { return val; } if (val == 'SIGNER_FORWARDED') { return val; } if (val == 'STORAGE_EXPIRATION') { return val; } if (val == 'TAG_ITEM_CREATE') { return val; } if (val == 'TASK_ASSIGNMENT_CREATE') { return val; } if (val == 'TASK_ASSIGNMENT_DELETE') { return val; } if (val == 'TASK_ASSIGNMENT_UPDATE') { return val; } if (val == 'TASK_CREATE') { return val; } if (val == 'TASK_UPDATE') { return val; } if (val == 'TERMS_OF_SERVICE_ACCEPT') { return val; } if (val == 'TERMS_OF_SERVICE_REJECT') { return val; } if (val == 'UNDELETE') { return val; } if (val == 'UNLOCK') { return val; } if (val == 'UNSHARE') { return val; } if (val == 'UPDATE_COLLABORATION_EXPIRATION') { return val; } if (val == 'UPDATE_SHARE_EXPIRATION') { return val; } if (val == 'UPLOAD') { return val; } if (val == 'USER_AUTHENTICATE_OAUTH2_ACCESS_TOKEN_CREATE') { return val; } if (val == 'WATERMARK_LABEL_CREATE') { return val; } if (val == 'WATERMARK_LABEL_DELETE') { return val; } if (sdIsString(val)) { return val; } throw new BoxSdkError({ message: "Can't deserialize EventEventTypeField" }); } export function serializeEvent(val: Event): SerializedData { return { ['type']: val.type, ['created_at']: val.createdAt == void 0 ? val.createdAt : serializeDateTime(val.createdAt), ['recorded_at']: val.recordedAt == void 0 ? val.recordedAt : serializeDateTime(val.recordedAt), ['event_id']: val.eventId, ['created_by']: val.createdBy == void 0 ? val.createdBy : serializeUserMini(val.createdBy), ['event_type']: val.eventType == void 0 ? val.eventType : serializeEventEventTypeField(val.eventType), ['session_id']: val.sessionId, ['source']: val.source == void 0 ? val.source : serializeEventSourceResource(val.source), ['additional_details']: val.additionalDetails == void 0 ? val.additionalDetails : (Object.fromEntries( Object.entries(val.additionalDetails).map( ([k, v]: [string, any]) => [ k, (function (v: any): any { return v; })(v), ], ), ) as { readonly [key: string]: any; }), }; } export function deserializeEvent(val: SerializedData): Event { if (!sdIsMap(val)) { throw new BoxSdkError({ message: 'Expecting a map for "Event"' }); } if (!(val.type == void 0) && !sdIsString(val.type)) { throw new BoxSdkError({ message: 'Expecting string for "type" of type "Event"', }); } const type: undefined | string = val.type == void 0 ? void 0 : val.type; if (!(val.created_at == void 0) && !sdIsString(val.created_at)) { throw new BoxSdkError({ message: 'Expecting string for "created_at" of type "Event"', }); } const createdAt: undefined | DateTime = val.created_at == void 0 ? void 0 : deserializeDateTime(val.created_at); if (!(val.recorded_at == void 0) && !sdIsString(val.recorded_at)) { throw new BoxSdkError({ message: 'Expecting string for "recorded_at" of type "Event"', }); } const recordedAt: undefined | DateTime = val.recorded_at == void 0 ? void 0 : deserializeDateTime(val.recorded_at); if (!(val.event_id == void 0) && !sdIsString(val.event_id)) { throw new BoxSdkError({ message: 'Expecting string for "event_id" of type "Event"', }); } const eventId: undefined | string = val.event_id == void 0 ? void 0 : val.event_id; const createdBy: undefined | UserMini = val.created_by == void 0 ? void 0 : deserializeUserMini(val.created_by); const eventType: undefined | EventEventTypeField = val.event_type == void 0 ? void 0 : deserializeEventEventTypeField(val.event_type); if (!(val.session_id == void 0) && !sdIsString(val.session_id)) { throw new BoxSdkError({ message: 'Expecting string for "session_id" of type "Event"', }); } const sessionId: undefined | string = val.session_id == void 0 ? void 0 : val.session_id; const source: undefined | EventSourceResource = val.source == void 0 ? void 0 : deserializeEventSourceResource(val.source); if (!(val.additional_details == void 0) && !sdIsMap(val.additional_details)) { throw new BoxSdkError({ message: 'Expecting object for "additional_details" of type "Event"', }); } const additionalDetails: | undefined | { readonly [key: string]: any; } = val.additional_details == void 0 ? void 0 : sdIsMap(val.additional_details) ? (Object.fromEntries( Object.entries(val.additional_details).map( ([k, v]: [string, any]) => [ k, (function (v: any): any { return v; })(v), ], ), ) as { readonly [key: string]: any; }) : {}; return { type: type, createdAt: createdAt, recordedAt: recordedAt, eventId: eventId, createdBy: createdBy, eventType: eventType, sessionId: sessionId, source: source, additionalDetails: additionalDetails, } satisfies Event; }