UNPKG

box-node-sdk

Version:

Official SDK for Box Platform APIs

1,055 lines (1,054 loc) 36.8 kB
import { serializeStoragePolicyAssignments } from '../schemas/storagePolicyAssignments'; import { deserializeStoragePolicyAssignments } from '../schemas/storagePolicyAssignments'; import { serializeClientError } from '../schemas/clientError'; import { deserializeClientError } from '../schemas/clientError'; import { serializeStoragePolicyAssignment } from '../schemas/storagePolicyAssignment'; import { deserializeStoragePolicyAssignment } from '../schemas/storagePolicyAssignment'; import { ResponseFormat } from '../networking/fetchOptions'; import { StoragePolicyAssignments } from '../schemas/storagePolicyAssignments'; import { ClientError } from '../schemas/clientError'; import { StoragePolicyAssignment } from '../schemas/storagePolicyAssignment'; 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 GetStoragePolicyAssignmentsOptionals { readonly headers: GetStoragePolicyAssignmentsHeaders = new GetStoragePolicyAssignmentsHeaders({}); readonly cancellationToken?: CancellationToken = void 0; constructor( fields: Omit< GetStoragePolicyAssignmentsOptionals, 'headers' | 'cancellationToken' > & Partial< Pick< GetStoragePolicyAssignmentsOptionals, 'headers' | 'cancellationToken' > >, ) { if (fields.headers !== undefined) { this.headers = fields.headers; } if (fields.cancellationToken !== undefined) { this.cancellationToken = fields.cancellationToken; } } } export interface GetStoragePolicyAssignmentsOptionalsInput { readonly headers?: GetStoragePolicyAssignmentsHeaders; readonly cancellationToken?: CancellationToken; } export class CreateStoragePolicyAssignmentOptionals { readonly headers: CreateStoragePolicyAssignmentHeaders = new CreateStoragePolicyAssignmentHeaders({}); readonly cancellationToken?: CancellationToken = void 0; constructor( fields: Omit< CreateStoragePolicyAssignmentOptionals, 'headers' | 'cancellationToken' > & Partial< Pick< CreateStoragePolicyAssignmentOptionals, 'headers' | 'cancellationToken' > >, ) { if (fields.headers !== undefined) { this.headers = fields.headers; } if (fields.cancellationToken !== undefined) { this.cancellationToken = fields.cancellationToken; } } } export interface CreateStoragePolicyAssignmentOptionalsInput { readonly headers?: CreateStoragePolicyAssignmentHeaders; readonly cancellationToken?: CancellationToken; } export class GetStoragePolicyAssignmentByIdOptionals { readonly headers: GetStoragePolicyAssignmentByIdHeaders = new GetStoragePolicyAssignmentByIdHeaders({}); readonly cancellationToken?: CancellationToken = void 0; constructor( fields: Omit< GetStoragePolicyAssignmentByIdOptionals, 'headers' | 'cancellationToken' > & Partial< Pick< GetStoragePolicyAssignmentByIdOptionals, 'headers' | 'cancellationToken' > >, ) { if (fields.headers !== undefined) { this.headers = fields.headers; } if (fields.cancellationToken !== undefined) { this.cancellationToken = fields.cancellationToken; } } } export interface GetStoragePolicyAssignmentByIdOptionalsInput { readonly headers?: GetStoragePolicyAssignmentByIdHeaders; readonly cancellationToken?: CancellationToken; } export class UpdateStoragePolicyAssignmentByIdOptionals { readonly headers: UpdateStoragePolicyAssignmentByIdHeaders = new UpdateStoragePolicyAssignmentByIdHeaders({}); readonly cancellationToken?: CancellationToken = void 0; constructor( fields: Omit< UpdateStoragePolicyAssignmentByIdOptionals, 'headers' | 'cancellationToken' > & Partial< Pick< UpdateStoragePolicyAssignmentByIdOptionals, 'headers' | 'cancellationToken' > >, ) { if (fields.headers !== undefined) { this.headers = fields.headers; } if (fields.cancellationToken !== undefined) { this.cancellationToken = fields.cancellationToken; } } } export interface UpdateStoragePolicyAssignmentByIdOptionalsInput { readonly headers?: UpdateStoragePolicyAssignmentByIdHeaders; readonly cancellationToken?: CancellationToken; } export class DeleteStoragePolicyAssignmentByIdOptionals { readonly headers: DeleteStoragePolicyAssignmentByIdHeaders = new DeleteStoragePolicyAssignmentByIdHeaders({}); readonly cancellationToken?: CancellationToken = void 0; constructor( fields: Omit< DeleteStoragePolicyAssignmentByIdOptionals, 'headers' | 'cancellationToken' > & Partial< Pick< DeleteStoragePolicyAssignmentByIdOptionals, 'headers' | 'cancellationToken' > >, ) { if (fields.headers !== undefined) { this.headers = fields.headers; } if (fields.cancellationToken !== undefined) { this.cancellationToken = fields.cancellationToken; } } } export interface DeleteStoragePolicyAssignmentByIdOptionalsInput { readonly headers?: DeleteStoragePolicyAssignmentByIdHeaders; readonly cancellationToken?: CancellationToken; } export type GetStoragePolicyAssignmentsQueryParamsResolvedForTypeField = | 'user' | 'enterprise' | string; export interface GetStoragePolicyAssignmentsQueryParams { /** * Defines the position marker at which to begin returning results. This is * used when paginating using marker-based pagination. * * This requires `usemarker` to be set to `true`. */ readonly marker?: string; /** * The target type to return assignments for. */ readonly resolvedForType: GetStoragePolicyAssignmentsQueryParamsResolvedForTypeField; /** * The ID of the user or enterprise to return assignments for. */ readonly resolvedForId: string; } export class GetStoragePolicyAssignmentsHeaders { /** * Extra headers that will be included in the HTTP request. */ readonly extraHeaders?: { readonly [key: string]: undefined | string; } = {}; constructor( fields: Omit<GetStoragePolicyAssignmentsHeaders, 'extraHeaders'> & Partial<Pick<GetStoragePolicyAssignmentsHeaders, 'extraHeaders'>>, ) { if (fields.extraHeaders !== undefined) { this.extraHeaders = fields.extraHeaders; } } } export interface GetStoragePolicyAssignmentsHeadersInput { /** * Extra headers that will be included in the HTTP request. */ readonly extraHeaders?: { readonly [key: string]: undefined | string; }; } export type CreateStoragePolicyAssignmentRequestBodyStoragePolicyTypeField = 'storage_policy'; export class CreateStoragePolicyAssignmentRequestBodyStoragePolicyField { /** * The type to assign. */ readonly type: CreateStoragePolicyAssignmentRequestBodyStoragePolicyTypeField = 'storage_policy' as CreateStoragePolicyAssignmentRequestBodyStoragePolicyTypeField; /** * The ID of the storage policy to assign. */ readonly id!: string; readonly rawData?: SerializedData; constructor( fields: Omit< CreateStoragePolicyAssignmentRequestBodyStoragePolicyField, 'type' > & Partial< Pick<CreateStoragePolicyAssignmentRequestBodyStoragePolicyField, 'type'> >, ) { if (fields.type !== undefined) { this.type = fields.type; } if (fields.id !== undefined) { this.id = fields.id; } if (fields.rawData !== undefined) { this.rawData = fields.rawData; } } } export interface CreateStoragePolicyAssignmentRequestBodyStoragePolicyFieldInput { /** * The type to assign. */ readonly type?: CreateStoragePolicyAssignmentRequestBodyStoragePolicyTypeField; /** * The ID of the storage policy to assign. */ readonly id: string; readonly rawData?: SerializedData; } export type CreateStoragePolicyAssignmentRequestBodyAssignedToTypeField = | 'user' | 'enterprise'; export interface CreateStoragePolicyAssignmentRequestBodyAssignedToField { /** * The type to assign the policy to. */ readonly type: CreateStoragePolicyAssignmentRequestBodyAssignedToTypeField; /** * The ID of the user or enterprise. */ readonly id: string; readonly rawData?: SerializedData; } export interface CreateStoragePolicyAssignmentRequestBody { /** * The storage policy to assign to the user or * enterprise. */ readonly storagePolicy: CreateStoragePolicyAssignmentRequestBodyStoragePolicyField; /** * The user or enterprise to assign the storage * policy to. */ readonly assignedTo: CreateStoragePolicyAssignmentRequestBodyAssignedToField; readonly rawData?: SerializedData; } export class CreateStoragePolicyAssignmentHeaders { /** * Extra headers that will be included in the HTTP request. */ readonly extraHeaders?: { readonly [key: string]: undefined | string; } = {}; constructor( fields: Omit<CreateStoragePolicyAssignmentHeaders, 'extraHeaders'> & Partial<Pick<CreateStoragePolicyAssignmentHeaders, 'extraHeaders'>>, ) { if (fields.extraHeaders !== undefined) { this.extraHeaders = fields.extraHeaders; } } } export interface CreateStoragePolicyAssignmentHeadersInput { /** * Extra headers that will be included in the HTTP request. */ readonly extraHeaders?: { readonly [key: string]: undefined | string; }; } export class GetStoragePolicyAssignmentByIdHeaders { /** * Extra headers that will be included in the HTTP request. */ readonly extraHeaders?: { readonly [key: string]: undefined | string; } = {}; constructor( fields: Omit<GetStoragePolicyAssignmentByIdHeaders, 'extraHeaders'> & Partial<Pick<GetStoragePolicyAssignmentByIdHeaders, 'extraHeaders'>>, ) { if (fields.extraHeaders !== undefined) { this.extraHeaders = fields.extraHeaders; } } } export interface GetStoragePolicyAssignmentByIdHeadersInput { /** * Extra headers that will be included in the HTTP request. */ readonly extraHeaders?: { readonly [key: string]: undefined | string; }; } export type UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyTypeField = 'storage_policy'; export class UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyField { /** * The type to assign. */ readonly type: UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyTypeField = 'storage_policy' as UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyTypeField; /** * The ID of the storage policy to assign. */ readonly id!: string; readonly rawData?: SerializedData; constructor( fields: Omit< UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyField, 'type' > & Partial< Pick< UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyField, 'type' > >, ) { if (fields.type !== undefined) { this.type = fields.type; } if (fields.id !== undefined) { this.id = fields.id; } if (fields.rawData !== undefined) { this.rawData = fields.rawData; } } } export interface UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyFieldInput { /** * The type to assign. */ readonly type?: UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyTypeField; /** * The ID of the storage policy to assign. */ readonly id: string; readonly rawData?: SerializedData; } export interface UpdateStoragePolicyAssignmentByIdRequestBody { /** * The storage policy to assign to the user or * enterprise. */ readonly storagePolicy: UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyField; readonly rawData?: SerializedData; } export class UpdateStoragePolicyAssignmentByIdHeaders { /** * Extra headers that will be included in the HTTP request. */ readonly extraHeaders?: { readonly [key: string]: undefined | string; } = {}; constructor( fields: Omit<UpdateStoragePolicyAssignmentByIdHeaders, 'extraHeaders'> & Partial<Pick<UpdateStoragePolicyAssignmentByIdHeaders, 'extraHeaders'>>, ) { if (fields.extraHeaders !== undefined) { this.extraHeaders = fields.extraHeaders; } } } export interface UpdateStoragePolicyAssignmentByIdHeadersInput { /** * Extra headers that will be included in the HTTP request. */ readonly extraHeaders?: { readonly [key: string]: undefined | string; }; } export class DeleteStoragePolicyAssignmentByIdHeaders { /** * Extra headers that will be included in the HTTP request. */ readonly extraHeaders?: { readonly [key: string]: undefined | string; } = {}; constructor( fields: Omit<DeleteStoragePolicyAssignmentByIdHeaders, 'extraHeaders'> & Partial<Pick<DeleteStoragePolicyAssignmentByIdHeaders, 'extraHeaders'>>, ) { if (fields.extraHeaders !== undefined) { this.extraHeaders = fields.extraHeaders; } } } export interface DeleteStoragePolicyAssignmentByIdHeadersInput { /** * Extra headers that will be included in the HTTP request. */ readonly extraHeaders?: { readonly [key: string]: undefined | string; }; } export class StoragePolicyAssignmentsManager { readonly auth?: Authentication; readonly networkSession: NetworkSession = new NetworkSession({}); constructor( fields: Omit< StoragePolicyAssignmentsManager, | 'networkSession' | 'getStoragePolicyAssignments' | 'createStoragePolicyAssignment' | 'getStoragePolicyAssignmentById' | 'updateStoragePolicyAssignmentById' | 'deleteStoragePolicyAssignmentById' > & Partial<Pick<StoragePolicyAssignmentsManager, 'networkSession'>>, ) { if (fields.auth !== undefined) { this.auth = fields.auth; } if (fields.networkSession !== undefined) { this.networkSession = fields.networkSession; } } /** * Fetches all the storage policy assignment for an enterprise or user. * @param {GetStoragePolicyAssignmentsQueryParams} queryParams Query parameters of getStoragePolicyAssignments method * @param {GetStoragePolicyAssignmentsOptionalsInput} optionalsInput * @returns {Promise<StoragePolicyAssignments>} */ async getStoragePolicyAssignments( queryParams: GetStoragePolicyAssignmentsQueryParams, optionalsInput: GetStoragePolicyAssignmentsOptionalsInput = {}, ): Promise<StoragePolicyAssignments> { const optionals: GetStoragePolicyAssignmentsOptionals = new GetStoragePolicyAssignmentsOptionals({ headers: optionalsInput.headers, cancellationToken: optionalsInput.cancellationToken, }); const headers: any = optionals.headers; const cancellationToken: any = optionals.cancellationToken; const queryParamsMap: { readonly [key: string]: string; } = prepareParams({ ['marker']: toString(queryParams.marker) as string, ['resolved_for_type']: toString(queryParams.resolvedForType) as string, ['resolved_for_id']: toString(queryParams.resolvedForId) as string, }); 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/storage_policy_assignments', ) as string, method: 'GET', params: queryParamsMap, headers: headersMap, responseFormat: 'json' as ResponseFormat, auth: this.auth, networkSession: this.networkSession, cancellationToken: cancellationToken, }), ); return { ...deserializeStoragePolicyAssignments(response.data!), rawData: response.data!, }; } /** * Creates a storage policy assignment for an enterprise or user. * @param {CreateStoragePolicyAssignmentRequestBody} requestBody Request body of createStoragePolicyAssignment method * @param {CreateStoragePolicyAssignmentOptionalsInput} optionalsInput * @returns {Promise<StoragePolicyAssignment>} */ async createStoragePolicyAssignment( requestBody: CreateStoragePolicyAssignmentRequestBody, optionalsInput: CreateStoragePolicyAssignmentOptionalsInput = {}, ): Promise<StoragePolicyAssignment> { const optionals: CreateStoragePolicyAssignmentOptionals = new CreateStoragePolicyAssignmentOptionals({ 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/storage_policy_assignments', ) as string, method: 'POST', headers: headersMap, data: serializeCreateStoragePolicyAssignmentRequestBody(requestBody), contentType: 'application/json', responseFormat: 'json' as ResponseFormat, auth: this.auth, networkSession: this.networkSession, cancellationToken: cancellationToken, }), ); return { ...deserializeStoragePolicyAssignment(response.data!), rawData: response.data!, }; } /** * Fetches a specific storage policy assignment. * @param {string} storagePolicyAssignmentId The ID of the storage policy assignment. Example: "932483" * @param {GetStoragePolicyAssignmentByIdOptionalsInput} optionalsInput * @returns {Promise<StoragePolicyAssignment>} */ async getStoragePolicyAssignmentById( storagePolicyAssignmentId: string, optionalsInput: GetStoragePolicyAssignmentByIdOptionalsInput = {}, ): Promise<StoragePolicyAssignment> { const optionals: GetStoragePolicyAssignmentByIdOptionals = new GetStoragePolicyAssignmentByIdOptionals({ 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/storage_policy_assignments/', (toString(storagePolicyAssignmentId) as string)!, ) as string, method: 'GET', headers: headersMap, responseFormat: 'json' as ResponseFormat, auth: this.auth, networkSession: this.networkSession, cancellationToken: cancellationToken, }), ); return { ...deserializeStoragePolicyAssignment(response.data!), rawData: response.data!, }; } /** * Updates a specific storage policy assignment. * @param {string} storagePolicyAssignmentId The ID of the storage policy assignment. Example: "932483" * @param {UpdateStoragePolicyAssignmentByIdRequestBody} requestBody Request body of updateStoragePolicyAssignmentById method * @param {UpdateStoragePolicyAssignmentByIdOptionalsInput} optionalsInput * @returns {Promise<StoragePolicyAssignment>} */ async updateStoragePolicyAssignmentById( storagePolicyAssignmentId: string, requestBody: UpdateStoragePolicyAssignmentByIdRequestBody, optionalsInput: UpdateStoragePolicyAssignmentByIdOptionalsInput = {}, ): Promise<StoragePolicyAssignment> { const optionals: UpdateStoragePolicyAssignmentByIdOptionals = new UpdateStoragePolicyAssignmentByIdOptionals({ 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/storage_policy_assignments/', (toString(storagePolicyAssignmentId) as string)!, ) as string, method: 'PUT', headers: headersMap, data: serializeUpdateStoragePolicyAssignmentByIdRequestBody( requestBody, ), contentType: 'application/json', responseFormat: 'json' as ResponseFormat, auth: this.auth, networkSession: this.networkSession, cancellationToken: cancellationToken, }), ); return { ...deserializeStoragePolicyAssignment(response.data!), rawData: response.data!, }; } /** * Delete a storage policy assignment. * * Deleting a storage policy assignment on a user * will have the user inherit the enterprise's default * storage policy. * * There is a rate limit for calling this endpoint of only * twice per user in a 24 hour time frame. * @param {string} storagePolicyAssignmentId The ID of the storage policy assignment. Example: "932483" * @param {DeleteStoragePolicyAssignmentByIdOptionalsInput} optionalsInput * @returns {Promise<undefined>} */ async deleteStoragePolicyAssignmentById( storagePolicyAssignmentId: string, optionalsInput: DeleteStoragePolicyAssignmentByIdOptionalsInput = {}, ): Promise<undefined> { const optionals: DeleteStoragePolicyAssignmentByIdOptionals = new DeleteStoragePolicyAssignmentByIdOptionals({ 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/storage_policy_assignments/', (toString(storagePolicyAssignmentId) as string)!, ) as string, method: 'DELETE', headers: headersMap, responseFormat: 'no_content' as ResponseFormat, auth: this.auth, networkSession: this.networkSession, cancellationToken: cancellationToken, }), ); return void 0; } } export interface StoragePolicyAssignmentsManagerInput { readonly auth?: Authentication; readonly networkSession?: NetworkSession; } export function serializeGetStoragePolicyAssignmentsQueryParamsResolvedForTypeField( val: GetStoragePolicyAssignmentsQueryParamsResolvedForTypeField, ): SerializedData { return val; } export function deserializeGetStoragePolicyAssignmentsQueryParamsResolvedForTypeField( val: SerializedData, ): GetStoragePolicyAssignmentsQueryParamsResolvedForTypeField { if (val == 'user') { return val; } if (val == 'enterprise') { return val; } if (sdIsString(val)) { return val; } throw new BoxSdkError({ message: "Can't deserialize GetStoragePolicyAssignmentsQueryParamsResolvedForTypeField", }); } export function serializeCreateStoragePolicyAssignmentRequestBodyStoragePolicyTypeField( val: CreateStoragePolicyAssignmentRequestBodyStoragePolicyTypeField, ): SerializedData { return val; } export function deserializeCreateStoragePolicyAssignmentRequestBodyStoragePolicyTypeField( val: SerializedData, ): CreateStoragePolicyAssignmentRequestBodyStoragePolicyTypeField { if (val == 'storage_policy') { return val; } throw new BoxSdkError({ message: "Can't deserialize CreateStoragePolicyAssignmentRequestBodyStoragePolicyTypeField", }); } export function serializeCreateStoragePolicyAssignmentRequestBodyStoragePolicyField( val: CreateStoragePolicyAssignmentRequestBodyStoragePolicyField, ): SerializedData { return { ['type']: serializeCreateStoragePolicyAssignmentRequestBodyStoragePolicyTypeField( val.type, ), ['id']: val.id, }; } export function deserializeCreateStoragePolicyAssignmentRequestBodyStoragePolicyField( val: SerializedData, ): CreateStoragePolicyAssignmentRequestBodyStoragePolicyField { if (!sdIsMap(val)) { throw new BoxSdkError({ message: 'Expecting a map for "CreateStoragePolicyAssignmentRequestBodyStoragePolicyField"', }); } if (val.type == void 0) { throw new BoxSdkError({ message: 'Expecting "type" of type "CreateStoragePolicyAssignmentRequestBodyStoragePolicyField" to be defined', }); } const type: CreateStoragePolicyAssignmentRequestBodyStoragePolicyTypeField = deserializeCreateStoragePolicyAssignmentRequestBodyStoragePolicyTypeField( val.type, ); if (val.id == void 0) { throw new BoxSdkError({ message: 'Expecting "id" of type "CreateStoragePolicyAssignmentRequestBodyStoragePolicyField" to be defined', }); } if (!sdIsString(val.id)) { throw new BoxSdkError({ message: 'Expecting string for "id" of type "CreateStoragePolicyAssignmentRequestBodyStoragePolicyField"', }); } const id: string = val.id; return { type: type, id: id, } satisfies CreateStoragePolicyAssignmentRequestBodyStoragePolicyField; } export function serializeCreateStoragePolicyAssignmentRequestBodyStoragePolicyFieldInput( val: CreateStoragePolicyAssignmentRequestBodyStoragePolicyFieldInput, ): SerializedData { return { ['type']: val.type == void 0 ? val.type : serializeCreateStoragePolicyAssignmentRequestBodyStoragePolicyTypeField( val.type, ), ['id']: val.id, }; } export function deserializeCreateStoragePolicyAssignmentRequestBodyStoragePolicyFieldInput( val: SerializedData, ): CreateStoragePolicyAssignmentRequestBodyStoragePolicyFieldInput { if (!sdIsMap(val)) { throw new BoxSdkError({ message: 'Expecting a map for "CreateStoragePolicyAssignmentRequestBodyStoragePolicyFieldInput"', }); } const type: | undefined | CreateStoragePolicyAssignmentRequestBodyStoragePolicyTypeField = val.type == void 0 ? void 0 : deserializeCreateStoragePolicyAssignmentRequestBodyStoragePolicyTypeField( val.type, ); if (val.id == void 0) { throw new BoxSdkError({ message: 'Expecting "id" of type "CreateStoragePolicyAssignmentRequestBodyStoragePolicyFieldInput" to be defined', }); } if (!sdIsString(val.id)) { throw new BoxSdkError({ message: 'Expecting string for "id" of type "CreateStoragePolicyAssignmentRequestBodyStoragePolicyFieldInput"', }); } const id: string = val.id; return { type: type, id: id, } satisfies CreateStoragePolicyAssignmentRequestBodyStoragePolicyFieldInput; } export function serializeCreateStoragePolicyAssignmentRequestBodyAssignedToTypeField( val: CreateStoragePolicyAssignmentRequestBodyAssignedToTypeField, ): SerializedData { return val; } export function deserializeCreateStoragePolicyAssignmentRequestBodyAssignedToTypeField( val: SerializedData, ): CreateStoragePolicyAssignmentRequestBodyAssignedToTypeField { if (val == 'user') { return val; } if (val == 'enterprise') { return val; } throw new BoxSdkError({ message: "Can't deserialize CreateStoragePolicyAssignmentRequestBodyAssignedToTypeField", }); } export function serializeCreateStoragePolicyAssignmentRequestBodyAssignedToField( val: CreateStoragePolicyAssignmentRequestBodyAssignedToField, ): SerializedData { return { ['type']: serializeCreateStoragePolicyAssignmentRequestBodyAssignedToTypeField( val.type, ), ['id']: val.id, }; } export function deserializeCreateStoragePolicyAssignmentRequestBodyAssignedToField( val: SerializedData, ): CreateStoragePolicyAssignmentRequestBodyAssignedToField { if (!sdIsMap(val)) { throw new BoxSdkError({ message: 'Expecting a map for "CreateStoragePolicyAssignmentRequestBodyAssignedToField"', }); } if (val.type == void 0) { throw new BoxSdkError({ message: 'Expecting "type" of type "CreateStoragePolicyAssignmentRequestBodyAssignedToField" to be defined', }); } const type: CreateStoragePolicyAssignmentRequestBodyAssignedToTypeField = deserializeCreateStoragePolicyAssignmentRequestBodyAssignedToTypeField( val.type, ); if (val.id == void 0) { throw new BoxSdkError({ message: 'Expecting "id" of type "CreateStoragePolicyAssignmentRequestBodyAssignedToField" to be defined', }); } if (!sdIsString(val.id)) { throw new BoxSdkError({ message: 'Expecting string for "id" of type "CreateStoragePolicyAssignmentRequestBodyAssignedToField"', }); } const id: string = val.id; return { type: type, id: id, } satisfies CreateStoragePolicyAssignmentRequestBodyAssignedToField; } export function serializeCreateStoragePolicyAssignmentRequestBody( val: CreateStoragePolicyAssignmentRequestBody, ): SerializedData { return { ['storage_policy']: serializeCreateStoragePolicyAssignmentRequestBodyStoragePolicyField( val.storagePolicy, ), ['assigned_to']: serializeCreateStoragePolicyAssignmentRequestBodyAssignedToField( val.assignedTo, ), }; } export function deserializeCreateStoragePolicyAssignmentRequestBody( val: SerializedData, ): CreateStoragePolicyAssignmentRequestBody { if (!sdIsMap(val)) { throw new BoxSdkError({ message: 'Expecting a map for "CreateStoragePolicyAssignmentRequestBody"', }); } if (val.storage_policy == void 0) { throw new BoxSdkError({ message: 'Expecting "storage_policy" of type "CreateStoragePolicyAssignmentRequestBody" to be defined', }); } const storagePolicy: CreateStoragePolicyAssignmentRequestBodyStoragePolicyField = deserializeCreateStoragePolicyAssignmentRequestBodyStoragePolicyField( val.storage_policy, ); if (val.assigned_to == void 0) { throw new BoxSdkError({ message: 'Expecting "assigned_to" of type "CreateStoragePolicyAssignmentRequestBody" to be defined', }); } const assignedTo: CreateStoragePolicyAssignmentRequestBodyAssignedToField = deserializeCreateStoragePolicyAssignmentRequestBodyAssignedToField( val.assigned_to, ); return { storagePolicy: storagePolicy, assignedTo: assignedTo, } satisfies CreateStoragePolicyAssignmentRequestBody; } export function serializeUpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyTypeField( val: UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyTypeField, ): SerializedData { return val; } export function deserializeUpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyTypeField( val: SerializedData, ): UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyTypeField { if (val == 'storage_policy') { return val; } throw new BoxSdkError({ message: "Can't deserialize UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyTypeField", }); } export function serializeUpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyField( val: UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyField, ): SerializedData { return { ['type']: serializeUpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyTypeField( val.type, ), ['id']: val.id, }; } export function deserializeUpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyField( val: SerializedData, ): UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyField { if (!sdIsMap(val)) { throw new BoxSdkError({ message: 'Expecting a map for "UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyField"', }); } if (val.type == void 0) { throw new BoxSdkError({ message: 'Expecting "type" of type "UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyField" to be defined', }); } const type: UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyTypeField = deserializeUpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyTypeField( val.type, ); if (val.id == void 0) { throw new BoxSdkError({ message: 'Expecting "id" of type "UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyField" to be defined', }); } if (!sdIsString(val.id)) { throw new BoxSdkError({ message: 'Expecting string for "id" of type "UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyField"', }); } const id: string = val.id; return { type: type, id: id, } satisfies UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyField; } export function serializeUpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyFieldInput( val: UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyFieldInput, ): SerializedData { return { ['type']: val.type == void 0 ? val.type : serializeUpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyTypeField( val.type, ), ['id']: val.id, }; } export function deserializeUpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyFieldInput( val: SerializedData, ): UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyFieldInput { if (!sdIsMap(val)) { throw new BoxSdkError({ message: 'Expecting a map for "UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyFieldInput"', }); } const type: | undefined | UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyTypeField = val.type == void 0 ? void 0 : deserializeUpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyTypeField( val.type, ); if (val.id == void 0) { throw new BoxSdkError({ message: 'Expecting "id" of type "UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyFieldInput" to be defined', }); } if (!sdIsString(val.id)) { throw new BoxSdkError({ message: 'Expecting string for "id" of type "UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyFieldInput"', }); } const id: string = val.id; return { type: type, id: id, } satisfies UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyFieldInput; } export function serializeUpdateStoragePolicyAssignmentByIdRequestBody( val: UpdateStoragePolicyAssignmentByIdRequestBody, ): SerializedData { return { ['storage_policy']: serializeUpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyField( val.storagePolicy, ), }; } export function deserializeUpdateStoragePolicyAssignmentByIdRequestBody( val: SerializedData, ): UpdateStoragePolicyAssignmentByIdRequestBody { if (!sdIsMap(val)) { throw new BoxSdkError({ message: 'Expecting a map for "UpdateStoragePolicyAssignmentByIdRequestBody"', }); } if (val.storage_policy == void 0) { throw new BoxSdkError({ message: 'Expecting "storage_policy" of type "UpdateStoragePolicyAssignmentByIdRequestBody" to be defined', }); } const storagePolicy: UpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyField = deserializeUpdateStoragePolicyAssignmentByIdRequestBodyStoragePolicyField( val.storage_policy, ); return { storagePolicy: storagePolicy, } satisfies UpdateStoragePolicyAssignmentByIdRequestBody; }