/* 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'; import type { GroupMatchingModeEnum } from './GroupMatchingModeEnum'; import { GroupMatchingModeEnumFromJSON, GroupMatchingModeEnumFromJSONTyped, GroupMatchingModeEnumToJSON, GroupMatchingModeEnumToJSONTyped, } from './GroupMatchingModeEnum'; import type { AuthorizationCodeAuthMethodEnum } from './AuthorizationCodeAuthMethodEnum'; import { AuthorizationCodeAuthMethodEnumFromJSON, AuthorizationCodeAuthMethodEnumFromJSONTyped, AuthorizationCodeAuthMethodEnumToJSON, AuthorizationCodeAuthMethodEnumToJSONTyped, } from './AuthorizationCodeAuthMethodEnum'; import type { ProviderTypeEnum } from './ProviderTypeEnum'; import { ProviderTypeEnumFromJSON, ProviderTypeEnumFromJSONTyped, ProviderTypeEnumToJSON, ProviderTypeEnumToJSONTyped, } from './ProviderTypeEnum'; /** * OAuth Source Serializer * @export * @interface OAuthSourceRequest */ export interface OAuthSourceRequest { /** * Source's display Name. * @type {string} * @memberof OAuthSourceRequest */ name: string; /** * Internal source name, used in URLs. * @type {string} * @memberof OAuthSourceRequest */ slug: string; /** * * @type {boolean} * @memberof OAuthSourceRequest */ enabled?: boolean; /** * Flow to use when authenticating existing users. * @type {string} * @memberof OAuthSourceRequest */ authenticationFlow?: string | null; /** * Flow to use when enrolling new users. * @type {string} * @memberof OAuthSourceRequest */ enrollmentFlow?: string | null; /** * * @type {Array} * @memberof OAuthSourceRequest */ userPropertyMappings?: Array; /** * * @type {Array} * @memberof OAuthSourceRequest */ groupPropertyMappings?: Array; /** * * @type {PolicyEngineMode} * @memberof OAuthSourceRequest */ policyEngineMode?: PolicyEngineMode; /** * How the source determines if an existing user should be authenticated or a new user enrolled. * @type {UserMatchingModeEnum} * @memberof OAuthSourceRequest */ userMatchingMode?: UserMatchingModeEnum; /** * * @type {string} * @memberof OAuthSourceRequest */ userPathTemplate?: string; /** * How the source determines if an existing group should be used or a new group created. * @type {GroupMatchingModeEnum} * @memberof OAuthSourceRequest */ groupMatchingMode?: GroupMatchingModeEnum; /** * * @type {ProviderTypeEnum} * @memberof OAuthSourceRequest */ providerType: ProviderTypeEnum; /** * URL used to request the initial token. This URL is only required for OAuth 1. * @type {string} * @memberof OAuthSourceRequest */ requestTokenUrl?: string | null; /** * URL the user is redirect to to conest the flow. * @type {string} * @memberof OAuthSourceRequest */ authorizationUrl?: string | null; /** * URL used by authentik to retrieve tokens. * @type {string} * @memberof OAuthSourceRequest */ accessTokenUrl?: string | null; /** * URL used by authentik to get user information. * @type {string} * @memberof OAuthSourceRequest */ profileUrl?: string | null; /** * * @type {string} * @memberof OAuthSourceRequest */ consumerKey: string; /** * * @type {string} * @memberof OAuthSourceRequest */ consumerSecret: string; /** * * @type {string} * @memberof OAuthSourceRequest */ additionalScopes?: string; /** * * @type {string} * @memberof OAuthSourceRequest */ oidcWellKnownUrl?: string; /** * * @type {string} * @memberof OAuthSourceRequest */ oidcJwksUrl?: string; /** * * @type {{ [key: string]: any; }} * @memberof OAuthSourceRequest */ oidcJwks?: { [key: string]: any; }; /** * How to perform authentication during an authorization_code token request flow * @type {AuthorizationCodeAuthMethodEnum} * @memberof OAuthSourceRequest */ authorizationCodeAuthMethod?: AuthorizationCodeAuthMethodEnum; } /** * Check if a given object implements the OAuthSourceRequest interface. */ export function instanceOfOAuthSourceRequest(value: object): value is OAuthSourceRequest { if (!('name' in value) || value['name'] === undefined) return false; if (!('slug' in value) || value['slug'] === undefined) return false; if (!('providerType' in value) || value['providerType'] === undefined) return false; if (!('consumerKey' in value) || value['consumerKey'] === undefined) return false; if (!('consumerSecret' in value) || value['consumerSecret'] === undefined) return false; return true; } export function OAuthSourceRequestFromJSON(json: any): OAuthSourceRequest { return OAuthSourceRequestFromJSONTyped(json, false); } export function OAuthSourceRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): OAuthSourceRequest { 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'], 'groupMatchingMode': json['group_matching_mode'] == null ? undefined : GroupMatchingModeEnumFromJSON(json['group_matching_mode']), 'providerType': ProviderTypeEnumFromJSON(json['provider_type']), 'requestTokenUrl': json['request_token_url'] == null ? undefined : json['request_token_url'], 'authorizationUrl': json['authorization_url'] == null ? undefined : json['authorization_url'], 'accessTokenUrl': json['access_token_url'] == null ? undefined : json['access_token_url'], 'profileUrl': json['profile_url'] == null ? undefined : json['profile_url'], 'consumerKey': json['consumer_key'], 'consumerSecret': json['consumer_secret'], 'additionalScopes': json['additional_scopes'] == null ? undefined : json['additional_scopes'], 'oidcWellKnownUrl': json['oidc_well_known_url'] == null ? undefined : json['oidc_well_known_url'], 'oidcJwksUrl': json['oidc_jwks_url'] == null ? undefined : json['oidc_jwks_url'], 'oidcJwks': json['oidc_jwks'] == null ? undefined : json['oidc_jwks'], 'authorizationCodeAuthMethod': json['authorization_code_auth_method'] == null ? undefined : AuthorizationCodeAuthMethodEnumFromJSON(json['authorization_code_auth_method']), }; } export function OAuthSourceRequestToJSON(json: any): OAuthSourceRequest { return OAuthSourceRequestToJSONTyped(json, false); } export function OAuthSourceRequestToJSONTyped(value?: OAuthSourceRequest | 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'], 'group_matching_mode': GroupMatchingModeEnumToJSON(value['groupMatchingMode']), 'provider_type': ProviderTypeEnumToJSON(value['providerType']), 'request_token_url': value['requestTokenUrl'], 'authorization_url': value['authorizationUrl'], 'access_token_url': value['accessTokenUrl'], 'profile_url': value['profileUrl'], 'consumer_key': value['consumerKey'], 'consumer_secret': value['consumerSecret'], 'additional_scopes': value['additionalScopes'], 'oidc_well_known_url': value['oidcWellKnownUrl'], 'oidc_jwks_url': value['oidcJwksUrl'], 'oidc_jwks': value['oidcJwks'], 'authorization_code_auth_method': AuthorizationCodeAuthMethodEnumToJSON(value['authorizationCodeAuthMethod']), }; }