@cto.ai/ops
Version:
💻 CTO.ai - The CLI built for Teams 🚀
119 lines (118 loc) • 2.97 kB
TypeScript
import { COMMAND_TYPE, WORKFLOW_TYPE, GLUECODE_TYPE, JOB_TYPE, SERVICE_TYPE, PIPELINE_TYPE } from '../constants/opConfig';
export interface OpsYmlEnvVar {
configs?: string[];
secrets?: string[];
static?: string[];
}
export interface OpsYml {
version: string;
ops: OpCommand[];
pipelines: OpPipeline[];
workflows: OpWorkflow[];
services: OpService[];
}
export declare function instanceOfOpWorkflow(object: any): object is OpWorkflow;
export interface OpBase {
name: string;
version: string;
}
export interface OpCommand extends BaseFields {
type: COMMAND_TYPE | GLUECODE_TYPE | JOB_TYPE | SERVICE_TYPE;
run: string;
sdk?: string;
bind: string[];
network?: string;
src: string[];
mountCwd: boolean;
mountHome: boolean;
port: string[];
image: string | void;
domain: string | void;
}
export declare function instanceOfOpPipeline(object: any): object is OpPipeline;
export type Ops = (OpCommand | OpPipeline)[];
export interface OpPipeline extends BaseFields {
type: PIPELINE_TYPE;
version: string;
name: string;
public?: boolean;
remote?: boolean;
jobs: OpJob[];
id: string;
description: string;
teamName: string;
env?: OpsYmlEnvVar;
events?: string[];
trigger?: string[];
bind?: string[];
linkedCommandsNames?: string[];
}
export interface OpJob {
packages: string[];
name: string;
sdk?: string;
version: string;
description: string;
steps: string[];
env?: OpsYmlEnvVar;
bind?: string[];
linked: boolean;
params?: string[];
}
export interface OpService {
type: SERVICE_TYPE;
name: string;
version: string;
description: string;
public?: boolean;
isPublic?: boolean;
port: number;
run: string;
sdk?: string;
domain?: string;
env?: OpsYmlEnvVar;
events?: string[];
trigger?: string[];
}
export declare const convertServicesToOps: (services: OpService[]) => OpCommand[];
export declare const checkAndApplyLatestSDKVersion: (commands: OpCommand[]) => OpCommand[];
export interface OpWorkflow extends BaseFields {
type: WORKFLOW_TYPE;
remote: boolean;
steps: string[];
bind?: string[];
linkedCommandsNames?: string[];
}
interface BaseFields {
name: string;
version: string;
platformVersion: string;
description: string;
publishDescription?: string;
env?: string[] | OpsYmlEnvVar;
runId: string;
opsHome: string;
configDir: string;
stateDir: string;
localStateDir: string;
teamID?: string;
teamName: string;
help: {
usage: string;
arguments: {
[key: string]: string;
};
options: {
[key: string]: string;
};
};
isPublic: boolean;
isPublished?: boolean;
id: string;
createdAt: string;
updatedAt: string;
local?: boolean;
events?: string[];
trigger?: string[];
}
export {};