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 AppInstanceID string type AppSetInfo struct { Apps []AppInfo `json:"apps"` } type AppInfo interface { GetLocalJobID() string GetAppInstanceID() int64 } var AppInfoTypeUnion = types.NewTypeUnion[AppInfo]( (*FederatedLearningAppInfo)(nil), (*OtherAppInfo)(nil), ) var _ = serder.UseTypeUnionInternallyTagged(&AppInfoTypeUnion, "type") type AppInfoBase struct { LocalJobID string `json:"localJobID"` AppInstanceID int64 `json:"appInstanceID"` // 应用实例ID } func (i *AppInfoBase) GetLocalJobID() string { return i.LocalJobID } func (i *AppInfoBase) GetAppInstanceID() int64 { return i.AppInstanceID } // FederatedLearningAppInfo 云际联邦学习应用信息 type FederatedLearningAppInfo struct { serder.Metadata `union:"federatedLearning"` AppInfoBase Type string `json:"type"` AppInstanceID string `json:"appInstanceID"` Name string `json:"name"` Description string `json:"description"` ParticipantCount int `json:"participantcount"` //参与者人数 JobResources JobResources `json:"jobResources"` //作业资源 JobInfo JobInfo `json:"jobInfo"` ClientObjectID cdssdk.ObjectID `json:"clientObjectID"` //client代码 ServerObjectID cdssdk.ObjectID `json:"serverObjectID"` //server代码 ModelBindID cdssdk.ObjectID `json:"modelBindID"` //模型绑定id DatasetBindID cdssdk.ObjectID `json:"datasetBindID"` //数据集绑定id ImageBindID cdssdk.ObjectID `json:"imageBindID"` //镜像绑定id JobSetID JobSetID `json:"jobSetID"` //工作集ID Role string `json:"role"` //角色,initiator/participant //DataReturnJobInfo DataReturnJobInfo `json:"dataReturnJobInfo"` //数据返回作业信息 IsDataReturn bool `json:"isDataReturn"` } type OtherAppInfo struct { serder.Metadata `union:"other"` AppInfoBase Type string `json:"type"` Name string `json:"name"` Description string `json:"description"` }