"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.serializeEnterpriseConfigurationV2025R0TypeField = serializeEnterpriseConfigurationV2025R0TypeField;
exports.deserializeEnterpriseConfigurationV2025R0TypeField = deserializeEnterpriseConfigurationV2025R0TypeField;
exports.serializeEnterpriseConfigurationV2025R0 = serializeEnterpriseConfigurationV2025R0;
exports.deserializeEnterpriseConfigurationV2025R0 = deserializeEnterpriseConfigurationV2025R0;
const enterpriseConfigurationSecurityV2025R0_1 = require("./enterpriseConfigurationSecurityV2025R0");
const enterpriseConfigurationSecurityV2025R0_2 = require("./enterpriseConfigurationSecurityV2025R0");
const enterpriseConfigurationContentAndSharingV2025R0_1 = require("./enterpriseConfigurationContentAndSharingV2025R0");
const enterpriseConfigurationContentAndSharingV2025R0_2 = require("./enterpriseConfigurationContentAndSharingV2025R0");
const enterpriseConfigurationUserSettingsV2025R0_1 = require("./enterpriseConfigurationUserSettingsV2025R0");
const enterpriseConfigurationUserSettingsV2025R0_2 = require("./enterpriseConfigurationUserSettingsV2025R0");
const enterpriseConfigurationShieldV2025R0_1 = require("./enterpriseConfigurationShieldV2025R0");
const enterpriseConfigurationShieldV2025R0_2 = require("./enterpriseConfigurationShieldV2025R0");
const errors_1 = require("../../box/errors");
const json_1 = require("../../serialization/json");
const json_2 = require("../../serialization/json");
function serializeEnterpriseConfigurationV2025R0TypeField(val) {
    return val;
}
function deserializeEnterpriseConfigurationV2025R0TypeField(val) {
    if (val == 'enterprise_configuration') {
        return val;
    }
    throw new errors_1.BoxSdkError({
        message: "Can't deserialize EnterpriseConfigurationV2025R0TypeField",
    });
}
function serializeEnterpriseConfigurationV2025R0(val) {
    return {
        ['id']: val.id,
        ['type']: val.type == void 0
            ? val.type
            : serializeEnterpriseConfigurationV2025R0TypeField(val.type),
        ['security']: val.security == void 0
            ? val.security
            : (0, enterpriseConfigurationSecurityV2025R0_1.serializeEnterpriseConfigurationSecurityV2025R0)(val.security),
        ['content_and_sharing']: val.contentAndSharing == void 0
            ? val.contentAndSharing
            : (0, enterpriseConfigurationContentAndSharingV2025R0_1.serializeEnterpriseConfigurationContentAndSharingV2025R0)(val.contentAndSharing),
        ['user_settings']: val.userSettings == void 0
            ? val.userSettings
            : (0, enterpriseConfigurationUserSettingsV2025R0_1.serializeEnterpriseConfigurationUserSettingsV2025R0)(val.userSettings),
        ['shield']: val.shield == void 0
            ? val.shield
            : (0, enterpriseConfigurationShieldV2025R0_1.serializeEnterpriseConfigurationShieldV2025R0)(val.shield),
    };
}
function deserializeEnterpriseConfigurationV2025R0(val) {
    if (!(0, json_2.sdIsMap)(val)) {
        throw new errors_1.BoxSdkError({
            message: 'Expecting a map for "EnterpriseConfigurationV2025R0"',
        });
    }
    if (!(val.id == void 0) && !(0, json_1.sdIsString)(val.id)) {
        throw new errors_1.BoxSdkError({
            message: 'Expecting string for "id" of type "EnterpriseConfigurationV2025R0"',
        });
    }
    const id = val.id == void 0 ? void 0 : val.id;
    const type = val.type == void 0
        ? void 0
        : deserializeEnterpriseConfigurationV2025R0TypeField(val.type);
    const security = val.security == void 0
        ? void 0
        : (0, enterpriseConfigurationSecurityV2025R0_2.deserializeEnterpriseConfigurationSecurityV2025R0)(val.security);
    const contentAndSharing = val.content_and_sharing == void 0
        ? void 0
        : (0, enterpriseConfigurationContentAndSharingV2025R0_2.deserializeEnterpriseConfigurationContentAndSharingV2025R0)(val.content_and_sharing);
    const userSettings = val.user_settings == void 0
        ? void 0
        : (0, enterpriseConfigurationUserSettingsV2025R0_2.deserializeEnterpriseConfigurationUserSettingsV2025R0)(val.user_settings);
    const shield = val.shield == void 0
        ? void 0
        : (0, enterpriseConfigurationShieldV2025R0_2.deserializeEnterpriseConfigurationShieldV2025R0)(val.shield);
    return {
        id: id,
        type: type,
        security: security,
        contentAndSharing: contentAndSharing,
        userSettings: userSettings,
        shield: shield,
    };
}
//# sourceMappingURL=enterpriseConfigurationV2025R0.js.map