/* tslint:disable */
/* eslint-disable */
/**
 * AutoGlue API
 * API for managing K3s clusters across cloud providers
 *
 * The version of the OpenAPI document: dev
 *
 *
 * 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 { DtoSshResponse } from "./DtoSshResponse";
import {
  instanceOfDtoSshResponse,
  DtoSshResponseFromJSON,
  DtoSshResponseFromJSONTyped,
  DtoSshResponseToJSON,
} from "./DtoSshResponse";
import type { DtoSshRevealResponse } from "./DtoSshRevealResponse";
import {
  instanceOfDtoSshRevealResponse,
  DtoSshRevealResponseFromJSON,
  DtoSshRevealResponseFromJSONTyped,
  DtoSshRevealResponseToJSON,
} from "./DtoSshRevealResponse";

/**
 * @type GetSSHKey200Response
 *
 * @export
 */
export type GetSSHKey200Response = DtoSshResponse | DtoSshRevealResponse;

export function GetSSHKey200ResponseFromJSON(json: any): GetSSHKey200Response {
  return GetSSHKey200ResponseFromJSONTyped(json, false);
}

export function GetSSHKey200ResponseFromJSONTyped(
  json: any,
  ignoreDiscriminator: boolean,
): GetSSHKey200Response {
  if (json == null) {
    return json;
  }
  if (typeof json !== "object") {
    return json;
  }
  if (instanceOfDtoSshResponse(json)) {
    return DtoSshResponseFromJSONTyped(json, true);
  }
  if (instanceOfDtoSshRevealResponse(json)) {
    return DtoSshRevealResponseFromJSONTyped(json, true);
  }
  return {} as any;
}

export function GetSSHKey200ResponseToJSON(json: any): any {
  return GetSSHKey200ResponseToJSONTyped(json, false);
}

export function GetSSHKey200ResponseToJSONTyped(
  value?: GetSSHKey200Response | null,
  ignoreDiscriminator: boolean = false,
): any {
  if (value == null) {
    return value;
  }
  if (typeof value !== "object") {
    return value;
  }
  if (instanceOfDtoSshResponse(value)) {
    return DtoSshResponseToJSON(value as DtoSshResponse);
  }
  if (instanceOfDtoSshRevealResponse(value)) {
    return DtoSshRevealResponseToJSON(value as DtoSshRevealResponse);
  }
  return {};
}
