UNPKG

box-node-sdk

Version:

Official SDK for Box Platform APIs

1,027 lines (1,022 loc) 35.8 kB
import { serializeKeywordSkillCard } from '../schemas/keywordSkillCard'; import { deserializeKeywordSkillCard } from '../schemas/keywordSkillCard'; import { serializeTimelineSkillCard } from '../schemas/timelineSkillCard'; import { deserializeTimelineSkillCard } from '../schemas/timelineSkillCard'; import { serializeTranscriptSkillCard } from '../schemas/transcriptSkillCard'; import { deserializeTranscriptSkillCard } from '../schemas/transcriptSkillCard'; import { serializeStatusSkillCard } from '../schemas/statusSkillCard'; import { deserializeStatusSkillCard } from '../schemas/statusSkillCard'; import { serializeSkillCardsMetadata } from '../schemas/skillCardsMetadata'; import { deserializeSkillCardsMetadata } from '../schemas/skillCardsMetadata'; import { serializeClientError } from '../schemas/clientError'; import { deserializeClientError } from '../schemas/clientError'; import { serializeSkillCard } from '../schemas/skillCard'; import { deserializeSkillCard } from '../schemas/skillCard'; import { KeywordSkillCard } from '../schemas/keywordSkillCard'; import { TimelineSkillCard } from '../schemas/timelineSkillCard'; import { TranscriptSkillCard } from '../schemas/transcriptSkillCard'; import { StatusSkillCard } from '../schemas/statusSkillCard'; import { ResponseFormat } from '../networking/fetchOptions'; import { SkillCardsMetadata } from '../schemas/skillCardsMetadata'; import { ClientError } from '../schemas/clientError'; import { SkillCard } from '../schemas/skillCard'; 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 { sdToJson } from '../serialization/json'; 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 class GetBoxSkillCardsOnFileOptionals { readonly headers: GetBoxSkillCardsOnFileHeaders = new GetBoxSkillCardsOnFileHeaders({}); readonly cancellationToken?: CancellationToken = void 0; constructor( fields: Omit< GetBoxSkillCardsOnFileOptionals, 'headers' | 'cancellationToken' > & Partial< Pick<GetBoxSkillCardsOnFileOptionals, 'headers' | 'cancellationToken'> >, ) { if (fields.headers !== undefined) { this.headers = fields.headers; } if (fields.cancellationToken !== undefined) { this.cancellationToken = fields.cancellationToken; } } } export interface GetBoxSkillCardsOnFileOptionalsInput { readonly headers?: GetBoxSkillCardsOnFileHeaders; readonly cancellationToken?: CancellationToken; } export class CreateBoxSkillCardsOnFileOptionals { readonly headers: CreateBoxSkillCardsOnFileHeaders = new CreateBoxSkillCardsOnFileHeaders({}); readonly cancellationToken?: CancellationToken = void 0; constructor( fields: Omit< CreateBoxSkillCardsOnFileOptionals, 'headers' | 'cancellationToken' > & Partial< Pick< CreateBoxSkillCardsOnFileOptionals, 'headers' | 'cancellationToken' > >, ) { if (fields.headers !== undefined) { this.headers = fields.headers; } if (fields.cancellationToken !== undefined) { this.cancellationToken = fields.cancellationToken; } } } export interface CreateBoxSkillCardsOnFileOptionalsInput { readonly headers?: CreateBoxSkillCardsOnFileHeaders; readonly cancellationToken?: CancellationToken; } export class UpdateBoxSkillCardsOnFileOptionals { readonly headers: UpdateBoxSkillCardsOnFileHeaders = new UpdateBoxSkillCardsOnFileHeaders({}); readonly cancellationToken?: CancellationToken = void 0; constructor( fields: Omit< UpdateBoxSkillCardsOnFileOptionals, 'headers' | 'cancellationToken' > & Partial< Pick< UpdateBoxSkillCardsOnFileOptionals, 'headers' | 'cancellationToken' > >, ) { if (fields.headers !== undefined) { this.headers = fields.headers; } if (fields.cancellationToken !== undefined) { this.cancellationToken = fields.cancellationToken; } } } export interface UpdateBoxSkillCardsOnFileOptionalsInput { readonly headers?: UpdateBoxSkillCardsOnFileHeaders; readonly cancellationToken?: CancellationToken; } export class DeleteBoxSkillCardsFromFileOptionals { readonly headers: DeleteBoxSkillCardsFromFileHeaders = new DeleteBoxSkillCardsFromFileHeaders({}); readonly cancellationToken?: CancellationToken = void 0; constructor( fields: Omit< DeleteBoxSkillCardsFromFileOptionals, 'headers' | 'cancellationToken' > & Partial< Pick< DeleteBoxSkillCardsFromFileOptionals, 'headers' | 'cancellationToken' > >, ) { if (fields.headers !== undefined) { this.headers = fields.headers; } if (fields.cancellationToken !== undefined) { this.cancellationToken = fields.cancellationToken; } } } export interface DeleteBoxSkillCardsFromFileOptionalsInput { readonly headers?: DeleteBoxSkillCardsFromFileHeaders; readonly cancellationToken?: CancellationToken; } export class UpdateAllSkillCardsOnFileOptionals { readonly headers: UpdateAllSkillCardsOnFileHeaders = new UpdateAllSkillCardsOnFileHeaders({}); readonly cancellationToken?: CancellationToken = void 0; constructor( fields: Omit< UpdateAllSkillCardsOnFileOptionals, 'headers' | 'cancellationToken' > & Partial< Pick< UpdateAllSkillCardsOnFileOptionals, 'headers' | 'cancellationToken' > >, ) { if (fields.headers !== undefined) { this.headers = fields.headers; } if (fields.cancellationToken !== undefined) { this.cancellationToken = fields.cancellationToken; } } } export interface UpdateAllSkillCardsOnFileOptionalsInput { readonly headers?: UpdateAllSkillCardsOnFileHeaders; readonly cancellationToken?: CancellationToken; } export class GetBoxSkillCardsOnFileHeaders { /** * Extra headers that will be included in the HTTP request. */ readonly extraHeaders?: { readonly [key: string]: undefined | string; } = {}; constructor( fields: Omit<GetBoxSkillCardsOnFileHeaders, 'extraHeaders'> & Partial<Pick<GetBoxSkillCardsOnFileHeaders, 'extraHeaders'>>, ) { if (fields.extraHeaders !== undefined) { this.extraHeaders = fields.extraHeaders; } } } export interface GetBoxSkillCardsOnFileHeadersInput { /** * Extra headers that will be included in the HTTP request. */ readonly extraHeaders?: { readonly [key: string]: undefined | string; }; } export interface CreateBoxSkillCardsOnFileRequestBody { /** * A list of Box Skill cards to apply to this file. */ readonly cards: readonly SkillCard[]; readonly rawData?: SerializedData; } export class CreateBoxSkillCardsOnFileHeaders { /** * Extra headers that will be included in the HTTP request. */ readonly extraHeaders?: { readonly [key: string]: undefined | string; } = {}; constructor( fields: Omit<CreateBoxSkillCardsOnFileHeaders, 'extraHeaders'> & Partial<Pick<CreateBoxSkillCardsOnFileHeaders, 'extraHeaders'>>, ) { if (fields.extraHeaders !== undefined) { this.extraHeaders = fields.extraHeaders; } } } export interface CreateBoxSkillCardsOnFileHeadersInput { /** * Extra headers that will be included in the HTTP request. */ readonly extraHeaders?: { readonly [key: string]: undefined | string; }; } export type UpdateBoxSkillCardsOnFileRequestBodyOpField = 'replace' | string; export interface UpdateBoxSkillCardsOnFileRequestBody { /** * The value will always be `replace`. */ readonly op?: UpdateBoxSkillCardsOnFileRequestBodyOpField; /** * The JSON Path that represents the card to replace. In most cases * this will be in the format `/cards/{index}` where `index` is the * zero-indexed position of the card in the list of cards. */ readonly path?: string; readonly value?: SkillCard; readonly rawData?: SerializedData; } export class UpdateBoxSkillCardsOnFileHeaders { /** * Extra headers that will be included in the HTTP request. */ readonly extraHeaders?: { readonly [key: string]: undefined | string; } = {}; constructor( fields: Omit<UpdateBoxSkillCardsOnFileHeaders, 'extraHeaders'> & Partial<Pick<UpdateBoxSkillCardsOnFileHeaders, 'extraHeaders'>>, ) { if (fields.extraHeaders !== undefined) { this.extraHeaders = fields.extraHeaders; } } } export interface UpdateBoxSkillCardsOnFileHeadersInput { /** * Extra headers that will be included in the HTTP request. */ readonly extraHeaders?: { readonly [key: string]: undefined | string; }; } export class DeleteBoxSkillCardsFromFileHeaders { /** * Extra headers that will be included in the HTTP request. */ readonly extraHeaders?: { readonly [key: string]: undefined | string; } = {}; constructor( fields: Omit<DeleteBoxSkillCardsFromFileHeaders, 'extraHeaders'> & Partial<Pick<DeleteBoxSkillCardsFromFileHeaders, 'extraHeaders'>>, ) { if (fields.extraHeaders !== undefined) { this.extraHeaders = fields.extraHeaders; } } } export interface DeleteBoxSkillCardsFromFileHeadersInput { /** * Extra headers that will be included in the HTTP request. */ readonly extraHeaders?: { readonly [key: string]: undefined | string; }; } export type UpdateAllSkillCardsOnFileRequestBodyStatusField = | 'invoked' | 'processing' | 'success' | 'transient_failure' | 'permanent_failure' | string; export interface UpdateAllSkillCardsOnFileRequestBodyMetadataField { /** * A list of Box Skill cards to apply to this file. */ readonly cards?: readonly SkillCard[]; readonly rawData?: SerializedData; } export type UpdateAllSkillCardsOnFileRequestBodyFileTypeField = 'file'; export interface UpdateAllSkillCardsOnFileRequestBodyFileField { /** * The value will always be `file`. */ readonly type?: UpdateAllSkillCardsOnFileRequestBodyFileTypeField; /** * The ID of the file. */ readonly id?: string; readonly rawData?: SerializedData; } export type UpdateAllSkillCardsOnFileRequestBodyFileVersionTypeField = 'file_version'; export interface UpdateAllSkillCardsOnFileRequestBodyFileVersionField { /** * The value will always be `file_version`. */ readonly type?: UpdateAllSkillCardsOnFileRequestBodyFileVersionTypeField; /** * The ID of the file version. */ readonly id?: string; readonly rawData?: SerializedData; } export interface UpdateAllSkillCardsOnFileRequestBodyUsageField { /** * The value will always be `file`. */ readonly unit?: string; /** * Number of resources affected. */ readonly value?: number; readonly rawData?: SerializedData; } export interface UpdateAllSkillCardsOnFileRequestBody { /** * Defines the status of this invocation. Set this to `success` when setting Skill cards. */ readonly status: UpdateAllSkillCardsOnFileRequestBodyStatusField; /** * The metadata to set for this skill. This is a list of * Box Skills cards. These cards will overwrite any existing Box * skill cards on the file. */ readonly metadata: UpdateAllSkillCardsOnFileRequestBodyMetadataField; /** * The file to assign the cards to. */ readonly file: UpdateAllSkillCardsOnFileRequestBodyFileField; /** * The optional file version to assign the cards to. */ readonly fileVersion?: UpdateAllSkillCardsOnFileRequestBodyFileVersionField; /** * A descriptor that defines what items are affected by this call. * * Set this to the default values when setting a card to a `success` * state, and leave it out in most other situations. */ readonly usage?: UpdateAllSkillCardsOnFileRequestBodyUsageField; readonly rawData?: SerializedData; } export class UpdateAllSkillCardsOnFileHeaders { /** * Extra headers that will be included in the HTTP request. */ readonly extraHeaders?: { readonly [key: string]: undefined | string; } = {}; constructor( fields: Omit<UpdateAllSkillCardsOnFileHeaders, 'extraHeaders'> & Partial<Pick<UpdateAllSkillCardsOnFileHeaders, 'extraHeaders'>>, ) { if (fields.extraHeaders !== undefined) { this.extraHeaders = fields.extraHeaders; } } } export interface UpdateAllSkillCardsOnFileHeadersInput { /** * Extra headers that will be included in the HTTP request. */ readonly extraHeaders?: { readonly [key: string]: undefined | string; }; } export class SkillsManager { readonly auth?: Authentication; readonly networkSession: NetworkSession = new NetworkSession({}); constructor( fields: Omit< SkillsManager, | 'networkSession' | 'getBoxSkillCardsOnFile' | 'createBoxSkillCardsOnFile' | 'updateBoxSkillCardsOnFile' | 'deleteBoxSkillCardsFromFile' | 'updateAllSkillCardsOnFile' > & Partial<Pick<SkillsManager, 'networkSession'>>, ) { if (fields.auth !== undefined) { this.auth = fields.auth; } if (fields.networkSession !== undefined) { this.networkSession = fields.networkSession; } } /** * List the Box Skills metadata cards that are attached to a file. * @param {string} fileId The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`. Example: "12345" * @param {GetBoxSkillCardsOnFileOptionalsInput} optionalsInput * @returns {Promise<SkillCardsMetadata>} */ async getBoxSkillCardsOnFile( fileId: string, optionalsInput: GetBoxSkillCardsOnFileOptionalsInput = {}, ): Promise<SkillCardsMetadata> { const optionals: GetBoxSkillCardsOnFileOptionals = new GetBoxSkillCardsOnFileOptionals({ headers: optionalsInput.headers, cancellationToken: optionalsInput.cancellationToken, }); const headers: any = optionals.headers; const cancellationToken: any = optionals.cancellationToken; 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/files/', (toString(fileId) as string)!, '/metadata/global/boxSkillsCards', ) as string, method: 'GET', headers: headersMap, responseFormat: 'json' as ResponseFormat, auth: this.auth, networkSession: this.networkSession, cancellationToken: cancellationToken, }), ); return { ...deserializeSkillCardsMetadata(response.data!), rawData: response.data!, }; } /** * Applies one or more Box Skills metadata cards to a file. * @param {string} fileId The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`. Example: "12345" * @param {CreateBoxSkillCardsOnFileRequestBody} requestBody Request body of createBoxSkillCardsOnFile method * @param {CreateBoxSkillCardsOnFileOptionalsInput} optionalsInput * @returns {Promise<SkillCardsMetadata>} */ async createBoxSkillCardsOnFile( fileId: string, requestBody: CreateBoxSkillCardsOnFileRequestBody, optionalsInput: CreateBoxSkillCardsOnFileOptionalsInput = {}, ): Promise<SkillCardsMetadata> { const optionals: CreateBoxSkillCardsOnFileOptionals = new CreateBoxSkillCardsOnFileOptionals({ headers: optionalsInput.headers, cancellationToken: optionalsInput.cancellationToken, }); const headers: any = optionals.headers; const cancellationToken: any = optionals.cancellationToken; 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/files/', (toString(fileId) as string)!, '/metadata/global/boxSkillsCards', ) as string, method: 'POST', headers: headersMap, data: serializeCreateBoxSkillCardsOnFileRequestBody(requestBody), contentType: 'application/json', responseFormat: 'json' as ResponseFormat, auth: this.auth, networkSession: this.networkSession, cancellationToken: cancellationToken, }), ); return { ...deserializeSkillCardsMetadata(response.data!), rawData: response.data!, }; } /** * Updates one or more Box Skills metadata cards to a file. * @param {string} fileId The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`. Example: "12345" * @param {readonly UpdateBoxSkillCardsOnFileRequestBody[]} requestBody Request body of updateBoxSkillCardsOnFile method * @param {UpdateBoxSkillCardsOnFileOptionalsInput} optionalsInput * @returns {Promise<SkillCardsMetadata>} */ async updateBoxSkillCardsOnFile( fileId: string, requestBody: readonly UpdateBoxSkillCardsOnFileRequestBody[], optionalsInput: UpdateBoxSkillCardsOnFileOptionalsInput = {}, ): Promise<SkillCardsMetadata> { const optionals: UpdateBoxSkillCardsOnFileOptionals = new UpdateBoxSkillCardsOnFileOptionals({ headers: optionalsInput.headers, cancellationToken: optionalsInput.cancellationToken, }); const headers: any = optionals.headers; const cancellationToken: any = optionals.cancellationToken; 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/files/', (toString(fileId) as string)!, '/metadata/global/boxSkillsCards', ) as string, method: 'PUT', headers: headersMap, data: requestBody.map( serializeUpdateBoxSkillCardsOnFileRequestBody, ) as readonly any[], contentType: 'application/json-patch+json', responseFormat: 'json' as ResponseFormat, auth: this.auth, networkSession: this.networkSession, cancellationToken: cancellationToken, }), ); return { ...deserializeSkillCardsMetadata(response.data!), rawData: response.data!, }; } /** * Removes any Box Skills cards metadata from a file. * @param {string} fileId The unique identifier that represents a file. The ID for any file can be determined by visiting a file in the web application and copying the ID from the URL. For example, for the URL `https://*.app.box.com/files/123` the `file_id` is `123`. Example: "12345" * @param {DeleteBoxSkillCardsFromFileOptionalsInput} optionalsInput * @returns {Promise<undefined>} */ async deleteBoxSkillCardsFromFile( fileId: string, optionalsInput: DeleteBoxSkillCardsFromFileOptionalsInput = {}, ): Promise<undefined> { const optionals: DeleteBoxSkillCardsFromFileOptionals = new DeleteBoxSkillCardsFromFileOptionals({ headers: optionalsInput.headers, cancellationToken: optionalsInput.cancellationToken, }); const headers: any = optionals.headers; const cancellationToken: any = optionals.cancellationToken; 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/files/', (toString(fileId) as string)!, '/metadata/global/boxSkillsCards', ) as string, method: 'DELETE', headers: headersMap, responseFormat: 'no_content' as ResponseFormat, auth: this.auth, networkSession: this.networkSession, cancellationToken: cancellationToken, }), ); return void 0; } /** * An alternative method that can be used to overwrite and update all Box Skill * metadata cards on a file. * @param {string} skillId The ID of the skill to apply this metadata for. Example: "33243242" * @param {UpdateAllSkillCardsOnFileRequestBody} requestBody Request body of updateAllSkillCardsOnFile method * @param {UpdateAllSkillCardsOnFileOptionalsInput} optionalsInput * @returns {Promise<undefined>} */ async updateAllSkillCardsOnFile( skillId: string, requestBody: UpdateAllSkillCardsOnFileRequestBody, optionalsInput: UpdateAllSkillCardsOnFileOptionalsInput = {}, ): Promise<undefined> { const optionals: UpdateAllSkillCardsOnFileOptionals = new UpdateAllSkillCardsOnFileOptionals({ headers: optionalsInput.headers, cancellationToken: optionalsInput.cancellationToken, }); const headers: any = optionals.headers; const cancellationToken: any = optionals.cancellationToken; 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/skill_invocations/', (toString(skillId) as string)!, ) as string, method: 'PUT', headers: headersMap, data: serializeUpdateAllSkillCardsOnFileRequestBody(requestBody), contentType: 'application/json', responseFormat: 'no_content' as ResponseFormat, auth: this.auth, networkSession: this.networkSession, cancellationToken: cancellationToken, }), ); return void 0; } } export interface SkillsManagerInput { readonly auth?: Authentication; readonly networkSession?: NetworkSession; } export function serializeCreateBoxSkillCardsOnFileRequestBody( val: CreateBoxSkillCardsOnFileRequestBody, ): SerializedData { return { ['cards']: val.cards.map(function (item: SkillCard): SerializedData { return serializeSkillCard(item); }) as readonly any[], }; } export function deserializeCreateBoxSkillCardsOnFileRequestBody( val: SerializedData, ): CreateBoxSkillCardsOnFileRequestBody { if (!sdIsMap(val)) { throw new BoxSdkError({ message: 'Expecting a map for "CreateBoxSkillCardsOnFileRequestBody"', }); } if (val.cards == void 0) { throw new BoxSdkError({ message: 'Expecting "cards" of type "CreateBoxSkillCardsOnFileRequestBody" to be defined', }); } if (!sdIsList(val.cards)) { throw new BoxSdkError({ message: 'Expecting array for "cards" of type "CreateBoxSkillCardsOnFileRequestBody"', }); } const cards: readonly SkillCard[] = sdIsList(val.cards) ? (val.cards.map(function (itm: SerializedData): SkillCard { return deserializeSkillCard(itm); }) as readonly any[]) : []; return { cards: cards } satisfies CreateBoxSkillCardsOnFileRequestBody; } export function serializeUpdateBoxSkillCardsOnFileRequestBodyOpField( val: UpdateBoxSkillCardsOnFileRequestBodyOpField, ): SerializedData { return val; } export function deserializeUpdateBoxSkillCardsOnFileRequestBodyOpField( val: SerializedData, ): UpdateBoxSkillCardsOnFileRequestBodyOpField { if (val == 'replace') { return val; } if (sdIsString(val)) { return val; } throw new BoxSdkError({ message: "Can't deserialize UpdateBoxSkillCardsOnFileRequestBodyOpField", }); } export function serializeUpdateBoxSkillCardsOnFileRequestBody( val: UpdateBoxSkillCardsOnFileRequestBody, ): SerializedData { return { ['op']: val.op == void 0 ? val.op : serializeUpdateBoxSkillCardsOnFileRequestBodyOpField(val.op), ['path']: val.path, ['value']: val.value == void 0 ? val.value : serializeSkillCard(val.value), }; } export function deserializeUpdateBoxSkillCardsOnFileRequestBody( val: SerializedData, ): UpdateBoxSkillCardsOnFileRequestBody { if (!sdIsMap(val)) { throw new BoxSdkError({ message: 'Expecting a map for "UpdateBoxSkillCardsOnFileRequestBody"', }); } const op: undefined | UpdateBoxSkillCardsOnFileRequestBodyOpField = val.op == void 0 ? void 0 : deserializeUpdateBoxSkillCardsOnFileRequestBodyOpField(val.op); if (!(val.path == void 0) && !sdIsString(val.path)) { throw new BoxSdkError({ message: 'Expecting string for "path" of type "UpdateBoxSkillCardsOnFileRequestBody"', }); } const path: undefined | string = val.path == void 0 ? void 0 : val.path; const value: undefined | SkillCard = val.value == void 0 ? void 0 : deserializeSkillCard(val.value); return { op: op, path: path, value: value, } satisfies UpdateBoxSkillCardsOnFileRequestBody; } export function serializeUpdateAllSkillCardsOnFileRequestBodyStatusField( val: UpdateAllSkillCardsOnFileRequestBodyStatusField, ): SerializedData { return val; } export function deserializeUpdateAllSkillCardsOnFileRequestBodyStatusField( val: SerializedData, ): UpdateAllSkillCardsOnFileRequestBodyStatusField { if (val == 'invoked') { return val; } if (val == 'processing') { return val; } if (val == 'success') { return val; } if (val == 'transient_failure') { return val; } if (val == 'permanent_failure') { return val; } if (sdIsString(val)) { return val; } throw new BoxSdkError({ message: "Can't deserialize UpdateAllSkillCardsOnFileRequestBodyStatusField", }); } export function serializeUpdateAllSkillCardsOnFileRequestBodyMetadataField( val: UpdateAllSkillCardsOnFileRequestBodyMetadataField, ): SerializedData { return { ['cards']: val.cards == void 0 ? val.cards : (val.cards.map(function (item: SkillCard): SerializedData { return serializeSkillCard(item); }) as readonly any[]), }; } export function deserializeUpdateAllSkillCardsOnFileRequestBodyMetadataField( val: SerializedData, ): UpdateAllSkillCardsOnFileRequestBodyMetadataField { if (!sdIsMap(val)) { throw new BoxSdkError({ message: 'Expecting a map for "UpdateAllSkillCardsOnFileRequestBodyMetadataField"', }); } if (!(val.cards == void 0) && !sdIsList(val.cards)) { throw new BoxSdkError({ message: 'Expecting array for "cards" of type "UpdateAllSkillCardsOnFileRequestBodyMetadataField"', }); } const cards: undefined | readonly SkillCard[] = val.cards == void 0 ? void 0 : sdIsList(val.cards) ? (val.cards.map(function (itm: SerializedData): SkillCard { return deserializeSkillCard(itm); }) as readonly any[]) : []; return { cards: cards, } satisfies UpdateAllSkillCardsOnFileRequestBodyMetadataField; } export function serializeUpdateAllSkillCardsOnFileRequestBodyFileTypeField( val: UpdateAllSkillCardsOnFileRequestBodyFileTypeField, ): SerializedData { return val; } export function deserializeUpdateAllSkillCardsOnFileRequestBodyFileTypeField( val: SerializedData, ): UpdateAllSkillCardsOnFileRequestBodyFileTypeField { if (val == 'file') { return val; } throw new BoxSdkError({ message: "Can't deserialize UpdateAllSkillCardsOnFileRequestBodyFileTypeField", }); } export function serializeUpdateAllSkillCardsOnFileRequestBodyFileField( val: UpdateAllSkillCardsOnFileRequestBodyFileField, ): SerializedData { return { ['type']: val.type == void 0 ? val.type : serializeUpdateAllSkillCardsOnFileRequestBodyFileTypeField(val.type), ['id']: val.id, }; } export function deserializeUpdateAllSkillCardsOnFileRequestBodyFileField( val: SerializedData, ): UpdateAllSkillCardsOnFileRequestBodyFileField { if (!sdIsMap(val)) { throw new BoxSdkError({ message: 'Expecting a map for "UpdateAllSkillCardsOnFileRequestBodyFileField"', }); } const type: undefined | UpdateAllSkillCardsOnFileRequestBodyFileTypeField = val.type == void 0 ? void 0 : deserializeUpdateAllSkillCardsOnFileRequestBodyFileTypeField(val.type); if (!(val.id == void 0) && !sdIsString(val.id)) { throw new BoxSdkError({ message: 'Expecting string for "id" of type "UpdateAllSkillCardsOnFileRequestBodyFileField"', }); } const id: undefined | string = val.id == void 0 ? void 0 : val.id; return { type: type, id: id, } satisfies UpdateAllSkillCardsOnFileRequestBodyFileField; } export function serializeUpdateAllSkillCardsOnFileRequestBodyFileVersionTypeField( val: UpdateAllSkillCardsOnFileRequestBodyFileVersionTypeField, ): SerializedData { return val; } export function deserializeUpdateAllSkillCardsOnFileRequestBodyFileVersionTypeField( val: SerializedData, ): UpdateAllSkillCardsOnFileRequestBodyFileVersionTypeField { if (val == 'file_version') { return val; } throw new BoxSdkError({ message: "Can't deserialize UpdateAllSkillCardsOnFileRequestBodyFileVersionTypeField", }); } export function serializeUpdateAllSkillCardsOnFileRequestBodyFileVersionField( val: UpdateAllSkillCardsOnFileRequestBodyFileVersionField, ): SerializedData { return { ['type']: val.type == void 0 ? val.type : serializeUpdateAllSkillCardsOnFileRequestBodyFileVersionTypeField( val.type, ), ['id']: val.id, }; } export function deserializeUpdateAllSkillCardsOnFileRequestBodyFileVersionField( val: SerializedData, ): UpdateAllSkillCardsOnFileRequestBodyFileVersionField { if (!sdIsMap(val)) { throw new BoxSdkError({ message: 'Expecting a map for "UpdateAllSkillCardsOnFileRequestBodyFileVersionField"', }); } const type: | undefined | UpdateAllSkillCardsOnFileRequestBodyFileVersionTypeField = val.type == void 0 ? void 0 : deserializeUpdateAllSkillCardsOnFileRequestBodyFileVersionTypeField( val.type, ); if (!(val.id == void 0) && !sdIsString(val.id)) { throw new BoxSdkError({ message: 'Expecting string for "id" of type "UpdateAllSkillCardsOnFileRequestBodyFileVersionField"', }); } const id: undefined | string = val.id == void 0 ? void 0 : val.id; return { type: type, id: id, } satisfies UpdateAllSkillCardsOnFileRequestBodyFileVersionField; } export function serializeUpdateAllSkillCardsOnFileRequestBodyUsageField( val: UpdateAllSkillCardsOnFileRequestBodyUsageField, ): SerializedData { return { ['unit']: val.unit, ['value']: val.value }; } export function deserializeUpdateAllSkillCardsOnFileRequestBodyUsageField( val: SerializedData, ): UpdateAllSkillCardsOnFileRequestBodyUsageField { if (!sdIsMap(val)) { throw new BoxSdkError({ message: 'Expecting a map for "UpdateAllSkillCardsOnFileRequestBodyUsageField"', }); } if (!(val.unit == void 0) && !sdIsString(val.unit)) { throw new BoxSdkError({ message: 'Expecting string for "unit" of type "UpdateAllSkillCardsOnFileRequestBodyUsageField"', }); } const unit: undefined | string = val.unit == void 0 ? void 0 : val.unit; if (!(val.value == void 0) && !sdIsNumber(val.value)) { throw new BoxSdkError({ message: 'Expecting number for "value" of type "UpdateAllSkillCardsOnFileRequestBodyUsageField"', }); } const value: undefined | number = val.value == void 0 ? void 0 : val.value; return { unit: unit, value: value, } satisfies UpdateAllSkillCardsOnFileRequestBodyUsageField; } export function serializeUpdateAllSkillCardsOnFileRequestBody( val: UpdateAllSkillCardsOnFileRequestBody, ): SerializedData { return { ['status']: serializeUpdateAllSkillCardsOnFileRequestBodyStatusField( val.status, ), ['metadata']: serializeUpdateAllSkillCardsOnFileRequestBodyMetadataField( val.metadata, ), ['file']: serializeUpdateAllSkillCardsOnFileRequestBodyFileField(val.file), ['file_version']: val.fileVersion == void 0 ? val.fileVersion : serializeUpdateAllSkillCardsOnFileRequestBodyFileVersionField( val.fileVersion, ), ['usage']: val.usage == void 0 ? val.usage : serializeUpdateAllSkillCardsOnFileRequestBodyUsageField(val.usage), }; } export function deserializeUpdateAllSkillCardsOnFileRequestBody( val: SerializedData, ): UpdateAllSkillCardsOnFileRequestBody { if (!sdIsMap(val)) { throw new BoxSdkError({ message: 'Expecting a map for "UpdateAllSkillCardsOnFileRequestBody"', }); } if (val.status == void 0) { throw new BoxSdkError({ message: 'Expecting "status" of type "UpdateAllSkillCardsOnFileRequestBody" to be defined', }); } const status: UpdateAllSkillCardsOnFileRequestBodyStatusField = deserializeUpdateAllSkillCardsOnFileRequestBodyStatusField(val.status); if (val.metadata == void 0) { throw new BoxSdkError({ message: 'Expecting "metadata" of type "UpdateAllSkillCardsOnFileRequestBody" to be defined', }); } const metadata: UpdateAllSkillCardsOnFileRequestBodyMetadataField = deserializeUpdateAllSkillCardsOnFileRequestBodyMetadataField(val.metadata); if (val.file == void 0) { throw new BoxSdkError({ message: 'Expecting "file" of type "UpdateAllSkillCardsOnFileRequestBody" to be defined', }); } const file: UpdateAllSkillCardsOnFileRequestBodyFileField = deserializeUpdateAllSkillCardsOnFileRequestBodyFileField(val.file); const fileVersion: | undefined | UpdateAllSkillCardsOnFileRequestBodyFileVersionField = val.file_version == void 0 ? void 0 : deserializeUpdateAllSkillCardsOnFileRequestBodyFileVersionField( val.file_version, ); const usage: undefined | UpdateAllSkillCardsOnFileRequestBodyUsageField = val.usage == void 0 ? void 0 : deserializeUpdateAllSkillCardsOnFileRequestBodyUsageField(val.usage); return { status: status, metadata: metadata, file: file, fileVersion: fileVersion, usage: usage, } satisfies UpdateAllSkillCardsOnFileRequestBody; }