/* tslint:disable */
/* eslint-disable */
/**
 * authentik
 * Making authentication simple.
 *
 * The version of the OpenAPI document: 2026.5.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.
 */

/**
 * authentik settings for Platform SSO tokens
 * @export
 * @interface AgentPSSODeviceRegistrationResponse
 */
export interface AgentPSSODeviceRegistrationResponse {
    /**
     *
     * @type {string}
     * @memberof AgentPSSODeviceRegistrationResponse
     */
    clientId: string;
    /**
     *
     * @type {string}
     * @memberof AgentPSSODeviceRegistrationResponse
     */
    issuer: string;
    /**
     *
     * @type {string}
     * @memberof AgentPSSODeviceRegistrationResponse
     */
    tokenEndpoint: string;
    /**
     *
     * @type {string}
     * @memberof AgentPSSODeviceRegistrationResponse
     */
    jwksEndpoint: string;
    /**
     *
     * @type {string}
     * @memberof AgentPSSODeviceRegistrationResponse
     */
    audience: string;
    /**
     *
     * @type {string}
     * @memberof AgentPSSODeviceRegistrationResponse
     */
    nonceEndpoint: string;
}

/**
 * Check if a given object implements the AgentPSSODeviceRegistrationResponse interface.
 */
export function instanceOfAgentPSSODeviceRegistrationResponse(
    value: object,
): value is AgentPSSODeviceRegistrationResponse {
    if (!("clientId" in value) || value["clientId"] === undefined) return false;
    if (!("issuer" in value) || value["issuer"] === undefined) return false;
    if (!("tokenEndpoint" in value) || value["tokenEndpoint"] === undefined) return false;
    if (!("jwksEndpoint" in value) || value["jwksEndpoint"] === undefined) return false;
    if (!("audience" in value) || value["audience"] === undefined) return false;
    if (!("nonceEndpoint" in value) || value["nonceEndpoint"] === undefined) return false;
    return true;
}

export function AgentPSSODeviceRegistrationResponseFromJSON(
    json: any,
): AgentPSSODeviceRegistrationResponse {
    return AgentPSSODeviceRegistrationResponseFromJSONTyped(json, false);
}

export function AgentPSSODeviceRegistrationResponseFromJSONTyped(
    json: any,
    ignoreDiscriminator: boolean,
): AgentPSSODeviceRegistrationResponse {
    if (json == null) {
        return json;
    }
    return {
        clientId: json["client_id"],
        issuer: json["issuer"],
        tokenEndpoint: json["token_endpoint"],
        jwksEndpoint: json["jwks_endpoint"],
        audience: json["audience"],
        nonceEndpoint: json["nonce_endpoint"],
    };
}

export function AgentPSSODeviceRegistrationResponseToJSON(
    json: any,
): AgentPSSODeviceRegistrationResponse {
    return AgentPSSODeviceRegistrationResponseToJSONTyped(json, false);
}

export function AgentPSSODeviceRegistrationResponseToJSONTyped(
    value?: AgentPSSODeviceRegistrationResponse | null,
    ignoreDiscriminator: boolean = false,
): any {
    if (value == null) {
        return value;
    }

    return {
        client_id: value["clientId"],
        issuer: value["issuer"],
        token_endpoint: value["tokenEndpoint"],
        jwks_endpoint: value["jwksEndpoint"],
        audience: value["audience"],
        nonce_endpoint: value["nonceEndpoint"],
    };
}
