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

/**
 * Outpost health status
 * @export
 * @interface OutpostHealth
 */
export interface OutpostHealth {
    /**
     *
     * @type {string}
     * @memberof OutpostHealth
     */
    readonly uid: string;
    /**
     *
     * @type {Date}
     * @memberof OutpostHealth
     */
    readonly lastSeen: Date;
    /**
     *
     * @type {string}
     * @memberof OutpostHealth
     */
    readonly version: string;
    /**
     *
     * @type {string}
     * @memberof OutpostHealth
     */
    readonly golangVersion: string;
    /**
     *
     * @type {boolean}
     * @memberof OutpostHealth
     */
    readonly opensslEnabled: boolean;
    /**
     *
     * @type {string}
     * @memberof OutpostHealth
     */
    readonly opensslVersion: string;
    /**
     * Get FIPS enabled
     * @type {boolean}
     * @memberof OutpostHealth
     */
    readonly fipsEnabled: boolean | null;
    /**
     *
     * @type {string}
     * @memberof OutpostHealth
     */
    readonly versionShould: string;
    /**
     *
     * @type {boolean}
     * @memberof OutpostHealth
     */
    readonly versionOutdated: boolean;
    /**
     *
     * @type {string}
     * @memberof OutpostHealth
     */
    readonly buildHash: string;
    /**
     *
     * @type {string}
     * @memberof OutpostHealth
     */
    readonly buildHashShould: string;
    /**
     *
     * @type {string}
     * @memberof OutpostHealth
     */
    readonly hostname: string;
}

/**
 * Check if a given object implements the OutpostHealth interface.
 */
export function instanceOfOutpostHealth(value: object): value is OutpostHealth {
    if (!("uid" in value) || value["uid"] === undefined) return false;
    if (!("lastSeen" in value) || value["lastSeen"] === undefined) return false;
    if (!("version" in value) || value["version"] === undefined) return false;
    if (!("golangVersion" in value) || value["golangVersion"] === undefined) return false;
    if (!("opensslEnabled" in value) || value["opensslEnabled"] === undefined) return false;
    if (!("opensslVersion" in value) || value["opensslVersion"] === undefined) return false;
    if (!("fipsEnabled" in value) || value["fipsEnabled"] === undefined) return false;
    if (!("versionShould" in value) || value["versionShould"] === undefined) return false;
    if (!("versionOutdated" in value) || value["versionOutdated"] === undefined) return false;
    if (!("buildHash" in value) || value["buildHash"] === undefined) return false;
    if (!("buildHashShould" in value) || value["buildHashShould"] === undefined) return false;
    if (!("hostname" in value) || value["hostname"] === undefined) return false;
    return true;
}

export function OutpostHealthFromJSON(json: any): OutpostHealth {
    return OutpostHealthFromJSONTyped(json, false);
}

export function OutpostHealthFromJSONTyped(json: any, ignoreDiscriminator: boolean): OutpostHealth {
    if (json == null) {
        return json;
    }
    return {
        uid: json["uid"],
        lastSeen: new Date(json["last_seen"]),
        version: json["version"],
        golangVersion: json["golang_version"],
        opensslEnabled: json["openssl_enabled"],
        opensslVersion: json["openssl_version"],
        fipsEnabled: json["fips_enabled"],
        versionShould: json["version_should"],
        versionOutdated: json["version_outdated"],
        buildHash: json["build_hash"],
        buildHashShould: json["build_hash_should"],
        hostname: json["hostname"],
    };
}

export function OutpostHealthToJSON(json: any): OutpostHealth {
    return OutpostHealthToJSONTyped(json, false);
}

export function OutpostHealthToJSONTyped(
    value?: Omit<
        OutpostHealth,
        | "uid"
        | "last_seen"
        | "version"
        | "golang_version"
        | "openssl_enabled"
        | "openssl_version"
        | "fips_enabled"
        | "version_should"
        | "version_outdated"
        | "build_hash"
        | "build_hash_should"
        | "hostname"
    > | null,
    ignoreDiscriminator: boolean = false,
): any {
    if (value == null) {
        return value;
    }

    return {};
}
