@startuml
package "main" {
    class Graph {
        []DataModel Datas
        []ComputingModel Computings
        []ComputeModel Computes
        []StorageModel Storages
        map[string, Link] Links
        HttpQuery ws
        
        GetGraphList(apiurl string) (map[string]string, error)
        LoadFrom(workspace string) error
        GetWorkflowComponents(workflow string)
        GetLinks(workflow string)
        AddDataModel(id string, user_input gjson.Result, wf_id string) error
        AddComputeModel(id string, user_input gjson.Result, wf_id string) error
        AddComputingModel(id string, user_input gjson.Result, wf_id string) error
        AddStorageModel(id string, user_input gjson.Result, wf_id string) error
        ExportToArgo(id string) error
        getListBranches(end_links map[string]Link, unvisited_links_list map[string]Link, current_branch []string) (list_branches [][]string)
        ExportToHelm(id string) error
        isDestination(comp_id string, link_id string) bool
        isSource(comp_id string, link_id string) bool
        getPreviousLink(link_id string, map_link map[string]Link) (previous_id []string)
        getComponentName(id string) string
        getComponentType(component_id string) string
        getComponentByType(compType string, link Link) (ids []string)
    }


}