/**
 * 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
 */
import type {
  DeleteClustersClusterIdInstancesInstanceIdPathParameters,
  DeleteClustersClusterIdPathParameters,
  DeleteRegistriesRegistryIdPathParameters,
  GetClustersClusterIdHealthPathParameters,
  GetClustersClusterIdInstancesInstanceIdEntriesPathParameters,
  GetClustersClusterIdInstancesInstanceIdPathParameters,
  GetClustersClusterIdInstancesPathParameters,
  GetClustersClusterIdPathParameters,
  GetMonitoringClustersClusterIdNodesPathParameters,
  GetMonitoringClustersClusterIdPathParameters,
  GetRegistriesRegistryIdHealthPathParameters,
  GetRegistriesRegistryIdPathParameters,
  GetRegistriesRegistryIdRepositoriesPathParameters,
  GetRegistriesRegistryIdRepositoriesRepositoryNameArtifactsParams,
  GetRegistriesRegistryIdRepositoriesRepositoryNameArtifactsPathParameters,
  GetRegistriesRegistryIdRepositoriesRepositoryNameArtifactsReferencePathParameters,
  GetRegistriesRegistryIdRepositoriesRepositoryNameArtifactsReferenceValuesSchemaPathParameters,
  GithubComOcdpClusterServiceInternalAdapterInputHttpDtoArtifactResponse,
  GithubComOcdpClusterServiceInternalAdapterInputHttpDtoAuthResponse,
  GithubComOcdpClusterServiceInternalAdapterInputHttpDtoClusterHealthResponse,
  GithubComOcdpClusterServiceInternalAdapterInputHttpDtoClusterMetricsResponse,
  GithubComOcdpClusterServiceInternalAdapterInputHttpDtoClusterResponse,
  GithubComOcdpClusterServiceInternalAdapterInputHttpDtoCreateClusterRequest,
  GithubComOcdpClusterServiceInternalAdapterInputHttpDtoCreateInstanceRequest,
  GithubComOcdpClusterServiceInternalAdapterInputHttpDtoCreateRegistryRequest,
  GithubComOcdpClusterServiceInternalAdapterInputHttpDtoInstanceEntryResponse,
  GithubComOcdpClusterServiceInternalAdapterInputHttpDtoInstanceListResponse,
  GithubComOcdpClusterServiceInternalAdapterInputHttpDtoInstanceResponse,
  GithubComOcdpClusterServiceInternalAdapterInputHttpDtoLoginRequest,
  GithubComOcdpClusterServiceInternalAdapterInputHttpDtoMonitoringSummaryResponse,
  GithubComOcdpClusterServiceInternalAdapterInputHttpDtoNodeMetricsResponse,
  GithubComOcdpClusterServiceInternalAdapterInputHttpDtoRefreshTokenRequest,
  GithubComOcdpClusterServiceInternalAdapterInputHttpDtoRegisterRequest,
  GithubComOcdpClusterServiceInternalAdapterInputHttpDtoRegistryHealthResponse,
  GithubComOcdpClusterServiceInternalAdapterInputHttpDtoRegistryResponse,
  GithubComOcdpClusterServiceInternalAdapterInputHttpDtoRepositoryListResponse,
  GithubComOcdpClusterServiceInternalAdapterInputHttpDtoTagResponse,
  GithubComOcdpClusterServiceInternalAdapterInputHttpDtoUpdateClusterRequest,
  GithubComOcdpClusterServiceInternalAdapterInputHttpDtoUpdateInstanceRequest,
  GithubComOcdpClusterServiceInternalAdapterInputHttpDtoUpdateRegistryRequest,
  GithubComOcdpClusterServiceInternalAdapterInputHttpDtoUserResponse,
  GithubComOcdpClusterServiceInternalAdapterInputHttpDtoValuesSchemaResponse,
  PostClustersClusterIdInstancesPathParameters,
  PutClustersClusterIdInstancesInstanceIdPathParameters,
  PutClustersClusterIdPathParameters,
  PutRegistriesRegistryIdPathParameters
} from './api.schemas'
import { customAxiosInstance } from '../axios-mutator';


type SecondParameter<T extends (...args: any) => any> = Parameters<T>[1];


  /**
 * 使用用户名和密码获取访问令牌
 * @summary 用户登录
 */
export const postAuthLogin = (
    githubComOcdpClusterServiceInternalAdapterInputHttpDtoLoginRequest: GithubComOcdpClusterServiceInternalAdapterInputHttpDtoLoginRequest,
 options?: SecondParameter<typeof customAxiosInstance>,) => {
      return customAxiosInstance<GithubComOcdpClusterServiceInternalAdapterInputHttpDtoAuthResponse>(
      {url: `/auth/login`, method: 'POST',
      headers: {'Content-Type': 'application/json', },
      data: githubComOcdpClusterServiceInternalAdapterInputHttpDtoLoginRequest
    },
      options);
    }
  
/**
 * 使用刷新令牌获取新的访问令牌
 * @summary 刷新访问令牌
 */
export const postAuthRefresh = (
    githubComOcdpClusterServiceInternalAdapterInputHttpDtoRefreshTokenRequest: GithubComOcdpClusterServiceInternalAdapterInputHttpDtoRefreshTokenRequest,
 options?: SecondParameter<typeof customAxiosInstance>,) => {
      return customAxiosInstance<GithubComOcdpClusterServiceInternalAdapterInputHttpDtoAuthResponse>(
      {url: `/auth/refresh`, method: 'POST',
      headers: {'Content-Type': 'application/json', },
      data: githubComOcdpClusterServiceInternalAdapterInputHttpDtoRefreshTokenRequest
    },
      options);
    }
  
/**
 * 创建一个新的后台用户
 * @summary 用户注册
 */
export const postAuthRegister = (
    githubComOcdpClusterServiceInternalAdapterInputHttpDtoRegisterRequest: GithubComOcdpClusterServiceInternalAdapterInputHttpDtoRegisterRequest,
 options?: SecondParameter<typeof customAxiosInstance>,) => {
      return customAxiosInstance<GithubComOcdpClusterServiceInternalAdapterInputHttpDtoUserResponse>(
      {url: `/auth/register`, method: 'POST',
      headers: {'Content-Type': 'application/json', },
      data: githubComOcdpClusterServiceInternalAdapterInputHttpDtoRegisterRequest
    },
      options);
    }
  
/**
 * @summary 列出所有集群
 */
export const getClusters = (
    
 options?: SecondParameter<typeof customAxiosInstance>,) => {
      return customAxiosInstance<GithubComOcdpClusterServiceInternalAdapterInputHttpDtoClusterResponse[]>(
      {url: `/clusters`, method: 'GET'
    },
      options);
    }
  
/**
 * 创建一个新的 Kubernetes 集群配置
 * @summary 创建集群
 */
export const postClusters = (
    githubComOcdpClusterServiceInternalAdapterInputHttpDtoCreateClusterRequest: GithubComOcdpClusterServiceInternalAdapterInputHttpDtoCreateClusterRequest,
 options?: SecondParameter<typeof customAxiosInstance>,) => {
      return customAxiosInstance<GithubComOcdpClusterServiceInternalAdapterInputHttpDtoClusterResponse>(
      {url: `/clusters`, method: 'POST',
      headers: {'Content-Type': 'application/json', },
      data: githubComOcdpClusterServiceInternalAdapterInputHttpDtoCreateClusterRequest
    },
      options);
    }
  
/**
 * @summary 删除集群
 */
export const deleteClustersClusterId = (
    { clusterId }: DeleteClustersClusterIdPathParameters,
 options?: SecondParameter<typeof customAxiosInstance>,) => {
      return customAxiosInstance<string>(
      {url: `/clusters/${clusterId}`, method: 'DELETE'
    },
      options);
    }
  
/**
 * @summary 获取集群详情
 */
export const getClustersClusterId = (
    { clusterId }: GetClustersClusterIdPathParameters,
 options?: SecondParameter<typeof customAxiosInstance>,) => {
      return customAxiosInstance<GithubComOcdpClusterServiceInternalAdapterInputHttpDtoClusterResponse>(
      {url: `/clusters/${clusterId}`, method: 'GET'
    },
      options);
    }
  
/**
 * @summary 更新集群
 */
export const putClustersClusterId = (
    { clusterId }: PutClustersClusterIdPathParameters,
    githubComOcdpClusterServiceInternalAdapterInputHttpDtoUpdateClusterRequest: GithubComOcdpClusterServiceInternalAdapterInputHttpDtoUpdateClusterRequest,
 options?: SecondParameter<typeof customAxiosInstance>,) => {
      return customAxiosInstance<GithubComOcdpClusterServiceInternalAdapterInputHttpDtoClusterResponse>(
      {url: `/clusters/${clusterId}`, method: 'PUT',
      headers: {'Content-Type': 'application/json', },
      data: githubComOcdpClusterServiceInternalAdapterInputHttpDtoUpdateClusterRequest
    },
      options);
    }
  
/**
 * @summary 获取集群健康状态
 */
export const getClustersClusterIdHealth = (
    { clusterId }: GetClustersClusterIdHealthPathParameters,
 options?: SecondParameter<typeof customAxiosInstance>,) => {
      return customAxiosInstance<GithubComOcdpClusterServiceInternalAdapterInputHttpDtoClusterHealthResponse>(
      {url: `/clusters/${clusterId}/health`, method: 'GET'
    },
      options);
    }
  
/**
 * @summary 列出实例
 */
export const getClustersClusterIdInstances = (
    { clusterId }: GetClustersClusterIdInstancesPathParameters,
 options?: SecondParameter<typeof customAxiosInstance>,) => {
      return customAxiosInstance<GithubComOcdpClusterServiceInternalAdapterInputHttpDtoInstanceListResponse>(
      {url: `/clusters/${clusterId}/instances`, method: 'GET'
    },
      options);
    }
  
/**
 * 在指定集群上部署一个 artifact
 * @summary 创建实例
 */
export const postClustersClusterIdInstances = (
    { clusterId }: PostClustersClusterIdInstancesPathParameters,
    githubComOcdpClusterServiceInternalAdapterInputHttpDtoCreateInstanceRequest: GithubComOcdpClusterServiceInternalAdapterInputHttpDtoCreateInstanceRequest,
 options?: SecondParameter<typeof customAxiosInstance>,) => {
      return customAxiosInstance<GithubComOcdpClusterServiceInternalAdapterInputHttpDtoInstanceResponse>(
      {url: `/clusters/${clusterId}/instances`, method: 'POST',
      headers: {'Content-Type': 'application/json', },
      data: githubComOcdpClusterServiceInternalAdapterInputHttpDtoCreateInstanceRequest
    },
      options);
    }
  
/**
 * @summary 删除实例
 */
export const deleteClustersClusterIdInstancesInstanceId = (
    { clusterId, instanceId }: DeleteClustersClusterIdInstancesInstanceIdPathParameters,
 options?: SecondParameter<typeof customAxiosInstance>,) => {
      return customAxiosInstance<string>(
      {url: `/clusters/${clusterId}/instances/${instanceId}`, method: 'DELETE'
    },
      options);
    }
  
/**
 * @summary 获取实例详情
 */
export const getClustersClusterIdInstancesInstanceId = (
    { clusterId, instanceId }: GetClustersClusterIdInstancesInstanceIdPathParameters,
 options?: SecondParameter<typeof customAxiosInstance>,) => {
      return customAxiosInstance<GithubComOcdpClusterServiceInternalAdapterInputHttpDtoInstanceResponse>(
      {url: `/clusters/${clusterId}/instances/${instanceId}`, method: 'GET'
    },
      options);
    }
  
/**
 * @summary 更新实例
 */
export const putClustersClusterIdInstancesInstanceId = (
    { clusterId, instanceId }: PutClustersClusterIdInstancesInstanceIdPathParameters,
    githubComOcdpClusterServiceInternalAdapterInputHttpDtoUpdateInstanceRequest: GithubComOcdpClusterServiceInternalAdapterInputHttpDtoUpdateInstanceRequest,
 options?: SecondParameter<typeof customAxiosInstance>,) => {
      return customAxiosInstance<GithubComOcdpClusterServiceInternalAdapterInputHttpDtoInstanceResponse>(
      {url: `/clusters/${clusterId}/instances/${instanceId}`, method: 'PUT',
      headers: {'Content-Type': 'application/json', },
      data: githubComOcdpClusterServiceInternalAdapterInputHttpDtoUpdateInstanceRequest
    },
      options);
    }
  
/**
 * @summary 获取实例 Service/Ingress 入口
 */
export const getClustersClusterIdInstancesInstanceIdEntries = (
    { clusterId, instanceId }: GetClustersClusterIdInstancesInstanceIdEntriesPathParameters,
 options?: SecondParameter<typeof customAxiosInstance>,) => {
      return customAxiosInstance<GithubComOcdpClusterServiceInternalAdapterInputHttpDtoInstanceEntryResponse[]>(
      {url: `/clusters/${clusterId}/instances/${instanceId}/entries`, method: 'GET'
    },
      options);
    }
  
/**
 * @summary 列出集群监控
 */
export const getMonitoringClusters = (
    
 options?: SecondParameter<typeof customAxiosInstance>,) => {
      return customAxiosInstance<GithubComOcdpClusterServiceInternalAdapterInputHttpDtoClusterMetricsResponse[]>(
      {url: `/monitoring/clusters`, method: 'GET'
    },
      options);
    }
  
/**
 * @summary 获取集群监控
 */
export const getMonitoringClustersClusterId = (
    { clusterId }: GetMonitoringClustersClusterIdPathParameters,
 options?: SecondParameter<typeof customAxiosInstance>,) => {
      return customAxiosInstance<GithubComOcdpClusterServiceInternalAdapterInputHttpDtoClusterMetricsResponse>(
      {url: `/monitoring/clusters/${clusterId}`, method: 'GET'
    },
      options);
    }
  
/**
 * @summary 获取节点指标
 */
export const getMonitoringClustersClusterIdNodes = (
    { clusterId }: GetMonitoringClustersClusterIdNodesPathParameters,
 options?: SecondParameter<typeof customAxiosInstance>,) => {
      return customAxiosInstance<GithubComOcdpClusterServiceInternalAdapterInputHttpDtoNodeMetricsResponse[]>(
      {url: `/monitoring/clusters/${clusterId}/nodes`, method: 'GET'
    },
      options);
    }
  
/**
 * @summary 获取监控汇总
 */
export const getMonitoringSummary = (
    
 options?: SecondParameter<typeof customAxiosInstance>,) => {
      return customAxiosInstance<GithubComOcdpClusterServiceInternalAdapterInputHttpDtoMonitoringSummaryResponse>(
      {url: `/monitoring/summary`, method: 'GET'
    },
      options);
    }
  
/**
 * @summary 列出所有 Registries
 */
export const getRegistries = (
    
 options?: SecondParameter<typeof customAxiosInstance>,) => {
      return customAxiosInstance<GithubComOcdpClusterServiceInternalAdapterInputHttpDtoRegistryResponse[]>(
      {url: `/registries`, method: 'GET'
    },
      options);
    }
  
/**
 * 新增 OCI Registry 配置
 * @summary 创建 Registry
 */
export const postRegistries = (
    githubComOcdpClusterServiceInternalAdapterInputHttpDtoCreateRegistryRequest: GithubComOcdpClusterServiceInternalAdapterInputHttpDtoCreateRegistryRequest,
 options?: SecondParameter<typeof customAxiosInstance>,) => {
      return customAxiosInstance<GithubComOcdpClusterServiceInternalAdapterInputHttpDtoRegistryResponse>(
      {url: `/registries`, method: 'POST',
      headers: {'Content-Type': 'application/json', },
      data: githubComOcdpClusterServiceInternalAdapterInputHttpDtoCreateRegistryRequest
    },
      options);
    }
  
/**
 * @summary 删除 Registry
 */
export const deleteRegistriesRegistryId = (
    { registryId }: DeleteRegistriesRegistryIdPathParameters,
 options?: SecondParameter<typeof customAxiosInstance>,) => {
      return customAxiosInstance<string>(
      {url: `/registries/${registryId}`, method: 'DELETE'
    },
      options);
    }
  
/**
 * @summary 获取 Registry
 */
export const getRegistriesRegistryId = (
    { registryId }: GetRegistriesRegistryIdPathParameters,
 options?: SecondParameter<typeof customAxiosInstance>,) => {
      return customAxiosInstance<GithubComOcdpClusterServiceInternalAdapterInputHttpDtoRegistryResponse>(
      {url: `/registries/${registryId}`, method: 'GET'
    },
      options);
    }
  
/**
 * @summary 更新 Registry
 */
export const putRegistriesRegistryId = (
    { registryId }: PutRegistriesRegistryIdPathParameters,
    githubComOcdpClusterServiceInternalAdapterInputHttpDtoUpdateRegistryRequest: GithubComOcdpClusterServiceInternalAdapterInputHttpDtoUpdateRegistryRequest,
 options?: SecondParameter<typeof customAxiosInstance>,) => {
      return customAxiosInstance<GithubComOcdpClusterServiceInternalAdapterInputHttpDtoRegistryResponse>(
      {url: `/registries/${registryId}`, method: 'PUT',
      headers: {'Content-Type': 'application/json', },
      data: githubComOcdpClusterServiceInternalAdapterInputHttpDtoUpdateRegistryRequest
    },
      options);
    }
  
/**
 * @summary 检查 Registry 健康
 */
export const getRegistriesRegistryIdHealth = (
    { registryId }: GetRegistriesRegistryIdHealthPathParameters,
 options?: SecondParameter<typeof customAxiosInstance>,) => {
      return customAxiosInstance<GithubComOcdpClusterServiceInternalAdapterInputHttpDtoRegistryHealthResponse>(
      {url: `/registries/${registryId}/health`, method: 'GET'
    },
      options);
    }
  
/**
 * 列出指定 Registry 中的所有 Repository
 * @summary 列出 Registry 中的所有 Repositories
 */
export const getRegistriesRegistryIdRepositories = (
    { registryId }: GetRegistriesRegistryIdRepositoriesPathParameters,
 options?: SecondParameter<typeof customAxiosInstance>,) => {
      return customAxiosInstance<GithubComOcdpClusterServiceInternalAdapterInputHttpDtoRepositoryListResponse>(
      {url: `/registries/${registryId}/repositories`, method: 'GET'
    },
      options);
    }
  
/**
 * 列出指定 Repository 中的所有 Artifact，支持按类型过滤
 * @summary 列出 Repository 中的所有 Artifacts
 */
export const getRegistriesRegistryIdRepositoriesRepositoryNameArtifacts = (
    { registryId, repositoryName }: GetRegistriesRegistryIdRepositoriesRepositoryNameArtifactsPathParameters,
    params?: GetRegistriesRegistryIdRepositoriesRepositoryNameArtifactsParams,
 options?: SecondParameter<typeof customAxiosInstance>,) => {
      return customAxiosInstance<GithubComOcdpClusterServiceInternalAdapterInputHttpDtoTagResponse[]>(
      {url: `/registries/${registryId}/repositories/${repositoryName}/artifacts`, method: 'GET',
        params
    },
      options);
    }
  
/**
 * 获取指定 Artifact 的详细信息
 * @summary 获取 Artifact 详情
 */
export const getRegistriesRegistryIdRepositoriesRepositoryNameArtifactsReference = (
    { registryId, repositoryName, reference }: GetRegistriesRegistryIdRepositoriesRepositoryNameArtifactsReferencePathParameters,
 options?: SecondParameter<typeof customAxiosInstance>,) => {
      return customAxiosInstance<GithubComOcdpClusterServiceInternalAdapterInputHttpDtoArtifactResponse>(
      {url: `/registries/${registryId}/repositories/${repositoryName}/artifacts/${reference}`, method: 'GET'
    },
      options);
    }
  
/**
 * 获取 Helm Chart 的 values.schema.json (仅支持 Chart 类型)
 * @summary 获取 Helm Chart Values Schema
 */
export const getRegistriesRegistryIdRepositoriesRepositoryNameArtifactsReferenceValuesSchema = (
    { registryId, repositoryName, reference }: GetRegistriesRegistryIdRepositoriesRepositoryNameArtifactsReferenceValuesSchemaPathParameters,
 options?: SecondParameter<typeof customAxiosInstance>,) => {
      return customAxiosInstance<GithubComOcdpClusterServiceInternalAdapterInputHttpDtoValuesSchemaResponse>(
      {url: `/registries/${registryId}/repositories/${repositoryName}/artifacts/${reference}/values-schema`, method: 'GET'
    },
      options);
    }
  
export type PostAuthLoginResult = NonNullable<Awaited<ReturnType<typeof postAuthLogin>>>
export type PostAuthRefreshResult = NonNullable<Awaited<ReturnType<typeof postAuthRefresh>>>
export type PostAuthRegisterResult = NonNullable<Awaited<ReturnType<typeof postAuthRegister>>>
export type GetClustersResult = NonNullable<Awaited<ReturnType<typeof getClusters>>>
export type PostClustersResult = NonNullable<Awaited<ReturnType<typeof postClusters>>>
export type DeleteClustersClusterIdResult = NonNullable<Awaited<ReturnType<typeof deleteClustersClusterId>>>
export type GetClustersClusterIdResult = NonNullable<Awaited<ReturnType<typeof getClustersClusterId>>>
export type PutClustersClusterIdResult = NonNullable<Awaited<ReturnType<typeof putClustersClusterId>>>
export type GetClustersClusterIdHealthResult = NonNullable<Awaited<ReturnType<typeof getClustersClusterIdHealth>>>
export type GetClustersClusterIdInstancesResult = NonNullable<Awaited<ReturnType<typeof getClustersClusterIdInstances>>>
export type PostClustersClusterIdInstancesResult = NonNullable<Awaited<ReturnType<typeof postClustersClusterIdInstances>>>
export type DeleteClustersClusterIdInstancesInstanceIdResult = NonNullable<Awaited<ReturnType<typeof deleteClustersClusterIdInstancesInstanceId>>>
export type GetClustersClusterIdInstancesInstanceIdResult = NonNullable<Awaited<ReturnType<typeof getClustersClusterIdInstancesInstanceId>>>
export type PutClustersClusterIdInstancesInstanceIdResult = NonNullable<Awaited<ReturnType<typeof putClustersClusterIdInstancesInstanceId>>>
export type GetClustersClusterIdInstancesInstanceIdEntriesResult = NonNullable<Awaited<ReturnType<typeof getClustersClusterIdInstancesInstanceIdEntries>>>
export type GetMonitoringClustersResult = NonNullable<Awaited<ReturnType<typeof getMonitoringClusters>>>
export type GetMonitoringClustersClusterIdResult = NonNullable<Awaited<ReturnType<typeof getMonitoringClustersClusterId>>>
export type GetMonitoringClustersClusterIdNodesResult = NonNullable<Awaited<ReturnType<typeof getMonitoringClustersClusterIdNodes>>>
export type GetMonitoringSummaryResult = NonNullable<Awaited<ReturnType<typeof getMonitoringSummary>>>
export type GetRegistriesResult = NonNullable<Awaited<ReturnType<typeof getRegistries>>>
export type PostRegistriesResult = NonNullable<Awaited<ReturnType<typeof postRegistries>>>
export type DeleteRegistriesRegistryIdResult = NonNullable<Awaited<ReturnType<typeof deleteRegistriesRegistryId>>>
export type GetRegistriesRegistryIdResult = NonNullable<Awaited<ReturnType<typeof getRegistriesRegistryId>>>
export type PutRegistriesRegistryIdResult = NonNullable<Awaited<ReturnType<typeof putRegistriesRegistryId>>>
export type GetRegistriesRegistryIdHealthResult = NonNullable<Awaited<ReturnType<typeof getRegistriesRegistryIdHealth>>>
export type GetRegistriesRegistryIdRepositoriesResult = NonNullable<Awaited<ReturnType<typeof getRegistriesRegistryIdRepositories>>>
export type GetRegistriesRegistryIdRepositoriesRepositoryNameArtifactsResult = NonNullable<Awaited<ReturnType<typeof getRegistriesRegistryIdRepositoriesRepositoryNameArtifacts>>>
export type GetRegistriesRegistryIdRepositoriesRepositoryNameArtifactsReferenceResult = NonNullable<Awaited<ReturnType<typeof getRegistriesRegistryIdRepositoriesRepositoryNameArtifactsReference>>>
export type GetRegistriesRegistryIdRepositoriesRepositoryNameArtifactsReferenceValuesSchemaResult = NonNullable<Awaited<ReturnType<typeof getRegistriesRegistryIdRepositoriesRepositoryNameArtifactsReferenceValuesSchema>>>
