box-node-sdk
Version:
Official SDK for Box Platform APIs
145 lines (144 loc) • 5.24 kB
text/typescript
import { serializeFileVersionMini } from './fileVersionMini';
import { deserializeFileVersionMini } from './fileVersionMini';
import { serializeFileMini } from './fileMini';
import { deserializeFileMini } from './fileMini';
import { serializeLegalHoldPolicyAssignment } from './legalHoldPolicyAssignment';
import { deserializeLegalHoldPolicyAssignment } from './legalHoldPolicyAssignment';
import { serializeDateTime } from '../internal/utils';
import { deserializeDateTime } from '../internal/utils';
import { FileVersionMini } from './fileVersionMini';
import { FileMini } from './fileMini';
import { LegalHoldPolicyAssignment } from './legalHoldPolicyAssignment';
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 FileVersionLegalHoldTypeField = 'file_version_legal_hold';
export interface FileVersionLegalHold {
/**
* The unique identifier for this file version legal hold. */
readonly id?: string;
/**
* The value will always be `file_version_legal_hold`. */
readonly type?: FileVersionLegalHoldTypeField;
readonly fileVersion?: FileVersionMini;
readonly file?: FileMini;
/**
* List of assignments contributing to this Hold. */
readonly legalHoldPolicyAssignments?: readonly LegalHoldPolicyAssignment[];
/**
* Time that this File-Version-Legal-Hold was
* deleted. */
readonly deletedAt?: DateTime;
readonly rawData?: SerializedData;
}
export function serializeFileVersionLegalHoldTypeField(
val: FileVersionLegalHoldTypeField,
): SerializedData {
return val;
}
export function deserializeFileVersionLegalHoldTypeField(
val: SerializedData,
): FileVersionLegalHoldTypeField {
if (val == 'file_version_legal_hold') {
return val;
}
throw new BoxSdkError({
message: "Can't deserialize FileVersionLegalHoldTypeField",
});
}
export function serializeFileVersionLegalHold(
val: FileVersionLegalHold,
): SerializedData {
return {
['id']: val.id,
['type']:
val.type == void 0
? val.type
: serializeFileVersionLegalHoldTypeField(val.type),
['file_version']:
val.fileVersion == void 0
? val.fileVersion
: serializeFileVersionMini(val.fileVersion),
['file']: val.file == void 0 ? val.file : serializeFileMini(val.file),
['legal_hold_policy_assignments']:
val.legalHoldPolicyAssignments == void 0
? val.legalHoldPolicyAssignments
: (val.legalHoldPolicyAssignments.map(function (
item: LegalHoldPolicyAssignment,
): SerializedData {
return serializeLegalHoldPolicyAssignment(item);
}) as readonly any[]),
['deleted_at']:
val.deletedAt == void 0
? val.deletedAt
: serializeDateTime(val.deletedAt),
};
}
export function deserializeFileVersionLegalHold(
val: SerializedData,
): FileVersionLegalHold {
if (!sdIsMap(val)) {
throw new BoxSdkError({
message: 'Expecting a map for "FileVersionLegalHold"',
});
}
if (!(val.id == void 0) && !sdIsString(val.id)) {
throw new BoxSdkError({
message: 'Expecting string for "id" of type "FileVersionLegalHold"',
});
}
const id: undefined | string = val.id == void 0 ? void 0 : val.id;
const type: undefined | FileVersionLegalHoldTypeField =
val.type == void 0
? void 0
: deserializeFileVersionLegalHoldTypeField(val.type);
const fileVersion: undefined | FileVersionMini =
val.file_version == void 0
? void 0
: deserializeFileVersionMini(val.file_version);
const file: undefined | FileMini =
val.file == void 0 ? void 0 : deserializeFileMini(val.file);
if (
!(val.legal_hold_policy_assignments == void 0) &&
!sdIsList(val.legal_hold_policy_assignments)
) {
throw new BoxSdkError({
message:
'Expecting array for "legal_hold_policy_assignments" of type "FileVersionLegalHold"',
});
}
const legalHoldPolicyAssignments:
| undefined
| readonly LegalHoldPolicyAssignment[] =
val.legal_hold_policy_assignments == void 0
? void 0
: sdIsList(val.legal_hold_policy_assignments)
? (val.legal_hold_policy_assignments.map(function (
itm: SerializedData,
): LegalHoldPolicyAssignment {
return deserializeLegalHoldPolicyAssignment(itm);
}) as readonly any[])
: [];
if (!(val.deleted_at == void 0) && !sdIsString(val.deleted_at)) {
throw new BoxSdkError({
message:
'Expecting string for "deleted_at" of type "FileVersionLegalHold"',
});
}
const deletedAt: undefined | DateTime =
val.deleted_at == void 0 ? void 0 : deserializeDateTime(val.deleted_at);
return {
id: id,
type: type,
fileVersion: fileVersion,
file: file,
legalHoldPolicyAssignments: legalHoldPolicyAssignments,
deletedAt: deletedAt,
} satisfies FileVersionLegalHold;
}