/* tslint:disable */ /* eslint-disable */ /** * authentik * Making authentication simple. * * The version of the OpenAPI document: 2025.6.3 * 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. */ import { mapValues } from '../runtime'; import type { PolicyEngineMode } from './PolicyEngineMode'; import { PolicyEngineModeFromJSON, PolicyEngineModeFromJSONTyped, PolicyEngineModeToJSON, PolicyEngineModeToJSONTyped, } from './PolicyEngineMode'; import type { UserMatchingModeEnum } from './UserMatchingModeEnum'; import { UserMatchingModeEnumFromJSON, UserMatchingModeEnumFromJSONTyped, UserMatchingModeEnumToJSON, UserMatchingModeEnumToJSONTyped, } from './UserMatchingModeEnum'; /** * LDAP Source Serializer * @export * @interface LDAPSourceRequest */ export interface LDAPSourceRequest { /** * Source's display Name. * @type {string} * @memberof LDAPSourceRequest */ name: string; /** * Internal source name, used in URLs. * @type {string} * @memberof LDAPSourceRequest */ slug: string; /** * * @type {boolean} * @memberof LDAPSourceRequest */ enabled?: boolean; /** * Flow to use when authenticating existing users. * @type {string} * @memberof LDAPSourceRequest */ authenticationFlow?: string | null; /** * Flow to use when enrolling new users. * @type {string} * @memberof LDAPSourceRequest */ enrollmentFlow?: string | null; /** * * @type {Array} * @memberof LDAPSourceRequest */ userPropertyMappings?: Array; /** * * @type {Array} * @memberof LDAPSourceRequest */ groupPropertyMappings?: Array; /** * * @type {PolicyEngineMode} * @memberof LDAPSourceRequest */ policyEngineMode?: PolicyEngineMode; /** * How the source determines if an existing user should be authenticated or a new user enrolled. * @type {UserMatchingModeEnum} * @memberof LDAPSourceRequest */ userMatchingMode?: UserMatchingModeEnum; /** * * @type {string} * @memberof LDAPSourceRequest */ userPathTemplate?: string; /** * * @type {string} * @memberof LDAPSourceRequest */ serverUri: string; /** * Optionally verify the LDAP Server's Certificate against the CA Chain in this keypair. * @type {string} * @memberof LDAPSourceRequest */ peerCertificate?: string | null; /** * Client certificate to authenticate against the LDAP Server's Certificate. * @type {string} * @memberof LDAPSourceRequest */ clientCertificate?: string | null; /** * * @type {string} * @memberof LDAPSourceRequest */ bindCn?: string; /** * * @type {string} * @memberof LDAPSourceRequest */ bindPassword?: string; /** * * @type {boolean} * @memberof LDAPSourceRequest */ startTls?: boolean; /** * * @type {boolean} * @memberof LDAPSourceRequest */ sni?: boolean; /** * * @type {string} * @memberof LDAPSourceRequest */ baseDn: string; /** * Prepended to Base DN for User-queries. * @type {string} * @memberof LDAPSourceRequest */ additionalUserDn?: string; /** * Prepended to Base DN for Group-queries. * @type {string} * @memberof LDAPSourceRequest */ additionalGroupDn?: string; /** * Consider Objects matching this filter to be Users. * @type {string} * @memberof LDAPSourceRequest */ userObjectFilter?: string; /** * Consider Objects matching this filter to be Groups. * @type {string} * @memberof LDAPSourceRequest */ groupObjectFilter?: string; /** * Field which contains members of a group. * @type {string} * @memberof LDAPSourceRequest */ groupMembershipField?: string; /** * Attribute which matches the value of `group_membership_field`. * @type {string} * @memberof LDAPSourceRequest */ userMembershipAttribute?: string; /** * Field which contains a unique Identifier. * @type {string} * @memberof LDAPSourceRequest */ objectUniquenessField?: string; /** * Update internal authentik password when login succeeds with LDAP * @type {boolean} * @memberof LDAPSourceRequest */ passwordLoginUpdateInternalPassword?: boolean; /** * * @type {boolean} * @memberof LDAPSourceRequest */ syncUsers?: boolean; /** * When a user changes their password, sync it back to LDAP. This can only be enabled on a single LDAP source. * @type {boolean} * @memberof LDAPSourceRequest */ syncUsersPassword?: boolean; /** * * @type {boolean} * @memberof LDAPSourceRequest */ syncGroups?: boolean; /** * * @type {string} * @memberof LDAPSourceRequest */ syncParentGroup?: string | null; /** * Lookup group membership based on a user attribute instead of a group attribute. This allows nested group resolution on systems like FreeIPA and Active Directory * @type {boolean} * @memberof LDAPSourceRequest */ lookupGroupsFromUser?: boolean; /** * Delete authentik users and groups which were previously supplied by this source, but are now missing from it. * @type {boolean} * @memberof LDAPSourceRequest */ deleteNotFoundObjects?: boolean; } /** * Check if a given object implements the LDAPSourceRequest interface. */ export function instanceOfLDAPSourceRequest(value: object): value is LDAPSourceRequest { if (!('name' in value) || value['name'] === undefined) return false; if (!('slug' in value) || value['slug'] === undefined) return false; if (!('serverUri' in value) || value['serverUri'] === undefined) return false; if (!('baseDn' in value) || value['baseDn'] === undefined) return false; return true; } export function LDAPSourceRequestFromJSON(json: any): LDAPSourceRequest { return LDAPSourceRequestFromJSONTyped(json, false); } export function LDAPSourceRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): LDAPSourceRequest { if (json == null) { return json; } return { 'name': json['name'], 'slug': json['slug'], 'enabled': json['enabled'] == null ? undefined : json['enabled'], 'authenticationFlow': json['authentication_flow'] == null ? undefined : json['authentication_flow'], 'enrollmentFlow': json['enrollment_flow'] == null ? undefined : json['enrollment_flow'], 'userPropertyMappings': json['user_property_mappings'] == null ? undefined : json['user_property_mappings'], 'groupPropertyMappings': json['group_property_mappings'] == null ? undefined : json['group_property_mappings'], 'policyEngineMode': json['policy_engine_mode'] == null ? undefined : PolicyEngineModeFromJSON(json['policy_engine_mode']), 'userMatchingMode': json['user_matching_mode'] == null ? undefined : UserMatchingModeEnumFromJSON(json['user_matching_mode']), 'userPathTemplate': json['user_path_template'] == null ? undefined : json['user_path_template'], 'serverUri': json['server_uri'], 'peerCertificate': json['peer_certificate'] == null ? undefined : json['peer_certificate'], 'clientCertificate': json['client_certificate'] == null ? undefined : json['client_certificate'], 'bindCn': json['bind_cn'] == null ? undefined : json['bind_cn'], 'bindPassword': json['bind_password'] == null ? undefined : json['bind_password'], 'startTls': json['start_tls'] == null ? undefined : json['start_tls'], 'sni': json['sni'] == null ? undefined : json['sni'], 'baseDn': json['base_dn'], 'additionalUserDn': json['additional_user_dn'] == null ? undefined : json['additional_user_dn'], 'additionalGroupDn': json['additional_group_dn'] == null ? undefined : json['additional_group_dn'], 'userObjectFilter': json['user_object_filter'] == null ? undefined : json['user_object_filter'], 'groupObjectFilter': json['group_object_filter'] == null ? undefined : json['group_object_filter'], 'groupMembershipField': json['group_membership_field'] == null ? undefined : json['group_membership_field'], 'userMembershipAttribute': json['user_membership_attribute'] == null ? undefined : json['user_membership_attribute'], 'objectUniquenessField': json['object_uniqueness_field'] == null ? undefined : json['object_uniqueness_field'], 'passwordLoginUpdateInternalPassword': json['password_login_update_internal_password'] == null ? undefined : json['password_login_update_internal_password'], 'syncUsers': json['sync_users'] == null ? undefined : json['sync_users'], 'syncUsersPassword': json['sync_users_password'] == null ? undefined : json['sync_users_password'], 'syncGroups': json['sync_groups'] == null ? undefined : json['sync_groups'], 'syncParentGroup': json['sync_parent_group'] == null ? undefined : json['sync_parent_group'], 'lookupGroupsFromUser': json['lookup_groups_from_user'] == null ? undefined : json['lookup_groups_from_user'], 'deleteNotFoundObjects': json['delete_not_found_objects'] == null ? undefined : json['delete_not_found_objects'], }; } export function LDAPSourceRequestToJSON(json: any): LDAPSourceRequest { return LDAPSourceRequestToJSONTyped(json, false); } export function LDAPSourceRequestToJSONTyped(value?: LDAPSourceRequest | null, ignoreDiscriminator: boolean = false): any { if (value == null) { return value; } return { 'name': value['name'], 'slug': value['slug'], 'enabled': value['enabled'], 'authentication_flow': value['authenticationFlow'], 'enrollment_flow': value['enrollmentFlow'], 'user_property_mappings': value['userPropertyMappings'], 'group_property_mappings': value['groupPropertyMappings'], 'policy_engine_mode': PolicyEngineModeToJSON(value['policyEngineMode']), 'user_matching_mode': UserMatchingModeEnumToJSON(value['userMatchingMode']), 'user_path_template': value['userPathTemplate'], 'server_uri': value['serverUri'], 'peer_certificate': value['peerCertificate'], 'client_certificate': value['clientCertificate'], 'bind_cn': value['bindCn'], 'bind_password': value['bindPassword'], 'start_tls': value['startTls'], 'sni': value['sni'], 'base_dn': value['baseDn'], 'additional_user_dn': value['additionalUserDn'], 'additional_group_dn': value['additionalGroupDn'], 'user_object_filter': value['userObjectFilter'], 'group_object_filter': value['groupObjectFilter'], 'group_membership_field': value['groupMembershipField'], 'user_membership_attribute': value['userMembershipAttribute'], 'object_uniqueness_field': value['objectUniquenessField'], 'password_login_update_internal_password': value['passwordLoginUpdateInternalPassword'], 'sync_users': value['syncUsers'], 'sync_users_password': value['syncUsersPassword'], 'sync_groups': value['syncGroups'], 'sync_parent_group': value['syncParentGroup'], 'lookup_groups_from_user': value['lookupGroupsFromUser'], 'delete_not_found_objects': value['deleteNotFoundObjects'], }; }