/**
 * Generated by orval v7.3.0 🍺
 * Do not edit manually.
 * OCDP Backend API
 * OCDP (Open Cloud Development Platform) Backend API

RESTful API for managing Kubernetes clusters, OCI registries, and Helm deployments.
 * OpenAPI spec version: 1.0
 */
export type GetRegistriesRegistryIdRepositoriesRepositoryNameArtifactsReferenceValuesSchemaPathParameters = {
 registryId: string,
    repositoryName: string,
    reference: string,
 }
export type GetRegistriesRegistryIdRepositoriesRepositoryNameArtifactsReferencePathParameters = {
 registryId: string,
    repositoryName: string,
    reference: string,
 }
export type GetRegistriesRegistryIdRepositoriesRepositoryNameArtifactsParams = {
/**
 * 过滤 Artifact 类型 (all, chart, image, other)
 */
media_type?: string;
};

export type GetRegistriesRegistryIdRepositoriesRepositoryNameArtifactsPathParameters = {
 registryId: string,
    repositoryName: string,
 }
export type GetRegistriesRegistryIdRepositoriesPathParameters = {
 registryId: string,
 }
export type GetRegistriesRegistryIdHealthPathParameters = {
 registryId: string,
 }
export type PutRegistriesRegistryIdPathParameters = {
 registryId: string,
 }
export type GetRegistriesRegistryIdPathParameters = {
 registryId: string,
 }
export type DeleteRegistriesRegistryIdPathParameters = {
 registryId: string,
 }
export type GetMonitoringClustersClusterIdNodesPathParameters = {
 clusterId: string,
 }
export type GetMonitoringClustersClusterIdPathParameters = {
 clusterId: string,
 }
export type GetClustersClusterIdInstancesInstanceIdEntriesPathParameters = {
 clusterId: string,
    instanceId: string,
 }
export type PutClustersClusterIdInstancesInstanceIdPathParameters = {
 clusterId: string,
    instanceId: string,
 }
export type GetClustersClusterIdInstancesInstanceIdPathParameters = {
 clusterId: string,
    instanceId: string,
 }
export type DeleteClustersClusterIdInstancesInstanceIdPathParameters = {
 clusterId: string,
    instanceId: string,
 }
export type PostClustersClusterIdInstancesPathParameters = {
 clusterId: string,
 }
export type GetClustersClusterIdInstancesPathParameters = {
 clusterId: string,
 }
export type GetClustersClusterIdHealthPathParameters = {
 clusterId: string,
 }
export type PutClustersClusterIdPathParameters = {
 clusterId: string,
 }
export type GetClustersClusterIdPathParameters = {
 clusterId: string,
 }
export type DeleteClustersClusterIdPathParameters = {
 clusterId: string,
 }
export interface GithubComOcdpClusterServiceInternalAdapterInputHttpDtoValuesSchemaResponse {
  schema?: string;
}

export interface GithubComOcdpClusterServiceInternalAdapterInputHttpDtoUserResponse {
  createdAt?: string;
  email?: string;
  id?: string;
  updatedAt?: string;
  username?: string;
}

export interface GithubComOcdpClusterServiceInternalAdapterInputHttpDtoUpdateRegistryRequest {
  description?: string;
  insecure?: boolean;
  name?: string;
  password?: string;
  url?: string;
  username?: string;
}

export type GithubComOcdpClusterServiceInternalAdapterInputHttpDtoUpdateInstanceRequestValues = { [key: string]: unknown };

export interface GithubComOcdpClusterServiceInternalAdapterInputHttpDtoUpdateInstanceRequest {
  description?: string;
  values?: GithubComOcdpClusterServiceInternalAdapterInputHttpDtoUpdateInstanceRequestValues;
  valuesYaml?: string;
  version?: string;
}

export interface GithubComOcdpClusterServiceInternalAdapterInputHttpDtoUpdateClusterRequest {
  /** Base64 CA data (also accepts legacy field "ca_data") */
  caData?: string;
  /** Base64 client certificate (also accepts legacy field "cert_data") */
  certData?: string;
  description?: string;
  host?: string;
  /** Base64 client key (also accepts legacy field "key_data") */
  keyData?: string;
  name?: string;
  token?: string;
}

export interface GithubComOcdpClusterServiceInternalAdapterInputHttpDtoTagResponse {
  mediaType?: string;
  /** Repository name */
  repositoryName?: string;
  /** Artifact size (bytes) */
  size?: number;
  /** Tag name (e.g. "1.0.0", "latest") */
  tag?: string;
  /** Artifact type: chart, image, other */
  type?: string;
}

export interface GithubComOcdpClusterServiceInternalAdapterInputHttpDtoRepositoryListResponse {
  /** Whether _catalog API is supported */
  catalogSupported?: boolean;
  /** User-friendly message */
  message?: string;
  registryId?: string;
  registryUrl?: string;
  repositories?: string[];
  /** Data source: "catalog" | "preconfigured" | "unavailable" */
  source?: string;
  total?: number;
}

export interface GithubComOcdpClusterServiceInternalAdapterInputHttpDtoRegistryResponse {
  createdAt?: string;
  description?: string;
  /** 是否已设置密码 */
  hasPassword?: boolean;
  id?: string;
  insecure?: boolean;
  name?: string;
  /** 脱敏显示（••••••••） */
  password?: string;
  updatedAt?: string;
  url?: string;
  /** 明文返回用户名（不敏感） */
  username?: string;
}

export interface GithubComOcdpClusterServiceInternalAdapterInputHttpDtoRegistryHealthResponse {
  healthy?: boolean;
  message?: string;
}

export interface GithubComOcdpClusterServiceInternalAdapterInputHttpDtoRegisterRequest {
  /** @minLength 6 */
  password: string;
  username: string;
}

export interface GithubComOcdpClusterServiceInternalAdapterInputHttpDtoRefreshTokenRequest {
  refreshToken: string;
}

export interface GithubComOcdpClusterServiceInternalAdapterInputHttpDtoNodeMetricsResponse {
  age?: string;
  containerRuntime?: string;
  cpuAllocatable?: string;
  cpuCapacity?: string;
  cpuPercent?: number;
  cpuUsage?: string;
  gpuCapacity?: number;
  gpuPercent?: number;
  gpuType?: string;
  gpuUsage?: number;
  kernelVersion?: string;
  kubeletVersion?: string;
  memoryAllocatable?: string;
  memoryCapacity?: string;
  memoryPercent?: number;
  memoryUsage?: string;
  nodeName?: string;
  osImage?: string;
  podCount?: number;
  role?: string;
  status?: string;
}

export interface GithubComOcdpClusterServiceInternalAdapterInputHttpDtoMonitoringSummaryResponse {
  errorClusters?: number;
  healthyClusters?: number;
  lastUpdate?: string;
  totalClusters?: number;
  totalNodes?: number;
  totalPods?: number;
  warningClusters?: number;
}

export interface GithubComOcdpClusterServiceInternalAdapterInputHttpDtoLoginRequest {
  password: string;
  username: string;
}

export type GithubComOcdpClusterServiceInternalAdapterInputHttpDtoInstanceResponseValues = { [key: string]: unknown };

/**
 * 实例当前状态
 */
export type GithubComOcdpClusterServiceInternalAdapterInputHttpDtoInstanceResponseStatus = typeof GithubComOcdpClusterServiceInternalAdapterInputHttpDtoInstanceResponseStatus[keyof typeof GithubComOcdpClusterServiceInternalAdapterInputHttpDtoInstanceResponseStatus];


// eslint-disable-next-line @typescript-eslint/no-redeclare
export const GithubComOcdpClusterServiceInternalAdapterInputHttpDtoInstanceResponseStatus = {
  deployed: 'deployed',
  uninstalled: 'uninstalled',
  superseded: 'superseded',
  failed: 'failed',
  'pending-install': 'pending-install',
  'pending-upgrade': 'pending-upgrade',
  'pending-rollback': 'pending-rollback',
  'pending-delete': 'pending-delete',
  unknown: 'unknown',
} as const;

/**
 * 最后一次操作类型
 */
export type GithubComOcdpClusterServiceInternalAdapterInputHttpDtoInstanceResponseLastOperation = typeof GithubComOcdpClusterServiceInternalAdapterInputHttpDtoInstanceResponseLastOperation[keyof typeof GithubComOcdpClusterServiceInternalAdapterInputHttpDtoInstanceResponseLastOperation];


// eslint-disable-next-line @typescript-eslint/no-redeclare
export const GithubComOcdpClusterServiceInternalAdapterInputHttpDtoInstanceResponseLastOperation = {
  '': '',
  install: 'install',
  upgrade: 'upgrade',
  rollback: 'rollback',
  delete: 'delete',
  sync: 'sync',
} as const;

export interface GithubComOcdpClusterServiceInternalAdapterInputHttpDtoInstanceResponse {
  chart?: string;
  clusterId?: string;
  createdAt?: string;
  description?: string;
  id?: string;
  /** 最近一次错误信息 */
  lastError?: string;
  /** 最后一次操作类型 */
  lastOperation?: GithubComOcdpClusterServiceInternalAdapterInputHttpDtoInstanceResponseLastOperation;
  name?: string;
  namespace?: string;
  registryId?: string;
  replicas?: number;
  repository?: string;
  revision?: number;
  /** 实例当前状态 */
  status?: GithubComOcdpClusterServiceInternalAdapterInputHttpDtoInstanceResponseStatus;
  /** 状态说明 */
  statusReason?: string;
  updatedAt?: string;
  values?: GithubComOcdpClusterServiceInternalAdapterInputHttpDtoInstanceResponseValues;
  version?: string;
}

export interface GithubComOcdpClusterServiceInternalAdapterInputHttpDtoInstanceListResponse {
  instances?: GithubComOcdpClusterServiceInternalAdapterInputHttpDtoInstanceResponse[];
  total?: number;
}

export interface GithubComOcdpClusterServiceInternalAdapterInputHttpDtoInstanceEntryTLSResponse {
  hosts?: string[];
  secretName?: string;
}

export interface GithubComOcdpClusterServiceInternalAdapterInputHttpDtoInstanceEntryPortResponse {
  name?: string;
  nodePort?: number;
  port?: number;
  protocol?: string;
  targetPort?: string;
}

export interface GithubComOcdpClusterServiceInternalAdapterInputHttpDtoInstanceEntryResponse {
  clusterIP?: string;
  externalIPs?: string[];
  hosts?: GithubComOcdpClusterServiceInternalAdapterInputHttpDtoInstanceEntryHostResponse[];
  kind?: string;
  loadBalancerIngress?: string[];
  name?: string;
  namespace?: string;
  ports?: GithubComOcdpClusterServiceInternalAdapterInputHttpDtoInstanceEntryPortResponse[];
  tls?: GithubComOcdpClusterServiceInternalAdapterInputHttpDtoInstanceEntryTLSResponse[];
  type?: string;
}

export interface GithubComOcdpClusterServiceInternalAdapterInputHttpDtoInstanceEntryPathResponse {
  path?: string;
  serviceName?: string;
  servicePort?: string;
}

export interface GithubComOcdpClusterServiceInternalAdapterInputHttpDtoInstanceEntryHostResponse {
  host?: string;
  paths?: GithubComOcdpClusterServiceInternalAdapterInputHttpDtoInstanceEntryPathResponse[];
}

export interface GithubComOcdpClusterServiceInternalAdapterInputHttpDtoErrorResponse {
  code?: number;
  error?: string;
  message?: string;
}

export interface GithubComOcdpClusterServiceInternalAdapterInputHttpDtoCreateRegistryRequest {
  description?: string;
  insecure?: boolean;
  name: string;
  password?: string;
  url: string;
  username?: string;
}

export type GithubComOcdpClusterServiceInternalAdapterInputHttpDtoCreateInstanceRequestValues = { [key: string]: unknown };

export interface GithubComOcdpClusterServiceInternalAdapterInputHttpDtoCreateInstanceRequest {
  description?: string;
  name: string;
  namespace: string;
  /** Registry identifier (also accepts legacy field "registry_id") */
  registryId: string;
  repository: string;
  tag: string;
  values?: GithubComOcdpClusterServiceInternalAdapterInputHttpDtoCreateInstanceRequestValues;
  valuesYaml?: string;
}

export interface GithubComOcdpClusterServiceInternalAdapterInputHttpDtoCreateClusterRequest {
  /** Base64 CA data (also accepts legacy field "ca_data") */
  caData?: string;
  /** Base64 client certificate (also accepts legacy field "cert_data") */
  certData?: string;
  description?: string;
  host: string;
  /** Base64 client key (also accepts legacy field "key_data") */
  keyData?: string;
  name: string;
  token?: string;
}

export interface GithubComOcdpClusterServiceInternalAdapterInputHttpDtoClusterResponse {
  /** 脱敏数据（仅用于前端显示，实际值为掩码） */
  caData?: string;
  /** 脱敏显示（••••••••） */
  certData?: string;
  createdAt?: string;
  description?: string;
  /** 认证配置状态（不返回实际证书数据，仅返回是否已配置） */
  hasCaData?: boolean;
  hasCertData?: boolean;
  hasKeyData?: boolean;
  hasToken?: boolean;
  host?: string;
  id?: string;
  /** 脱敏显示（••••••••） */
  keyData?: string;
  name?: string;
  /** 脱敏显示（••••••••） */
  token?: string;
  updatedAt?: string;
}

export interface GithubComOcdpClusterServiceInternalAdapterInputHttpDtoClusterMetricsResponse {
  clusterId?: string;
  clusterName?: string;
  cpuUsage?: number;
  gpuUsage?: number;
  lastCheck?: string;
  maxNodeCpu?: string;
  maxNodeCpuUsage?: number;
  maxNodeGpu?: number;
  maxNodeGpuUsage?: number;
  maxNodeMemory?: string;
  maxNodeMemUsage?: number;
  memoryUsage?: number;
  nodeCount?: number;
  nodes?: GithubComOcdpClusterServiceInternalAdapterInputHttpDtoNodeMetricsResponse[];
  podCount?: number;
  status?: string;
  totalCpu?: string;
  totalGpu?: number;
  totalMemory?: string;
  uptime?: string;
  usedCpu?: string;
  usedGpu?: number;
  usedMemory?: string;
}

export interface GithubComOcdpClusterServiceInternalAdapterInputHttpDtoClusterHealthResponse {
  healthy?: boolean;
  message?: string;
  version?: string;
}

export interface GithubComOcdpClusterServiceInternalAdapterInputHttpDtoAuthResponse {
  accessToken?: string;
  refreshToken?: string;
  userId?: string;
  username?: string;
}

export interface GithubComOcdpClusterServiceInternalAdapterInputHttpDtoArtifactResponse {
  createdAt?: string;
  digest?: string;
  repositoryName?: string;
  size?: number;
  tag?: string;
  /** chart | image | other */
  type?: string;
}

