/* tslint:disable */
/* eslint-disable */
/**
 * AssistedInstall
 * Assisted installation
 *
 * The version of the OpenAPI document: 1.0.0
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */

// May contain unused imports in some cases
// @ts-ignore
import { HostProgressInfo } from './host-progress-info';
// May contain unused imports in some cases
// @ts-ignore
import { HostRole } from './host-role';
// May contain unused imports in some cases
// @ts-ignore
import { HostStage } from './host-stage';
// May contain unused imports in some cases
// @ts-ignore
import { LogsState } from './logs-state';

/**
 *
 * @export
 * @interface Host
 */
export interface Host {
  /**
   * Self link.
   * @type {string}
   * @memberof Host
   */
  href: string;
  /**
   * Unique identifier of the object.
   * @type {string}
   * @memberof Host
   */
  id: string;
  /**
   * Indicates the type of this object. Will be \'Host\' if this is a complete object or \'HostLink\' if it is just a link, or \'AddToExistingClusterHost\' for host being added to existing OCP cluster, or
   * @type {string}
   * @memberof Host
   */
  kind: HostKindEnum;
  /**
   *
   * @type {string}
   * @memberof Host
   */
  status: HostStatusEnum;
  /**
   *
   * @type {string}
   * @memberof Host
   */
  status_info: string;
  /**
   * Contains a serialized api_vip_connectivity_response
   * @type {string}
   * @memberof Host
   */
  api_vip_connectivity?: string;
  /**
   *
   * @type {boolean}
   * @memberof Host
   */
  bootstrap?: boolean;
  /**
   * The last time the host\'s agent communicated with the service.
   * @type {string}
   * @memberof Host
   */
  checked_in_at?: string;
  /**
   * The cluster that this host is associated with.
   * @type {string}
   * @memberof Host
   */
  cluster_id?: string | null;
  /**
   *
   * @type {string}
   * @memberof Host
   */
  connectivity?: string;
  /**
   *
   * @type {string}
   * @memberof Host
   */
  created_at?: string;
  /**
   * swagger:ignore
   * @type {object}
   * @memberof Host
   */
  deleted_at?: object;
  /**
   *
   * @type {string}
   * @memberof Host
   */
  discovery_agent_version?: string;
  /**
   * Additional information about disks, formatted as JSON.
   * @type {string}
   * @memberof Host
   */
  disks_info?: string;
  /**
   * A comma-separated list of disks that will be formatted once installation begins, unless otherwise set to be skipped by skip_formatting_disks. This means that this list also includes disks that appear in skip_formatting_disks. This property is managed by the service and cannot be modified by the user.
   * @type {string}
   * @memberof Host
   */
  disks_to_be_formatted?: string;
  /**
   * The domain name resolution result.
   * @type {string}
   * @memberof Host
   */
  domain_name_resolutions?: string;
  /**
   *
   * @type {string}
   * @memberof Host
   */
  free_addresses?: string;
  /**
   * Json formatted string containing the user overrides for the host\'s pointer ignition
   * @type {string}
   * @memberof Host
   */
  ignition_config_overrides?: string;
  /**
   * True if the token to fetch the ignition from ignition_endpoint_url is set.
   * @type {boolean}
   * @memberof Host
   */
  ignition_endpoint_token_set?: boolean;
  /**
   * Array of image statuses.
   * @type {string}
   * @memberof Host
   */
  images_status?: string;
  /**
   * The infra-env that this host is associated with.
   * @type {string}
   * @memberof Host
   */
  infra_env_id?: string;
  /**
   * Contains the inventory disk id to install on.
   * @type {string}
   * @memberof Host
   */
  installation_disk_id?: string;
  /**
   * Contains the inventory disk path, This field is replaced by installation_disk_id field and used for backward compatability with the old UI.
   * @type {string}
   * @memberof Host
   */
  installation_disk_path?: string;
  /**
   *
   * @type {string}
   * @memberof Host
   */
  installer_args?: string;
  /**
   * Installer version.
   * @type {string}
   * @memberof Host
   */
  installer_version?: string;
  /**
   *
   * @type {string}
   * @memberof Host
   */
  inventory?: string;
  /**
   *
   * @type {string}
   * @memberof Host
   */
  logs_collected_at?: string;
  /**
   *
   * @type {LogsState}
   * @memberof Host
   */
  logs_info?: LogsState;
  /**
   *
   * @type {string}
   * @memberof Host
   */
  logs_started_at?: string;
  /**
   *
   * @type {string}
   * @memberof Host
   */
  machine_config_pool_name?: string;
  /**
   *
   * @type {string}
   * @memberof Host
   */
  media_status?: HostMediaStatusEnum;
  /**
   * Json containing node\'s labels.
   * @type {string}
   * @memberof Host
   */
  node_labels?: string;
  /**
   * The configured NTP sources on the host.
   * @type {string}
   * @memberof Host
   */
  ntp_sources?: string;
  /**
   *
   * @type {HostProgressInfo}
   * @memberof Host
   */
  progress?: HostProgressInfo;
  /**
   *
   * @type {Array<HostStage>}
   * @memberof Host
   */
  progress_stages?: Array<HostStage> | null;
  /**
   * The last time the host\'s agent tried to register in the service.
   * @type {string}
   * @memberof Host
   */
  registered_at?: string;
  /**
   *
   * @type {string}
   * @memberof Host
   */
  requested_hostname?: string;
  /**
   *
   * @type {HostRole}
   * @memberof Host
   */
  role?: HostRole;
  /**
   * A comma-seperated list of host disks that the service will avoid formatting.
   * @type {string}
   * @memberof Host
   */
  skip_formatting_disks?: string;
  /**
   * Time at which the current progress stage started.
   * @type {string}
   * @memberof Host
   */
  stage_started_at?: string;
  /**
   * Time at which the current progress stage was last updated.
   * @type {string}
   * @memberof Host
   */
  stage_updated_at?: string;
  /**
   * The last time that the host status was updated.
   * @type {string}
   * @memberof Host
   */
  status_updated_at?: string;
  /**
   *
   * @type {HostRole}
   * @memberof Host
   */
  suggested_role?: HostRole;
  /**
   *
   * @type {string}
   * @memberof Host
   */
  tang_connectivity?: string;
  /**
   * The time on the host as seconds since the Unix epoch.
   * @type {number}
   * @memberof Host
   */
  timestamp?: number;
  /**
   *
   * @type {string}
   * @memberof Host
   */
  updated_at?: string;
  /**
   *
   * @type {string}
   * @memberof Host
   */
  user_name?: string;
  /**
   * JSON-formatted string containing the validation results for each validation id grouped by category (network, hardware, etc.)
   * @type {string}
   * @memberof Host
   */
  validations_info?: string;
}

/**
 * @export
 * @enum {string}
 */
export enum HostKindEnum {
  Host = 'Host',
  AddToExistingClusterHost = 'AddToExistingClusterHost',
}
/**
 * @export
 * @enum {string}
 */
export enum HostStatusEnum {
  Discovering = 'discovering',
  Known = 'known',
  Disconnected = 'disconnected',
  Insufficient = 'insufficient',
  Disabled = 'disabled',
  PreparingForInstallation = 'preparing-for-installation',
  PreparingFailed = 'preparing-failed',
  PreparingSuccessful = 'preparing-successful',
  PendingForInput = 'pending-for-input',
  Installing = 'installing',
  InstallingInProgress = 'installing-in-progress',
  InstallingPendingUserAction = 'installing-pending-user-action',
  ResettingPendingUserAction = 'resetting-pending-user-action',
  Installed = 'installed',
  Error = 'error',
  Resetting = 'resetting',
  AddedToExistingCluster = 'added-to-existing-cluster',
  Cancelled = 'cancelled',
  Binding = 'binding',
  Unbinding = 'unbinding',
  UnbindingPendingUserAction = 'unbinding-pending-user-action',
  KnownUnbound = 'known-unbound',
  DisconnectedUnbound = 'disconnected-unbound',
  InsufficientUnbound = 'insufficient-unbound',
  DisabledUnbound = 'disabled-unbound',
  DiscoveringUnbound = 'discovering-unbound',
  Reclaiming = 'reclaiming',
  ReclaimingRebooting = 'reclaiming-rebooting',
}
/**
 * @export
 * @enum {string}
 */
export enum HostMediaStatusEnum {
  Connected = 'connected',
  Disconnected = 'disconnected',
}
