UNPKG

box-node-sdk

Version:

Official SDK for Box Platform APIs

1,400 lines (1,399 loc) 39.1 kB
import { serializeRealtimeServers } from '../schemas/realtimeServers'; import { deserializeRealtimeServers } from '../schemas/realtimeServers'; import { serializeClientError } from '../schemas/clientError'; import { deserializeClientError } from '../schemas/clientError'; import { serializeEvents } from '../schemas/events'; import { deserializeEvents } from '../schemas/events'; import { serializeDateTime } from '../internal/utils'; import { deserializeDateTime } from '../internal/utils'; import { ResponseFormat } from '../networking/fetchOptions'; import { RealtimeServers } from '../schemas/realtimeServers'; import { ClientError } from '../schemas/clientError'; import { Events } from '../schemas/events'; import { BoxSdkError } from '../box/errors'; import { Authentication } from '../networking/auth'; import { NetworkSession } from '../networking/network'; import { FetchOptions } from '../networking/fetchOptions'; import { FetchResponse } from '../networking/fetchResponse'; import { prepareParams } from '../internal/utils'; import { toString } from '../internal/utils'; import { ByteStream } from '../internal/utils'; import { CancellationToken } from '../internal/utils'; import { SerializedData } from '../serialization/json'; import { DateTime } from '../internal/utils'; import { sdToJson } from '../serialization/json'; import { EventStream } from '../box/eventStream'; 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 class GetEventsWithLongPollingHeaders { /** * Extra headers that will be included in the HTTP request. */ readonly extraHeaders?: { readonly [key: string]: undefined | string; } = {}; constructor( fields: Omit<GetEventsWithLongPollingHeaders, 'extraHeaders'> & Partial<Pick<GetEventsWithLongPollingHeaders, 'extraHeaders'>>, ) { if (fields.extraHeaders !== undefined) { this.extraHeaders = fields.extraHeaders; } } } export interface GetEventsWithLongPollingHeadersInput { /** * Extra headers that will be included in the HTTP request. */ readonly extraHeaders?: { readonly [key: string]: undefined | string; }; } export type GetEventsQueryParamsStreamTypeField = | 'all' | 'changes' | 'sync' | 'admin_logs' | 'admin_logs_streaming' | string; export type GetEventsQueryParamsEventTypeField = | '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' | 'COMMENT_CREATE' | 'COMMENT_DELETE' | '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' | 'EMAIL_ALIAS_CONFIRM' | 'EMAIL_ALIAS_REMOVE' | 'ENTERPRISE_APP_AUTHORIZATION_UPDATE' | 'EXTERNAL_COLLAB_SECURITY_SETTINGS' | '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_EMAIL_SEND' | 'ITEM_MODIFY' | 'ITEM_OPEN' | 'ITEM_SHARED_UPDATE' | 'ITEM_SYNC' | 'ITEM_UNSYNC' | 'LEGAL_HOLD_ASSIGNMENT_CREATE' | 'LEGAL_HOLD_ASSIGNMENT_DELETE' | 'LEGAL_HOLD_POLICY_CREATE' | 'LEGAL_HOLD_POLICY_DELETE' | 'LEGAL_HOLD_POLICY_UPDATE' | 'LOCK' | 'LOGIN' | 'METADATA_INSTANCE_CREATE' | 'METADATA_INSTANCE_DELETE' | 'METADATA_INSTANCE_UPDATE' | 'METADATA_TEMPLATE_CREATE' | 'METADATA_TEMPLATE_DELETE' | 'METADATA_TEMPLATE_UPDATE' | 'MOVE' | 'NEW_USER' | 'OAUTH2_ACCESS_TOKEN_REVOKE' | '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' | '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 GetEventsQueryParams { /** * Defines the type of events that are returned * * * `all` returns everything for a user and is the default * * `changes` returns events that may cause file tree changes * such as file updates or collaborations. * * `sync` is similar to `changes` but only applies to synced folders * * `admin_logs` returns all events for an entire enterprise and * requires the user making the API call to have admin permissions. This * stream type is for programmatically pulling from a 1 year history of * events across all users within the enterprise and within a * `created_after` and `created_before` time frame. The complete history * of events will be returned in chronological order based on the event * time, but latency will be much higher than `admin_logs_streaming`. * * `admin_logs_streaming` returns all events for an entire enterprise and * requires the user making the API call to have admin permissions. This * stream type is for polling for recent events across all users within * the enterprise. Latency will be much lower than `admin_logs`, but * events will not be returned in chronological order and may * contain duplicates. */ readonly streamType?: GetEventsQueryParamsStreamTypeField; /** * The location in the event stream to start receiving events from. * * * `now` will return an empty list events and * the latest stream position for initialization. * * `0` or `null` will return all events. */ readonly streamPosition?: string; /** * Limits the number of events returned. * * Note: Sometimes, the events less than the limit requested can be returned * even when there may be more events remaining. This is primarily done in * the case where a number of events have already been retrieved and these * retrieved events are returned rather than delaying for an unknown amount * of time to see if there are any more results. */ readonly limit?: number; /** * A comma-separated list of events to filter by. This can only be used when * requesting the events with a `stream_type` of `admin_logs` or * `adming_logs_streaming`. For any other `stream_type` this value will be * ignored. */ readonly eventType?: readonly GetEventsQueryParamsEventTypeField[]; /** * The lower bound date and time to return events for. This can only be used * when requesting the events with a `stream_type` of `admin_logs`. For any * other `stream_type` this value will be ignored. */ readonly createdAfter?: DateTime; /** * The upper bound date and time to return events for. This can only be used * when requesting the events with a `stream_type` of `admin_logs`. For any * other `stream_type` this value will be ignored. */ readonly createdBefore?: DateTime; } export class GetEventsHeaders { /** * Extra headers that will be included in the HTTP request. */ readonly extraHeaders?: { readonly [key: string]: undefined | string; } = {}; constructor( fields: Omit<GetEventsHeaders, 'extraHeaders'> & Partial<Pick<GetEventsHeaders, 'extraHeaders'>>, ) { if (fields.extraHeaders !== undefined) { this.extraHeaders = fields.extraHeaders; } } } export interface GetEventsHeadersInput { /** * Extra headers that will be included in the HTTP request. */ readonly extraHeaders?: { readonly [key: string]: undefined | string; }; } export type GetEventStreamQueryParamsStreamTypeField = | 'all' | 'changes' | 'sync' | 'admin_logs' | 'admin_logs_streaming' | string; export type GetEventStreamQueryParamsEventTypeField = | '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' | 'COMMENT_CREATE' | 'COMMENT_DELETE' | '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' | 'EMAIL_ALIAS_CONFIRM' | 'EMAIL_ALIAS_REMOVE' | 'ENTERPRISE_APP_AUTHORIZATION_UPDATE' | 'EXTERNAL_COLLAB_SECURITY_SETTINGS' | '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_EMAIL_SEND' | 'ITEM_MODIFY' | 'ITEM_OPEN' | 'ITEM_SHARED_UPDATE' | 'ITEM_SYNC' | 'ITEM_UNSYNC' | 'LEGAL_HOLD_ASSIGNMENT_CREATE' | 'LEGAL_HOLD_ASSIGNMENT_DELETE' | 'LEGAL_HOLD_POLICY_CREATE' | 'LEGAL_HOLD_POLICY_DELETE' | 'LEGAL_HOLD_POLICY_UPDATE' | 'LOCK' | 'LOGIN' | 'METADATA_INSTANCE_CREATE' | 'METADATA_INSTANCE_DELETE' | 'METADATA_INSTANCE_UPDATE' | 'METADATA_TEMPLATE_CREATE' | 'METADATA_TEMPLATE_DELETE' | 'METADATA_TEMPLATE_UPDATE' | 'MOVE' | 'NEW_USER' | 'OAUTH2_ACCESS_TOKEN_REVOKE' | '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' | '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 GetEventStreamQueryParams { /** * Defines the type of events that are returned * * * `all` returns everything for a user and is the default * * `changes` returns events that may cause file tree changes * such as file updates or collaborations. * * `sync` is similar to `changes` but only applies to synced folders * * `admin_logs` returns all events for an entire enterprise and * requires the user making the API call to have admin permissions. This * stream type is for programmatically pulling from a 1 year history of * events across all users within the enterprise and within a * `created_after` and `created_before` time frame. The complete history * of events will be returned in chronological order based on the event * time, but latency will be much higher than `admin_logs_streaming`. * * `admin_logs_streaming` returns all events for an entire enterprise and * requires the user making the API call to have admin permissions. This * stream type is for polling for recent events across all users within * the enterprise. Latency will be much lower than `admin_logs`, but * events will not be returned in chronological order and may * contain duplicates. */ readonly streamType?: GetEventStreamQueryParamsStreamTypeField; /** * The location in the event stream to start receiving events from. * * * `now` will return an empty list events and * the latest stream position for initialization. * * `0` or `null` will return all events. */ readonly streamPosition?: string; /** * Limits the number of events returned. * * Note: Sometimes, the events less than the limit requested can be returned * even when there may be more events remaining. This is primarily done in * the case where a number of events have already been retrieved and these * retrieved events are returned rather than delaying for an unknown amount * of time to see if there are any more results. */ readonly limit?: number; /** * A comma-separated list of events to filter by. This can only be used when * requesting the events with a `stream_type` of `admin_logs` or * `adming_logs_streaming`. For any other `stream_type` this value will be * ignored. */ readonly eventType?: readonly GetEventStreamQueryParamsEventTypeField[]; /** * The lower bound date and time to return events for. This can only be used * when requesting the events with a `stream_type` of `admin_logs`. For any * other `stream_type` this value will be ignored. */ readonly createdAfter?: DateTime; /** * The upper bound date and time to return events for. This can only be used * when requesting the events with a `stream_type` of `admin_logs`. For any * other `stream_type` this value will be ignored. */ readonly createdBefore?: DateTime; } export class GetEventStreamHeaders { /** * Extra headers that will be included in the HTTP request. */ readonly extraHeaders?: { readonly [key: string]: undefined | string; } = {}; constructor( fields: Omit<GetEventStreamHeaders, 'extraHeaders'> & Partial<Pick<GetEventStreamHeaders, 'extraHeaders'>>, ) { if (fields.extraHeaders !== undefined) { this.extraHeaders = fields.extraHeaders; } } } export interface GetEventStreamHeadersInput { /** * Extra headers that will be included in the HTTP request. */ readonly extraHeaders?: { readonly [key: string]: undefined | string; }; } export class EventsManager { readonly auth?: Authentication; readonly networkSession: NetworkSession = new NetworkSession({}); constructor( fields: Omit< EventsManager, | 'networkSession' | 'getEventsWithLongPolling' | 'getEvents' | 'getEventStream' > & Partial<Pick<EventsManager, 'networkSession'>>, ) { if (fields.auth !== undefined) { this.auth = fields.auth; } if (fields.networkSession !== undefined) { this.networkSession = fields.networkSession; } } /** * Returns a list of real-time servers that can be used for long-polling updates * to the [event stream](#get-events). * * Long polling is the concept where a HTTP request is kept open until the * server sends a response, then repeating the process over and over to receive * updated responses. * * Long polling the event stream can only be used for user events, not for * enterprise events. * * To use long polling, first use this endpoint to retrieve a list of long poll * URLs. Next, make a long poll request to any of the provided URLs. * * When an event occurs in monitored account a response with the value * `new_change` will be sent. The response contains no other details as * it only serves as a prompt to take further action such as sending a * request to the [events endpoint](#get-events) with the last known * `stream_position`. * * After the server sends this response it closes the connection. You must now * repeat the long poll process to begin listening for events again. * * If no events occur for a while and the connection times out you will * receive a response with the value `reconnect`. When you receive this response * you’ll make another call to this endpoint to restart the process. * * If you receive no events in `retry_timeout` seconds then you will need to * make another request to the real-time server (one of the URLs in the response * for this endpoint). This might be necessary due to network errors. * * Finally, if you receive a `max_retries` error when making a request to the * real-time server, you should start over by making a call to this endpoint * first. * @param {GetEventsWithLongPollingHeadersInput} headersInput Headers of getEventsWithLongPolling method * @param {CancellationToken} cancellationToken Token used for request cancellation. * @returns {Promise<RealtimeServers>} */ async getEventsWithLongPolling( headersInput: GetEventsWithLongPollingHeadersInput = new GetEventsWithLongPollingHeaders( {}, ), cancellationToken?: CancellationToken, ): Promise<RealtimeServers> { const headers: GetEventsWithLongPollingHeaders = new GetEventsWithLongPollingHeaders({ extraHeaders: headersInput.extraHeaders, }); const headersMap: { readonly [key: string]: string; } = prepareParams({ ...{}, ...headers.extraHeaders }); const response: FetchResponse = await this.networkSession.networkClient.fetch( new FetchOptions({ url: ''.concat( this.networkSession.baseUrls.baseUrl, '/2.0/events', ) as string, method: 'OPTIONS', headers: headersMap, responseFormat: 'json' as ResponseFormat, auth: this.auth, networkSession: this.networkSession, cancellationToken: cancellationToken, }), ); return { ...deserializeRealtimeServers(response.data!), rawData: response.data!, }; } /** * Returns up to a year of past events for a given user * or for the entire enterprise. * * By default this returns events for the authenticated user. To retrieve events * for the entire enterprise, set the `stream_type` to `admin_logs_streaming` * for live monitoring of new events, or `admin_logs` for querying across * historical events. The user making the API call will * need to have admin privileges, and the application will need to have the * scope `manage enterprise properties` checked. * @param {GetEventsQueryParams} queryParams Query parameters of getEvents method * @param {GetEventsHeadersInput} headersInput Headers of getEvents method * @param {CancellationToken} cancellationToken Token used for request cancellation. * @returns {Promise<Events>} */ async getEvents( queryParams: GetEventsQueryParams = {} satisfies GetEventsQueryParams, headersInput: GetEventsHeadersInput = new GetEventsHeaders({}), cancellationToken?: CancellationToken, ): Promise<Events> { const headers: GetEventsHeaders = new GetEventsHeaders({ extraHeaders: headersInput.extraHeaders, }); const queryParamsMap: { readonly [key: string]: string; } = prepareParams({ ['stream_type']: toString(queryParams.streamType) as string, ['stream_position']: toString(queryParams.streamPosition) as string, ['limit']: toString(queryParams.limit) as string, ['event_type']: queryParams.eventType ? queryParams.eventType.map(toString).join(',') : undefined, ['created_after']: queryParams.createdAfter ? serializeDateTime(queryParams.createdAfter) : undefined, ['created_before']: queryParams.createdBefore ? serializeDateTime(queryParams.createdBefore) : undefined, }); const headersMap: { readonly [key: string]: string; } = prepareParams({ ...{}, ...headers.extraHeaders }); const response: FetchResponse = await this.networkSession.networkClient.fetch( new FetchOptions({ url: ''.concat( this.networkSession.baseUrls.baseUrl, '/2.0/events', ) as string, method: 'GET', params: queryParamsMap, headers: headersMap, responseFormat: 'json' as ResponseFormat, auth: this.auth, networkSession: this.networkSession, cancellationToken: cancellationToken, }), ); return { ...deserializeEvents(response.data!), rawData: response.data!, }; } /** * Get an event stream for the Box API * @param {GetEventStreamQueryParams} queryParams Query parameters of getEvents method * @param {GetEventStreamHeadersInput} headersInput Headers of getEvents method * @param {CancellationToken} cancellationToken Token used for request cancellation. * @returns {EventStream} */ getEventStream( queryParams: GetEventStreamQueryParams = {} satisfies GetEventStreamQueryParams, headersInput: GetEventStreamHeadersInput = new GetEventStreamHeaders({}), cancellationToken?: CancellationToken, ): EventStream { const headers: GetEventStreamHeaders = new GetEventStreamHeaders({ extraHeaders: headersInput.extraHeaders, }); return new EventStream({ eventsManager: this, queryParams: queryParams, headersInput: headers, }); } } export interface EventsManagerInput { readonly auth?: Authentication; readonly networkSession?: NetworkSession; } export function serializeGetEventsQueryParamsStreamTypeField( val: GetEventsQueryParamsStreamTypeField, ): SerializedData { return val; } export function deserializeGetEventsQueryParamsStreamTypeField( val: SerializedData, ): GetEventsQueryParamsStreamTypeField { if (val == 'all') { return val; } if (val == 'changes') { return val; } if (val == 'sync') { return val; } if (val == 'admin_logs') { return val; } if (val == 'admin_logs_streaming') { return val; } if (sdIsString(val)) { return val; } throw new BoxSdkError({ message: "Can't deserialize GetEventsQueryParamsStreamTypeField", }); } export function serializeGetEventsQueryParamsEventTypeField( val: GetEventsQueryParamsEventTypeField, ): SerializedData { return val; } export function deserializeGetEventsQueryParamsEventTypeField( val: SerializedData, ): GetEventsQueryParamsEventTypeField { 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 == 'COMMENT_CREATE') { return val; } if (val == 'COMMENT_DELETE') { 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 == 'EMAIL_ALIAS_CONFIRM') { return val; } if (val == 'EMAIL_ALIAS_REMOVE') { return val; } if (val == 'ENTERPRISE_APP_AUTHORIZATION_UPDATE') { return val; } if (val == 'EXTERNAL_COLLAB_SECURITY_SETTINGS') { 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_EMAIL_SEND') { return val; } if (val == 'ITEM_MODIFY') { return val; } if (val == 'ITEM_OPEN') { return val; } if (val == 'ITEM_SHARED_UPDATE') { return val; } if (val == 'ITEM_SYNC') { return val; } if (val == 'ITEM_UNSYNC') { 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 == 'LOGIN') { 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 == 'OAUTH2_ACCESS_TOKEN_REVOKE') { 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 == '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 GetEventsQueryParamsEventTypeField", }); } export function serializeGetEventStreamQueryParamsStreamTypeField( val: GetEventStreamQueryParamsStreamTypeField, ): SerializedData { return val; } export function deserializeGetEventStreamQueryParamsStreamTypeField( val: SerializedData, ): GetEventStreamQueryParamsStreamTypeField { if (val == 'all') { return val; } if (val == 'changes') { return val; } if (val == 'sync') { return val; } if (val == 'admin_logs') { return val; } if (val == 'admin_logs_streaming') { return val; } if (sdIsString(val)) { return val; } throw new BoxSdkError({ message: "Can't deserialize GetEventStreamQueryParamsStreamTypeField", }); } export function serializeGetEventStreamQueryParamsEventTypeField( val: GetEventStreamQueryParamsEventTypeField, ): SerializedData { return val; } export function deserializeGetEventStreamQueryParamsEventTypeField( val: SerializedData, ): GetEventStreamQueryParamsEventTypeField { 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 == 'COMMENT_CREATE') { return val; } if (val == 'COMMENT_DELETE') { 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 == 'EMAIL_ALIAS_CONFIRM') { return val; } if (val == 'EMAIL_ALIAS_REMOVE') { return val; } if (val == 'ENTERPRISE_APP_AUTHORIZATION_UPDATE') { return val; } if (val == 'EXTERNAL_COLLAB_SECURITY_SETTINGS') { 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_EMAIL_SEND') { return val; } if (val == 'ITEM_MODIFY') { return val; } if (val == 'ITEM_OPEN') { return val; } if (val == 'ITEM_SHARED_UPDATE') { return val; } if (val == 'ITEM_SYNC') { return val; } if (val == 'ITEM_UNSYNC') { 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 == 'LOGIN') { 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 == 'OAUTH2_ACCESS_TOKEN_REVOKE') { 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 == '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 GetEventStreamQueryParamsEventTypeField", }); }