package schsdk import ( "gitlink.org.cn/cloudream/common/pkgs/types" cdssdk "gitlink.org.cn/cloudream/common/sdks/storage" "gitlink.org.cn/cloudream/common/utils/serder" ) type DataBinding interface { Noop() } var DataBindingTypeUnion = types.NewTypeUnion[DataBinding]( (*DatasetBinding)(nil), (*ModelBinding)(nil), (*CodeBinding)(nil), (*ImageBinding)(nil), (*HPCBinding)(nil), ) var _ = serder.UseTypeUnionInternallyTagged(&DataBindingTypeUnion, "type") type DataBindingBase struct { RootPath string `json:"rootPath"` } func (d *DataBindingBase) Noop() {} type DatasetBinding struct { serder.Metadata `union:"dataset"` DataBindingBase Type string `json:"type"` Name string `json:"name"` OperateType string `json:"operateType"` ClusterIDs []ClusterID `json:"clusterIDs"` Description string `json:"description"` Category string `json:"category"` PackageID cdssdk.PackageID `json:"packageID"` RepositoryName string `json:"repositoryName"` ConsumptionPoints int64 `json:"points"` } type ModelBinding struct { serder.Metadata `union:"model"` DataBindingBase Type string `json:"type"` Name string `json:"name"` OperateType string `json:"operateType"` ClusterIDs []ClusterID `json:"clusterIDs"` Description string `json:"description"` Category string `json:"category"` ModelType string `json:"modelType"` Env string `json:"env"` Version string `json:"version"` PackageID cdssdk.PackageID `json:"packageID"` RepositoryName string `json:"repositoryName"` } type CodeBinding struct { serder.Metadata `union:"code"` DataBindingBase Type string `json:"type"` Name string `json:"name"` OperateType string `json:"operateType"` ClusterID ClusterID `json:"clusterID"` Description string `json:"description"` ImageID ImageID `json:"imageID"` BootstrapObjectID cdssdk.ObjectID `json:"bootstrapObjectID"` FilePath string `json:"filePath"` //当BootstrapObjectID为空时,filePath为必填 PackageID cdssdk.PackageID `json:"packageID"` Output string `json:"output"` // 当集群为openi的时候,需要传入分支 Branch string `json:"branch"` } type HPCBinding struct { serder.Metadata `union:"HPCSlurm"` DataBindingBase Type string `json:"type"` Name string `json:"name"` OperateType string `json:"operateType"` ClusterIDs []ClusterID `json:"clusterIDs"` Description string `json:"description"` PackageID cdssdk.PackageID `json:"packageID"` } type ImageBinding struct { serder.Metadata `union:"image"` DataBindingBase Type string `json:"type"` ID int64 `json:"id"` OperateType string `json:"operateType"` Name string `json:"name"` IDType string `json:"idType"` ImageID string `json:"imageID"` ClusterID ClusterID `json:"clusterID"` }