/** * Copyright (c) 2020-present, Goldman Sachs * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import type { TreeNodeData, TreeData } from '@finos/legend-art'; import type { EditorStore } from '../EditorStore.js'; import type { EditorSDLCState } from '../EditorSDLCState.js'; import { type GeneratorFn, ActionState } from '@finos/legend-shared'; import { type Version, WorkflowJob, Workflow } from '@finos/legend-server-sdlc'; import { WORKFLOW_MANAGER_JOB_ACTION, WORKFLOW_MANAGER_SCOPE } from '../../../__lib__/LegendStudioTelemetryHelper.js'; export declare abstract class WorkflowExplorerTreeNodeData implements TreeNodeData { isSelected?: boolean | undefined; isOpen?: boolean | undefined; id: string; label: string; childrenIds: string[] | undefined; constructor(id: string, label: string); } export declare class WorkflowTreeNodeData extends WorkflowExplorerTreeNodeData { workflow: Workflow; constructor(workflow: Workflow); } export declare class WorkflowJobTreeNodeData extends WorkflowExplorerTreeNodeData { workflowJob: WorkflowJob; constructor(workflowJob: WorkflowJob); } export declare class WorkflowLogState { readonly editorStore: EditorStore; readonly workflowManagerState: WorkflowManagerState; readonly fetchJobLogState: ActionState; job: WorkflowJob | undefined; logs: string; private openedAt; private refreshCount; constructor(editorStore: EditorStore, workflowManagerState: WorkflowManagerState, job: WorkflowJob | undefined, logs: string | undefined); setLogs(val: string): void; setJob(val: WorkflowJob | undefined): void; closeModal(): void; refreshJobLogs(workflowJob: WorkflowJob): GeneratorFn; viewJobLogs(workflowJob: WorkflowJob): GeneratorFn; } export declare class WorkflowState { readonly uuid: string; readonly editorStore: EditorStore; readonly workflowManagerState: WorkflowManagerState; treeData: TreeData; isExecutingWorkflowRequest: boolean; constructor(editorStore: EditorStore, workflowManagerState: WorkflowManagerState, workflow: Workflow, jobs: WorkflowJob[] | undefined); setWorkflowTreeData(val: TreeData): void; buildTreeData(workflow: Workflow, jobs: WorkflowJob[] | undefined): TreeData; fetchAllWorkspaceWorkJobs(workflowId: string, treeData: TreeData): GeneratorFn; onTreeNodeSelect(node: WorkflowExplorerTreeNodeData, treeData: TreeData): GeneratorFn; cancelJob(workflowJob: WorkflowJob, treeData: TreeData): GeneratorFn; refreshWorkflow(workflowId: string, treeData: TreeData): GeneratorFn; retryJob(workflowJob: WorkflowJob, treeData: TreeData): GeneratorFn; runManualJob(workflowJob: WorkflowJob, treeData: TreeData): GeneratorFn; runJobAction(jobAction: WORKFLOW_MANAGER_JOB_ACTION, workflowJob: WorkflowJob, treeData: TreeData, invoke: () => Promise): GeneratorFn; } export declare abstract class WorkflowManagerState { readonly editorStore: EditorStore; readonly sdlcState: EditorSDLCState; readonly fetchWorkflowsState: ActionState; logState: WorkflowLogState; workflowStates: WorkflowState[]; constructor(editorStore: EditorStore, sdlcState: EditorSDLCState); /** * Discriminator for telemetry so dashboards can slice workflow-manager * events by which surface emitted them (workspace sidebar vs. read-only * project viewer vs. project-version viewer) without joining on * `sourceInfo.sourceType`. */ abstract get scope(): WORKFLOW_MANAGER_SCOPE; abstract getWorkflows(): GeneratorFn; abstract getWorkflow(workflowId: string): GeneratorFn; abstract getJobs(workflowId: string): GeneratorFn; abstract getJob(job: WorkflowJob): GeneratorFn; abstract retryJob(workflowJob: WorkflowJob): GeneratorFn; abstract runManualJob(workflowJob: WorkflowJob): GeneratorFn; abstract cancelJob(workflowJob: WorkflowJob): GeneratorFn; abstract getJobLogs(workflowJob: WorkflowJob): GeneratorFn; fetchAllWorkflows(): GeneratorFn; } export declare class WorkspaceWorkflowManagerState extends WorkflowManagerState { get scope(): WORKFLOW_MANAGER_SCOPE; getJobs(workflowId: string): GeneratorFn; getJob(job: WorkflowJob): GeneratorFn; getWorkflows(): GeneratorFn; getWorkflow(workflowId: string): GeneratorFn; retryJob(workflowJob: WorkflowJob): GeneratorFn; runManualJob(workflowJob: WorkflowJob): GeneratorFn; cancelJob(workflowJob: WorkflowJob): GeneratorFn; getJobLogs(workflowJob: WorkflowJob): GeneratorFn; } export declare class ProjectVersionWorkflowManagerState extends WorkflowManagerState { version: Version; constructor(editorStore: EditorStore, sdlcState: EditorSDLCState, version: Version); get scope(): WORKFLOW_MANAGER_SCOPE; getJobs(workflowId: string): GeneratorFn; getJob(job: WorkflowJob): GeneratorFn; getWorkflows(): GeneratorFn; getWorkflow(workflowId: string): GeneratorFn; retryJob(workflowJob: WorkflowJob): GeneratorFn; runManualJob(workflowJob: WorkflowJob): GeneratorFn; cancelJob(workflowJob: WorkflowJob): GeneratorFn; getJobLogs(workflowJob: WorkflowJob): GeneratorFn; } export declare class ProjectWorkflowManagerState extends WorkflowManagerState { get scope(): WORKFLOW_MANAGER_SCOPE; getJobs(workflowId: string): GeneratorFn; getJob(job: WorkflowJob): GeneratorFn; getWorkflows(): GeneratorFn; getWorkflow(workflowId: string): GeneratorFn; retryJob(workflowJob: WorkflowJob): GeneratorFn; runManualJob(workflowJob: WorkflowJob): GeneratorFn; cancelJob(workflowJob: WorkflowJob): GeneratorFn; getJobLogs(workflowJob: WorkflowJob): GeneratorFn; } //# sourceMappingURL=WorkflowManagerState.d.ts.map