You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

binding_models.go 3.3 kB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. package schsdk
  2. import (
  3. "gitlink.org.cn/cloudream/common/pkgs/types"
  4. cdssdk "gitlink.org.cn/cloudream/common/sdks/storage"
  5. "gitlink.org.cn/cloudream/common/utils/serder"
  6. )
  7. type DataBinding interface {
  8. Noop()
  9. }
  10. var DataBindingTypeUnion = types.NewTypeUnion[DataBinding](
  11. (*DatasetBinding)(nil),
  12. (*ModelBinding)(nil),
  13. (*CodeBinding)(nil),
  14. (*ImageBinding)(nil),
  15. (*HPCBinding)(nil),
  16. )
  17. var _ = serder.UseTypeUnionInternallyTagged(&DataBindingTypeUnion, "type")
  18. type DataBindingBase struct {
  19. RootPath string `json:"rootPath"`
  20. }
  21. func (d *DataBindingBase) Noop() {}
  22. type DatasetBinding struct {
  23. serder.Metadata `union:"dataset"`
  24. DataBindingBase
  25. Type string `json:"type"`
  26. Name string `json:"name"`
  27. OperateType string `json:"operateType"`
  28. ClusterIDs []ClusterID `json:"clusterIDs"`
  29. Description string `json:"description"`
  30. Category string `json:"category"`
  31. PackageID cdssdk.PackageID `json:"packageID"`
  32. RepositoryName string `json:"repositoryName"`
  33. ConsumptionPoints int64 `json:"points"`
  34. }
  35. type ModelBinding struct {
  36. serder.Metadata `union:"model"`
  37. DataBindingBase
  38. Type string `json:"type"`
  39. Name string `json:"name"`
  40. OperateType string `json:"operateType"`
  41. ClusterIDs []ClusterID `json:"clusterIDs"`
  42. Description string `json:"description"`
  43. Category string `json:"category"`
  44. ModelType string `json:"modelType"`
  45. Env string `json:"env"`
  46. Version string `json:"version"`
  47. PackageID cdssdk.PackageID `json:"packageID"`
  48. RepositoryName string `json:"repositoryName"`
  49. }
  50. type CodeBinding struct {
  51. serder.Metadata `union:"code"`
  52. DataBindingBase
  53. Type string `json:"type"`
  54. Name string `json:"name"`
  55. OperateType string `json:"operateType"`
  56. ClusterID ClusterID `json:"clusterID"`
  57. Description string `json:"description"`
  58. ImageID ImageID `json:"imageID"`
  59. BootstrapObjectID cdssdk.ObjectID `json:"bootstrapObjectID"`
  60. FilePath string `json:"filePath"` //当BootstrapObjectID为空时,filePath为必填
  61. PackageID cdssdk.PackageID `json:"packageID"`
  62. Output string `json:"output"`
  63. // 当集群为openi的时候,需要传入分支
  64. Branch string `json:"branch"`
  65. }
  66. type HPCBinding struct {
  67. serder.Metadata `union:"HPCSlurm"`
  68. DataBindingBase
  69. Type string `json:"type"`
  70. Name string `json:"name"`
  71. OperateType string `json:"operateType"`
  72. ClusterIDs []ClusterID `json:"clusterIDs"`
  73. Description string `json:"description"`
  74. PackageID cdssdk.PackageID `json:"packageID"`
  75. }
  76. type ImageBinding struct {
  77. serder.Metadata `union:"image"`
  78. DataBindingBase
  79. Type string `json:"type"`
  80. ID int64 `json:"id"`
  81. OperateType string `json:"operateType"`
  82. Name string `json:"name"`
  83. IDType string `json:"idType"`
  84. ImageID string `json:"imageID"`
  85. ClusterID ClusterID `json:"clusterID"`
  86. }