@alauda-fe/common
Version:
Alauda frontend team common codes.
113 lines (112 loc) • 5.47 kB
TypeScript
/**
* @packageDocumentation
* @module api
*/
import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs';
import { KubernetesResource, KubernetesResourceList, Status } from '../core/public-api';
import { K8sApiResourceService } from './k8s-api-resource.service';
import { PageVisibilityService } from './page-visibility.service';
import { ErebusResourceDeleteParams, ErebusResourceListParams, ErebusResourceParams, ErebusResourcePatchParams, ErebusResourceWriteParams, GlobalResourceDeleteParams, GlobalResourceListParams, GlobalResourceParams, GlobalResourcePatchParams, GlobalResourceWriteParams, WatchAPIResponse, WatchErebusResourceListParams, WatchErebusResourceParams, WatchGlobalResourceListParams, WatchGlobalResourceParams, ErebusResourceBatchDeleteParams } from './types';
import * as i0 from "@angular/core";
export declare const TIMEOUT_SECONDS = 59;
export declare const SEARCH_URL_PREFIX = "/acp/v1/resources/search";
export declare class K8sApiService<R extends string = string> {
private readonly http;
private readonly k8sApiResource;
private readonly pageVisibility;
private readonly globalNamespace;
constructor(http: HttpClient, k8sApiResource: K8sApiResourceService, pageVisibility: PageVisibilityService, globalNamespace: string);
/**
* 获取 Global 集群单个资源对象
*/
getGlobalResource<T extends KubernetesResource>(params: GlobalResourceParams<R>): Observable<T>;
/**
* 监听 Global 集群单个资源对象
*/
watchGlobalResource<T extends KubernetesResource>(params: WatchGlobalResourceParams<R>): Observable<T>;
/**
* 监听 Global 集群资源列表变化
*/
watchGlobalResourceChange<T extends KubernetesResource>(seedVersion: string, params: WatchGlobalResourceListParams<R>): Observable<WatchAPIResponse<T>>;
/**
* 获取 Global 集群资源对象列表,包含分页信息
*/
getGlobalResourceList<T extends KubernetesResource>(params: GlobalResourceListParams<R>): Observable<KubernetesResourceList<T>>;
/**
* 创建 Global 集群资源
*/
postGlobalResource<T extends KubernetesResource>(params: GlobalResourceWriteParams<T, R>): Observable<T>;
/**
* 完整覆盖更新 Global 集群单个资源对象
*/
putGlobalResource<T extends KubernetesResource>(params: GlobalResourceWriteParams<T, R>): Observable<T>;
/**
* 增量更新 Global 集群单个资源对象的部分属性
*/
patchGlobalResource<T extends KubernetesResource>(params: GlobalResourcePatchParams<T, R>): Observable<T>;
/**
* 删除 Global 集群单个资源
*/
deleteGlobalResource<S extends KubernetesResource = Status, T extends KubernetesResource = S extends Status ? KubernetesResource : S>(params: GlobalResourceDeleteParams<T, R>): Observable<S>;
/**
* 获取业务集群单个资源对象
*/
getResource<T extends KubernetesResource>(params: ErebusResourceParams<R>): Observable<T>;
/**
* 监听业务集群单个资源对象
*/
watchResource<T extends KubernetesResource>(params: WatchErebusResourceParams<R>): Observable<T>;
/**
* 监听资源列表变化
*/
watchResourceChange<T extends KubernetesResource>(seedVersion: string, params: WatchErebusResourceListParams<R>): Observable<WatchAPIResponse<T>>;
/**
* 获取业务集群资源对象列表,包含分页信息
*/
getResourceList<T extends KubernetesResource>(params: ErebusResourceListParams<R>): Observable<KubernetesResourceList<T>>;
/**
* 创建业务集群资源
*/
postResource<T extends KubernetesResource>(params: ErebusResourceWriteParams<T, R>): Observable<T>;
/**
* 完整覆盖更新业务集群单个资源对象
*/
putResource<T extends KubernetesResource>(params: ErebusResourceWriteParams<T, R>): Observable<T>;
/**
* 增量更新业务集群单个资源对象的部分属性
*/
patchResource<T extends KubernetesResource>(params: ErebusResourcePatchParams<T, R>): Observable<T>;
/**
* 删除业务集群单个资源
*/
deleteResource<S extends KubernetesResource = Status, T extends KubernetesResource = S extends Status ? KubernetesResource : S>(params: ErebusResourceDeleteParams<T, R>): Observable<S>;
/**
* 批量删除业务集群的资源
*/
batchDeleteResource<S extends KubernetesResource = Status, T extends KubernetesResource = S extends Status ? KubernetesResource : S>(params: ErebusResourceBatchDeleteParams<R>): Observable<T>;
private _getResourceDefinition;
private _getApiPath;
private _getNamespace;
private _getName;
/**
* k8s list api 返回的结果里,items 缺失 kind 和 apiVersion 字段
* 规则如 Service 类型对应 kind: ServiceList,去掉最后四个字符可得到资源的 kind
* @internal
*/
private _getNormalizedList;
private _getResource;
private _watchResource;
private _keepWatchResourceChange;
private _watchResourceChange;
private _getResourceList;
private _postResource;
private _putResource;
private _patchResource;
private _deleteResource;
private _batchDeleteResource;
private readonly _getHeaders;
private _getDowngradePolling;
static ɵfac: i0.ɵɵFactoryDeclaration<K8sApiService<any>, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<K8sApiService<any>>;
}