"use strict";
/* tslint:disable */
/* eslint-disable */
/**
 * authentik
 * Making authentication simple.
 *
 * The version of the OpenAPI document: 2026.2.0-rc1
 * Contact: hello@goauthentik.io
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
Object.defineProperty(exports, "__esModule", { value: true });
exports.instanceOfSCIMProvider = instanceOfSCIMProvider;
exports.SCIMProviderFromJSON = SCIMProviderFromJSON;
exports.SCIMProviderFromJSONTyped = SCIMProviderFromJSONTyped;
exports.SCIMProviderToJSON = SCIMProviderToJSON;
exports.SCIMProviderToJSONTyped = SCIMProviderToJSONTyped;
const CompatibilityModeEnum_1 = require("./CompatibilityModeEnum");
const SCIMAuthenticationModeEnum_1 = require("./SCIMAuthenticationModeEnum");
/**
 * Check if a given object implements the SCIMProvider interface.
 */
function instanceOfSCIMProvider(value) {
    if (!('pk' in value) || value['pk'] === undefined)
        return false;
    if (!('name' in value) || value['name'] === undefined)
        return false;
    if (!('component' in value) || value['component'] === undefined)
        return false;
    if (!('assignedBackchannelApplicationSlug' in value) || value['assignedBackchannelApplicationSlug'] === undefined)
        return false;
    if (!('assignedBackchannelApplicationName' in value) || value['assignedBackchannelApplicationName'] === undefined)
        return false;
    if (!('verboseName' in value) || value['verboseName'] === undefined)
        return false;
    if (!('verboseNamePlural' in value) || value['verboseNamePlural'] === undefined)
        return false;
    if (!('metaModelName' in value) || value['metaModelName'] === undefined)
        return false;
    if (!('url' in value) || value['url'] === undefined)
        return false;
    return true;
}
function SCIMProviderFromJSON(json) {
    return SCIMProviderFromJSONTyped(json, false);
}
function SCIMProviderFromJSONTyped(json, ignoreDiscriminator) {
    if (json == null) {
        return json;
    }
    return {
        'pk': json['pk'],
        'name': json['name'],
        'propertyMappings': json['property_mappings'] == null ? undefined : json['property_mappings'],
        'propertyMappingsGroup': json['property_mappings_group'] == null ? undefined : json['property_mappings_group'],
        'component': json['component'],
        'assignedBackchannelApplicationSlug': json['assigned_backchannel_application_slug'],
        'assignedBackchannelApplicationName': json['assigned_backchannel_application_name'],
        'verboseName': json['verbose_name'],
        'verboseNamePlural': json['verbose_name_plural'],
        'metaModelName': json['meta_model_name'],
        'url': json['url'],
        'verifyCertificates': json['verify_certificates'] == null ? undefined : json['verify_certificates'],
        'token': json['token'] == null ? undefined : json['token'],
        'authMode': json['auth_mode'] == null ? undefined : (0, SCIMAuthenticationModeEnum_1.SCIMAuthenticationModeEnumFromJSON)(json['auth_mode']),
        'authOauth': json['auth_oauth'] == null ? undefined : json['auth_oauth'],
        'authOauthParams': json['auth_oauth_params'] == null ? undefined : json['auth_oauth_params'],
        'compatibilityMode': json['compatibility_mode'] == null ? undefined : (0, CompatibilityModeEnum_1.CompatibilityModeEnumFromJSON)(json['compatibility_mode']),
        'serviceProviderConfigCacheTimeout': json['service_provider_config_cache_timeout'] == null ? undefined : json['service_provider_config_cache_timeout'],
        'excludeUsersServiceAccount': json['exclude_users_service_account'] == null ? undefined : json['exclude_users_service_account'],
        'syncPageSize': json['sync_page_size'] == null ? undefined : json['sync_page_size'],
        'syncPageTimeout': json['sync_page_timeout'] == null ? undefined : json['sync_page_timeout'],
        'groupFilters': json['group_filters'] == null ? undefined : json['group_filters'],
        'dryRun': json['dry_run'] == null ? undefined : json['dry_run'],
    };
}
function SCIMProviderToJSON(json) {
    return SCIMProviderToJSONTyped(json, false);
}
function SCIMProviderToJSONTyped(value, ignoreDiscriminator = false) {
    if (value == null) {
        return value;
    }
    return {
        'name': value['name'],
        'property_mappings': value['propertyMappings'],
        'property_mappings_group': value['propertyMappingsGroup'],
        'url': value['url'],
        'verify_certificates': value['verifyCertificates'],
        'token': value['token'],
        'auth_mode': (0, SCIMAuthenticationModeEnum_1.SCIMAuthenticationModeEnumToJSON)(value['authMode']),
        'auth_oauth': value['authOauth'],
        'auth_oauth_params': value['authOauthParams'],
        'compatibility_mode': (0, CompatibilityModeEnum_1.CompatibilityModeEnumToJSON)(value['compatibilityMode']),
        'service_provider_config_cache_timeout': value['serviceProviderConfigCacheTimeout'],
        'exclude_users_service_account': value['excludeUsersServiceAccount'],
        'sync_page_size': value['syncPageSize'],
        'sync_page_timeout': value['syncPageTimeout'],
        'group_filters': value['groupFilters'],
        'dry_run': value['dryRun'],
    };
}
//# sourceMappingURL=SCIMProvider.js.map