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.

app_models.go 2.2 kB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  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 AppInstanceID string
  8. type AppSetInfo struct {
  9. Apps []AppInfo `json:"apps"`
  10. }
  11. type AppInfo interface {
  12. GetLocalJobID() string
  13. GetAppInstanceID() int64
  14. }
  15. var AppInfoTypeUnion = types.NewTypeUnion[AppInfo](
  16. (*FederatedLearningAppInfo)(nil),
  17. (*OtherAppInfo)(nil),
  18. )
  19. var _ = serder.UseTypeUnionInternallyTagged(&AppInfoTypeUnion, "type")
  20. type AppInfoBase struct {
  21. LocalJobID string `json:"localJobID"`
  22. AppInstanceID int64 `json:"appInstanceID"` // 应用实例ID
  23. }
  24. func (i *AppInfoBase) GetLocalJobID() string {
  25. return i.LocalJobID
  26. }
  27. func (i *AppInfoBase) GetAppInstanceID() int64 {
  28. return i.AppInstanceID
  29. }
  30. // FederatedLearningAppInfo 云际联邦学习应用信息
  31. type FederatedLearningAppInfo struct {
  32. serder.Metadata `union:"federatedLearning"`
  33. AppInfoBase
  34. Type string `json:"type"`
  35. AppInstanceID string `json:"appInstanceID"`
  36. Name string `json:"name"`
  37. Description string `json:"description"`
  38. ParticipantCount int `json:"participantcount"` //参与者人数
  39. JobResources JobResources `json:"jobResources"` //作业资源
  40. JobInfo JobInfo `json:"jobInfo"`
  41. ClientObjectID cdssdk.ObjectID `json:"clientObjectID"` //client代码
  42. ServerObjectID cdssdk.ObjectID `json:"serverObjectID"` //server代码
  43. ModelBindID cdssdk.ObjectID `json:"modelBindID"` //模型绑定id
  44. DatasetBindID cdssdk.ObjectID `json:"datasetBindID"` //数据集绑定id
  45. ImageBindID cdssdk.ObjectID `json:"imageBindID"` //镜像绑定id
  46. JobSetID JobSetID `json:"jobSetID"` //工作集ID
  47. Role string `json:"role"` //角色,initiator/participant
  48. //DataReturnJobInfo DataReturnJobInfo `json:"dataReturnJobInfo"` //数据返回作业信息
  49. IsDataReturn bool `json:"isDataReturn"`
  50. }
  51. type OtherAppInfo struct {
  52. serder.Metadata `union:"other"`
  53. AppInfoBase
  54. Type string `json:"type"`
  55. Name string `json:"name"`
  56. Description string `json:"description"`
  57. }