/* 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.
 */

/**
 * Get versions
 * @export
 * @interface SystemInfoRuntime
 */
export interface SystemInfoRuntime {
    /**
     *
     * @type {string}
     * @memberof SystemInfoRuntime
     */
    pythonVersion: string;
    /**
     *
     * @type {string}
     * @memberof SystemInfoRuntime
     */
    environment: string;
    /**
     *
     * @type {string}
     * @memberof SystemInfoRuntime
     */
    architecture: string;
    /**
     *
     * @type {string}
     * @memberof SystemInfoRuntime
     */
    platform: string;
    /**
     *
     * @type {string}
     * @memberof SystemInfoRuntime
     */
    uname: string;
    /**
     *
     * @type {string}
     * @memberof SystemInfoRuntime
     */
    opensslVersion: string;
    /**
     *
     * @type {boolean}
     * @memberof SystemInfoRuntime
     */
    opensslFipsEnabled: boolean | null;
    /**
     *
     * @type {string}
     * @memberof SystemInfoRuntime
     */
    authentikVersion: string;
}

/**
 * Check if a given object implements the SystemInfoRuntime interface.
 */
export function instanceOfSystemInfoRuntime(value: object): value is SystemInfoRuntime {
    if (!("pythonVersion" in value) || value["pythonVersion"] === undefined) return false;
    if (!("environment" in value) || value["environment"] === undefined) return false;
    if (!("architecture" in value) || value["architecture"] === undefined) return false;
    if (!("platform" in value) || value["platform"] === undefined) return false;
    if (!("uname" in value) || value["uname"] === undefined) return false;
    if (!("opensslVersion" in value) || value["opensslVersion"] === undefined) return false;
    if (!("opensslFipsEnabled" in value) || value["opensslFipsEnabled"] === undefined) return false;
    if (!("authentikVersion" in value) || value["authentikVersion"] === undefined) return false;
    return true;
}

export function SystemInfoRuntimeFromJSON(json: any): SystemInfoRuntime {
    return SystemInfoRuntimeFromJSONTyped(json, false);
}

export function SystemInfoRuntimeFromJSONTyped(
    json: any,
    ignoreDiscriminator: boolean,
): SystemInfoRuntime {
    if (json == null) {
        return json;
    }
    return {
        pythonVersion: json["python_version"],
        environment: json["environment"],
        architecture: json["architecture"],
        platform: json["platform"],
        uname: json["uname"],
        opensslVersion: json["openssl_version"],
        opensslFipsEnabled: json["openssl_fips_enabled"],
        authentikVersion: json["authentik_version"],
    };
}

export function SystemInfoRuntimeToJSON(json: any): SystemInfoRuntime {
    return SystemInfoRuntimeToJSONTyped(json, false);
}

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

    return {
        python_version: value["pythonVersion"],
        environment: value["environment"],
        architecture: value["architecture"],
        platform: value["platform"],
        uname: value["uname"],
        openssl_version: value["opensslVersion"],
        openssl_fips_enabled: value["opensslFipsEnabled"],
        authentik_version: value["authentikVersion"],
    };
}
