/**
 * authentik
 * Making authentication simple.
 *
 * The version of the OpenAPI document: 2026.2.0-rc5
 * 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 type { PolicyEngineMode } from './PolicyEngineMode';
import type { BindingTypeEnum } from './BindingTypeEnum';
import type { DigestAlgorithmEnum } from './DigestAlgorithmEnum';
import type { UserMatchingModeEnum } from './UserMatchingModeEnum';
import type { SignatureAlgorithmEnum } from './SignatureAlgorithmEnum';
import type { SAMLNameIDPolicyEnum } from './SAMLNameIDPolicyEnum';
import type { GroupMatchingModeEnum } from './GroupMatchingModeEnum';
/**
 * SAMLSource Serializer
 * @export
 * @interface SAMLSourceRequest
 */
export interface SAMLSourceRequest {
    /**
     * Source's display Name.
     * @type {string}
     * @memberof SAMLSourceRequest
     */
    name: string;
    /**
     * Internal source name, used in URLs.
     * @type {string}
     * @memberof SAMLSourceRequest
     */
    slug: string;
    /**
     *
     * @type {boolean}
     * @memberof SAMLSourceRequest
     */
    enabled?: boolean;
    /**
     * When enabled, this source will be displayed as a prominent button on the login page, instead of a small icon.
     * @type {boolean}
     * @memberof SAMLSourceRequest
     */
    promoted?: boolean;
    /**
     * Flow to use when authenticating existing users.
     * @type {string}
     * @memberof SAMLSourceRequest
     */
    authenticationFlow?: string | null;
    /**
     * Flow to use when enrolling new users.
     * @type {string}
     * @memberof SAMLSourceRequest
     */
    enrollmentFlow?: string | null;
    /**
     *
     * @type {Array<string>}
     * @memberof SAMLSourceRequest
     */
    userPropertyMappings?: Array<string>;
    /**
     *
     * @type {Array<string>}
     * @memberof SAMLSourceRequest
     */
    groupPropertyMappings?: Array<string>;
    /**
     *
     * @type {PolicyEngineMode}
     * @memberof SAMLSourceRequest
     */
    policyEngineMode?: PolicyEngineMode;
    /**
     * How the source determines if an existing user should be authenticated or a new user enrolled.
     * @type {UserMatchingModeEnum}
     * @memberof SAMLSourceRequest
     */
    userMatchingMode?: UserMatchingModeEnum;
    /**
     *
     * @type {string}
     * @memberof SAMLSourceRequest
     */
    userPathTemplate?: string;
    /**
     *
     * @type {string}
     * @memberof SAMLSourceRequest
     */
    icon?: string;
    /**
     * How the source determines if an existing group should be used or a new group created.
     * @type {GroupMatchingModeEnum}
     * @memberof SAMLSourceRequest
     */
    groupMatchingMode?: GroupMatchingModeEnum;
    /**
     * Flow used before authentication.
     * @type {string}
     * @memberof SAMLSourceRequest
     */
    preAuthenticationFlow: string;
    /**
     * Also known as Entity ID. Defaults the Metadata URL.
     * @type {string}
     * @memberof SAMLSourceRequest
     */
    issuer?: string;
    /**
     * URL that the initial Login request is sent to.
     * @type {string}
     * @memberof SAMLSourceRequest
     */
    ssoUrl: string;
    /**
     * Optional URL if your IDP supports Single-Logout.
     * @type {string}
     * @memberof SAMLSourceRequest
     */
    sloUrl?: string | null;
    /**
     * Allows authentication flows initiated by the IdP. This can be a security risk, as no validation of the request ID is done.
     * @type {boolean}
     * @memberof SAMLSourceRequest
     */
    allowIdpInitiated?: boolean;
    /**
     * NameID Policy sent to the IdP. Can be unset, in which case no Policy is sent.
     * @type {SAMLNameIDPolicyEnum}
     * @memberof SAMLSourceRequest
     */
    nameIdPolicy?: SAMLNameIDPolicyEnum;
    /**
     *
     * @type {BindingTypeEnum}
     * @memberof SAMLSourceRequest
     */
    bindingType?: BindingTypeEnum;
    /**
     * When selected, incoming assertion's Signatures will be validated against this certificate. To allow unsigned Requests, leave on default.
     * @type {string}
     * @memberof SAMLSourceRequest
     */
    verificationKp?: string | null;
    /**
     * Keypair used to sign outgoing Responses going to the Identity Provider.
     * @type {string}
     * @memberof SAMLSourceRequest
     */
    signingKp?: string | null;
    /**
     *
     * @type {DigestAlgorithmEnum}
     * @memberof SAMLSourceRequest
     */
    digestAlgorithm?: DigestAlgorithmEnum;
    /**
     *
     * @type {SignatureAlgorithmEnum}
     * @memberof SAMLSourceRequest
     */
    signatureAlgorithm?: SignatureAlgorithmEnum;
    /**
     * Time offset when temporary users should be deleted. This only applies if your IDP uses the NameID Format 'transient', and the user doesn't log out manually. (Format: hours=1;minutes=2;seconds=3).
     * @type {string}
     * @memberof SAMLSourceRequest
     */
    temporaryUserDeleteAfter?: string;
    /**
     * When selected, incoming assertions are encrypted by the IdP using the public key of the encryption keypair. The assertion is decrypted by the SP using the the private key.
     * @type {string}
     * @memberof SAMLSourceRequest
     */
    encryptionKp?: string | null;
    /**
     *
     * @type {boolean}
     * @memberof SAMLSourceRequest
     */
    signedAssertion?: boolean;
    /**
     *
     * @type {boolean}
     * @memberof SAMLSourceRequest
     */
    signedResponse?: boolean;
}
/**
 * Check if a given object implements the SAMLSourceRequest interface.
 */
export declare function instanceOfSAMLSourceRequest(value: object): value is SAMLSourceRequest;
export declare function SAMLSourceRequestFromJSON(json: any): SAMLSourceRequest;
export declare function SAMLSourceRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): SAMLSourceRequest;
export declare function SAMLSourceRequestToJSON(json: any): SAMLSourceRequest;
export declare function SAMLSourceRequestToJSONTyped(value?: SAMLSourceRequest | null, ignoreDiscriminator?: boolean): any;
//# sourceMappingURL=SAMLSourceRequest.d.ts.map