UNPKG

box-node-sdk

Version:

Official SDK for Box Platform APIs

475 lines (474 loc) 16.7 kB
import { serializeRetentionPolicyMini } from './retentionPolicyMini'; import { deserializeRetentionPolicyMini } from './retentionPolicyMini'; import { serializeUserMini } from './userMini'; import { deserializeUserMini } from './userMini'; import { serializeDateTime } from '../internal/utils'; import { deserializeDateTime } from '../internal/utils'; import { RetentionPolicyMini } from './retentionPolicyMini'; import { UserMini } from './userMini'; 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 RetentionPolicyAssignmentTypeField = 'retention_policy_assignment'; export type RetentionPolicyAssignmentAssignedToTypeField = | 'folder' | 'enterprise' | 'metadata_template'; export interface RetentionPolicyAssignmentAssignedToField { /** * The ID of the folder, enterprise, or metadata template * the policy is assigned to. * Set to null or omit when type is set to enterprise. */ readonly id?: string | null; /** * The type of resource the policy is assigned to. */ readonly type?: RetentionPolicyAssignmentAssignedToTypeField; readonly rawData?: SerializedData; } export interface RetentionPolicyAssignmentFilterFieldsField { /** * The metadata attribute key id. */ readonly field?: string | null; /** * The metadata attribute field id. For value, only * enum and multiselect types are supported. */ readonly value?: string | null; readonly rawData?: SerializedData; } export class RetentionPolicyAssignment { /** * The unique identifier for a retention policy assignment. */ readonly id!: string; /** * The value will always be `retention_policy_assignment`. */ readonly type: RetentionPolicyAssignmentTypeField = 'retention_policy_assignment' as RetentionPolicyAssignmentTypeField; readonly retentionPolicy?: RetentionPolicyMini; /** * The `type` and `id` of the content that is under * retention. The `type` can either be `folder` * `enterprise`, or `metadata_template`. */ readonly assignedTo?: RetentionPolicyAssignmentAssignedToField; /** * An array of field objects. Values are only returned if the `assigned_to` * type is `metadata_template`. Otherwise, the array is blank. */ readonly filterFields?: | readonly RetentionPolicyAssignmentFilterFieldsField[] | null; readonly assignedBy?: UserMini; /** * When the retention policy assignment object was * created. */ readonly assignedAt?: DateTime; /** * The date the retention policy assignment begins. * If the `assigned_to` type is `metadata_template`, * this field can be a date field's metadata attribute key id. */ readonly startDateField?: string; readonly rawData?: SerializedData; constructor( fields: Omit<RetentionPolicyAssignment, 'type'> & Partial<Pick<RetentionPolicyAssignment, 'type'>>, ) { if (fields.id !== undefined) { this.id = fields.id; } if (fields.type !== undefined) { this.type = fields.type; } if (fields.retentionPolicy !== undefined) { this.retentionPolicy = fields.retentionPolicy; } if (fields.assignedTo !== undefined) { this.assignedTo = fields.assignedTo; } if (fields.filterFields !== undefined) { this.filterFields = fields.filterFields; } if (fields.assignedBy !== undefined) { this.assignedBy = fields.assignedBy; } if (fields.assignedAt !== undefined) { this.assignedAt = fields.assignedAt; } if (fields.startDateField !== undefined) { this.startDateField = fields.startDateField; } if (fields.rawData !== undefined) { this.rawData = fields.rawData; } } } export interface RetentionPolicyAssignmentInput { /** * The unique identifier for a retention policy assignment. */ readonly id: string; /** * The value will always be `retention_policy_assignment`. */ readonly type?: RetentionPolicyAssignmentTypeField; readonly retentionPolicy?: RetentionPolicyMini; /** * The `type` and `id` of the content that is under * retention. The `type` can either be `folder` * `enterprise`, or `metadata_template`. */ readonly assignedTo?: RetentionPolicyAssignmentAssignedToField; /** * An array of field objects. Values are only returned if the `assigned_to` * type is `metadata_template`. Otherwise, the array is blank. */ readonly filterFields?: | readonly RetentionPolicyAssignmentFilterFieldsField[] | null; readonly assignedBy?: UserMini; /** * When the retention policy assignment object was * created. */ readonly assignedAt?: DateTime; /** * The date the retention policy assignment begins. * If the `assigned_to` type is `metadata_template`, * this field can be a date field's metadata attribute key id. */ readonly startDateField?: string; readonly rawData?: SerializedData; } export function serializeRetentionPolicyAssignmentTypeField( val: RetentionPolicyAssignmentTypeField, ): SerializedData { return val; } export function deserializeRetentionPolicyAssignmentTypeField( val: SerializedData, ): RetentionPolicyAssignmentTypeField { if (val == 'retention_policy_assignment') { return val; } throw new BoxSdkError({ message: "Can't deserialize RetentionPolicyAssignmentTypeField", }); } export function serializeRetentionPolicyAssignmentAssignedToTypeField( val: RetentionPolicyAssignmentAssignedToTypeField, ): SerializedData { return val; } export function deserializeRetentionPolicyAssignmentAssignedToTypeField( val: SerializedData, ): RetentionPolicyAssignmentAssignedToTypeField { if (val == 'folder') { return val; } if (val == 'enterprise') { return val; } if (val == 'metadata_template') { return val; } throw new BoxSdkError({ message: "Can't deserialize RetentionPolicyAssignmentAssignedToTypeField", }); } export function serializeRetentionPolicyAssignmentAssignedToField( val: RetentionPolicyAssignmentAssignedToField, ): SerializedData { return { ['id']: val.id, ['type']: val.type == void 0 ? val.type : serializeRetentionPolicyAssignmentAssignedToTypeField(val.type), }; } export function deserializeRetentionPolicyAssignmentAssignedToField( val: SerializedData, ): RetentionPolicyAssignmentAssignedToField { if (!sdIsMap(val)) { throw new BoxSdkError({ message: 'Expecting a map for "RetentionPolicyAssignmentAssignedToField"', }); } if (!(val.id == void 0) && !sdIsString(val.id)) { throw new BoxSdkError({ message: 'Expecting string for "id" of type "RetentionPolicyAssignmentAssignedToField"', }); } const id: undefined | string = val.id == void 0 ? void 0 : val.id; const type: undefined | RetentionPolicyAssignmentAssignedToTypeField = val.type == void 0 ? void 0 : deserializeRetentionPolicyAssignmentAssignedToTypeField(val.type); return { id: id, type: type, } satisfies RetentionPolicyAssignmentAssignedToField; } export function serializeRetentionPolicyAssignmentFilterFieldsField( val: RetentionPolicyAssignmentFilterFieldsField, ): SerializedData { return { ['field']: val.field, ['value']: val.value }; } export function deserializeRetentionPolicyAssignmentFilterFieldsField( val: SerializedData, ): RetentionPolicyAssignmentFilterFieldsField { if (!sdIsMap(val)) { throw new BoxSdkError({ message: 'Expecting a map for "RetentionPolicyAssignmentFilterFieldsField"', }); } if (!(val.field == void 0) && !sdIsString(val.field)) { throw new BoxSdkError({ message: 'Expecting string for "field" of type "RetentionPolicyAssignmentFilterFieldsField"', }); } const field: undefined | string = val.field == void 0 ? void 0 : val.field; if (!(val.value == void 0) && !sdIsString(val.value)) { throw new BoxSdkError({ message: 'Expecting string for "value" of type "RetentionPolicyAssignmentFilterFieldsField"', }); } const value: undefined | string = val.value == void 0 ? void 0 : val.value; return { field: field, value: value, } satisfies RetentionPolicyAssignmentFilterFieldsField; } export function serializeRetentionPolicyAssignment( val: RetentionPolicyAssignment, ): SerializedData { return { ['id']: val.id, ['type']: serializeRetentionPolicyAssignmentTypeField(val.type), ['retention_policy']: val.retentionPolicy == void 0 ? val.retentionPolicy : serializeRetentionPolicyMini(val.retentionPolicy), ['assigned_to']: val.assignedTo == void 0 ? val.assignedTo : serializeRetentionPolicyAssignmentAssignedToField(val.assignedTo), ['filter_fields']: val.filterFields == void 0 ? val.filterFields : (val.filterFields.map(function ( item: RetentionPolicyAssignmentFilterFieldsField, ): SerializedData { return serializeRetentionPolicyAssignmentFilterFieldsField(item); }) as readonly any[]), ['assigned_by']: val.assignedBy == void 0 ? val.assignedBy : serializeUserMini(val.assignedBy), ['assigned_at']: val.assignedAt == void 0 ? val.assignedAt : serializeDateTime(val.assignedAt), ['start_date_field']: val.startDateField, }; } export function deserializeRetentionPolicyAssignment( val: SerializedData, ): RetentionPolicyAssignment { if (!sdIsMap(val)) { throw new BoxSdkError({ message: 'Expecting a map for "RetentionPolicyAssignment"', }); } if (val.id == void 0) { throw new BoxSdkError({ message: 'Expecting "id" of type "RetentionPolicyAssignment" to be defined', }); } if (!sdIsString(val.id)) { throw new BoxSdkError({ message: 'Expecting string for "id" of type "RetentionPolicyAssignment"', }); } const id: string = val.id; if (val.type == void 0) { throw new BoxSdkError({ message: 'Expecting "type" of type "RetentionPolicyAssignment" to be defined', }); } const type: RetentionPolicyAssignmentTypeField = deserializeRetentionPolicyAssignmentTypeField(val.type); const retentionPolicy: undefined | RetentionPolicyMini = val.retention_policy == void 0 ? void 0 : deserializeRetentionPolicyMini(val.retention_policy); const assignedTo: undefined | RetentionPolicyAssignmentAssignedToField = val.assigned_to == void 0 ? void 0 : deserializeRetentionPolicyAssignmentAssignedToField(val.assigned_to); if (!(val.filter_fields == void 0) && !sdIsList(val.filter_fields)) { throw new BoxSdkError({ message: 'Expecting array for "filter_fields" of type "RetentionPolicyAssignment"', }); } const filterFields: | undefined | readonly RetentionPolicyAssignmentFilterFieldsField[] = val.filter_fields == void 0 ? void 0 : sdIsList(val.filter_fields) ? (val.filter_fields.map(function ( itm: SerializedData, ): RetentionPolicyAssignmentFilterFieldsField { return deserializeRetentionPolicyAssignmentFilterFieldsField(itm); }) as readonly any[]) : []; const assignedBy: undefined | UserMini = val.assigned_by == void 0 ? void 0 : deserializeUserMini(val.assigned_by); if (!(val.assigned_at == void 0) && !sdIsString(val.assigned_at)) { throw new BoxSdkError({ message: 'Expecting string for "assigned_at" of type "RetentionPolicyAssignment"', }); } const assignedAt: undefined | DateTime = val.assigned_at == void 0 ? void 0 : deserializeDateTime(val.assigned_at); if (!(val.start_date_field == void 0) && !sdIsString(val.start_date_field)) { throw new BoxSdkError({ message: 'Expecting string for "start_date_field" of type "RetentionPolicyAssignment"', }); } const startDateField: undefined | string = val.start_date_field == void 0 ? void 0 : val.start_date_field; return { id: id, type: type, retentionPolicy: retentionPolicy, assignedTo: assignedTo, filterFields: filterFields, assignedBy: assignedBy, assignedAt: assignedAt, startDateField: startDateField, } satisfies RetentionPolicyAssignment; } export function serializeRetentionPolicyAssignmentInput( val: RetentionPolicyAssignmentInput, ): SerializedData { return { ['id']: val.id, ['type']: val.type == void 0 ? val.type : serializeRetentionPolicyAssignmentTypeField(val.type), ['retention_policy']: val.retentionPolicy == void 0 ? val.retentionPolicy : serializeRetentionPolicyMini(val.retentionPolicy), ['assigned_to']: val.assignedTo == void 0 ? val.assignedTo : serializeRetentionPolicyAssignmentAssignedToField(val.assignedTo), ['filter_fields']: val.filterFields == void 0 ? val.filterFields : (val.filterFields.map(function ( item: RetentionPolicyAssignmentFilterFieldsField, ): SerializedData { return serializeRetentionPolicyAssignmentFilterFieldsField(item); }) as readonly any[]), ['assigned_by']: val.assignedBy == void 0 ? val.assignedBy : serializeUserMini(val.assignedBy), ['assigned_at']: val.assignedAt == void 0 ? val.assignedAt : serializeDateTime(val.assignedAt), ['start_date_field']: val.startDateField, }; } export function deserializeRetentionPolicyAssignmentInput( val: SerializedData, ): RetentionPolicyAssignmentInput { if (!sdIsMap(val)) { throw new BoxSdkError({ message: 'Expecting a map for "RetentionPolicyAssignmentInput"', }); } if (val.id == void 0) { throw new BoxSdkError({ message: 'Expecting "id" of type "RetentionPolicyAssignmentInput" to be defined', }); } if (!sdIsString(val.id)) { throw new BoxSdkError({ message: 'Expecting string for "id" of type "RetentionPolicyAssignmentInput"', }); } const id: string = val.id; const type: undefined | RetentionPolicyAssignmentTypeField = val.type == void 0 ? void 0 : deserializeRetentionPolicyAssignmentTypeField(val.type); const retentionPolicy: undefined | RetentionPolicyMini = val.retention_policy == void 0 ? void 0 : deserializeRetentionPolicyMini(val.retention_policy); const assignedTo: undefined | RetentionPolicyAssignmentAssignedToField = val.assigned_to == void 0 ? void 0 : deserializeRetentionPolicyAssignmentAssignedToField(val.assigned_to); if (!(val.filter_fields == void 0) && !sdIsList(val.filter_fields)) { throw new BoxSdkError({ message: 'Expecting array for "filter_fields" of type "RetentionPolicyAssignmentInput"', }); } const filterFields: | undefined | readonly RetentionPolicyAssignmentFilterFieldsField[] = val.filter_fields == void 0 ? void 0 : sdIsList(val.filter_fields) ? (val.filter_fields.map(function ( itm: SerializedData, ): RetentionPolicyAssignmentFilterFieldsField { return deserializeRetentionPolicyAssignmentFilterFieldsField(itm); }) as readonly any[]) : []; const assignedBy: undefined | UserMini = val.assigned_by == void 0 ? void 0 : deserializeUserMini(val.assigned_by); if (!(val.assigned_at == void 0) && !sdIsString(val.assigned_at)) { throw new BoxSdkError({ message: 'Expecting string for "assigned_at" of type "RetentionPolicyAssignmentInput"', }); } const assignedAt: undefined | DateTime = val.assigned_at == void 0 ? void 0 : deserializeDateTime(val.assigned_at); if (!(val.start_date_field == void 0) && !sdIsString(val.start_date_field)) { throw new BoxSdkError({ message: 'Expecting string for "start_date_field" of type "RetentionPolicyAssignmentInput"', }); } const startDateField: undefined | string = val.start_date_field == void 0 ? void 0 : val.start_date_field; return { id: id, type: type, retentionPolicy: retentionPolicy, assignedTo: assignedTo, filterFields: filterFields, assignedBy: assignedBy, assignedAt: assignedAt, startDateField: startDateField, } satisfies RetentionPolicyAssignmentInput; }