|
|
|
@@ -0,0 +1,41 @@ |
|
|
|
package schsdk |
|
|
|
|
|
|
|
import ( |
|
|
|
"gitlink.org.cn/cloudream/common/pkgs/types" |
|
|
|
"gitlink.org.cn/cloudream/common/utils/serder" |
|
|
|
) |
|
|
|
|
|
|
|
type AppInfo interface { |
|
|
|
GetAppID() string |
|
|
|
} |
|
|
|
|
|
|
|
var AppInfoTypeUnion = types.NewTypeUnion[AppInfo]( |
|
|
|
(*FederatedLearningAppInfo)(nil), |
|
|
|
(*OtherAppInfo)(nil), |
|
|
|
) |
|
|
|
|
|
|
|
var _ = serder.UseTypeUnionInternallyTagged(&JobInfoTypeUnion, "type") |
|
|
|
|
|
|
|
type AppInfoBase struct { |
|
|
|
ID string `json:"id"` |
|
|
|
} |
|
|
|
|
|
|
|
func (i *AppInfoBase) GetAppID() string { |
|
|
|
return i.ID |
|
|
|
} |
|
|
|
|
|
|
|
type FederatedLearningAppInfo struct { |
|
|
|
serder.Metadata `union:"federatedLearning"` |
|
|
|
AppInfoBase |
|
|
|
Type string `json:"type"` |
|
|
|
Name string `json:"name"` |
|
|
|
Description string `json:"description"` |
|
|
|
} |
|
|
|
|
|
|
|
type OtherAppInfo struct { |
|
|
|
serder.Metadata `union:"other"` |
|
|
|
AppInfoBase |
|
|
|
Type string `json:"type"` |
|
|
|
Name string `json:"name"` |
|
|
|
Description string `json:"description"` |
|
|
|
} |