aggregation-platform/d.ts/kubernetes/ts/kubernetesInterfaces.d.ts

101 lines
3.0 KiB
TypeScript

declare module Kubernetes {
class consts {
NAMESPACE_STORAGE_KEY: string;
}
var Constants: consts;
interface ApiLocation {
proto?: string;
hostPort: string;
prefix: string;
}
interface ApiLocations {
openshift?: ApiLocation;
k8s?: ApiLocation;
}
interface KubernetesConfig {
master_uri?: string;
api?: ApiLocations;
openshift?: OpenShiftOAuthConfig;
google?: GoogleOAuthConfig;
keycloak?: KeyCloakAuthConfig;
}
interface OpenShiftOAuthConfig {
oauth_authorize_uri: string;
oauth_client_id: string;
}
interface GoogleOAuthConfig {
authenticationURI: string;
authorizationURI: string;
clientId: string;
clientSecret: string;
redirectURI: string;
scope: string;
tokenURI?: string;
}
interface KeyCloakAuthConfig {
oauth_authorize_uri: string;
oauth_client_id: string;
}
interface KubernetesState {
namespaces: Array<string>;
selectedNamespace: string;
}
class WatchTypes {
static ENDPOINTS: string;
static EVENTS: string;
static NAMESPACES: string;
static NODES: string;
static PERSISTENT_VOLUMES: string;
static PERSISTENT_VOLUME_CLAIMS: string;
static PODS: string;
static REPLICATION_CONTROLLERS: string;
static RESOURCE_QUOTAS: string;
static OAUTH_CLIENTS: string;
static SECRETS: string;
static SERVICES: string;
static SERVICE_ACCOUNTS: string;
static TEMPLATES: string;
static ROUTES: string;
static BUILD_CONFIGS: string;
static BUILDS: string;
static DEPLOYMENT_CONFIGS: string;
static IMAGE_STREAMS: string;
static POLICIES: string;
static POLICY_BINDINGS: string;
static PROJECTS: string;
static ROLE_BINDINGS: string;
static ROLES: string;
}
class NamespacedTypes {
static k8sTypes: Array<string>;
static osTypes: Array<string>;
}
class WatchActions {
static ANY: string;
static ADDED: string;
static MODIFIED: string;
static DELETED: string;
}
interface ObjectMap {
[uid: string]: any;
}
interface WatcherService {
hasWebSocket: boolean;
addCustomizer: (type: string, customizer: (obj: any) => void) => void;
getTypes: () => Array<string>;
getNamespace: () => string;
setNamespace: (namespace: string) => void;
getObjects: (type: string) => Array<any>;
getObjectMap: (type: string) => ObjectMap;
addAction: (type: string, action: string, fn: (obj: any) => void) => void;
registerListener: (fn: (objects: ObjectMap) => void) => void;
registerCustomUrlFunction: (kind: string, url: (kind: string) => string) => void;
}
interface KubePod {
id: string;
namespace: string;
metadata: any;
$replicas: number;
}
}