Files
onepanel/pkg/common_types.go

71 lines
2.0 KiB
Go

package v1
// +genclient
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
type ParameterOption struct {
Name string `json:"name" protobuf:"bytes,1,opt,name=name"`
Value string `json:"value" protobuf:"bytes,2,opt,name=value"`
}
type Parameter struct {
Name string `json:"name" protobuf:"bytes,1,opt,name=name"`
Value *string `json:"value,omitempty" protobuf:"bytes,2,opt,name=value"`
Type string `json:"type" protobuf:"bytes,3,opt,name=type"`
DisplayName *string `json:"displayName" protobuf:"bytes,4,opt,name=displayName"`
Hint *string `json:"hint" protobuf:"bytes,5,opt,name=hint"`
Options []*ParameterOption `json:"options,omitempty" protobuf:"bytes,6,opt,name=options"`
Required bool `json:"required,omitempty" protobuf:"bytes,7,opt,name=required"`
}
func ParameterFromMap(paramMap map[interface{}]interface{}) *Parameter {
displayName := paramMap["displayname"].(string)
hint := paramMap["hint"].(string)
required := paramMap["required"].(bool)
typeValue := paramMap["type"].(string)
name := paramMap["name"].(string)
value := paramMap["value"].(string)
options := paramMap["options"]
optionsArray, ok := options.([]interface{})
if !ok {
return nil
}
newOptions := make([]ParameterOption, 0)
for _, option := range optionsArray {
optionMap := option.(map[interface{}]interface{})
newOption := ParameterOption{
Name: optionMap["name"].(string),
Value: optionMap["value"].(string),
}
newOptions = append(newOptions, newOption)
}
workflowParameter := Parameter{
Name: name,
Required: required,
}
if displayName != "" {
workflowParameter.DisplayName = &displayName
}
if hint != "" {
workflowParameter.Hint = &hint
}
if value != "" {
workflowParameter.Value = &value
}
if typeValue != "" {
workflowParameter.Type = typeValue
}
return &workflowParameter
}
type Arguments struct {
Parameters []Parameter `json:"parameters" protobuf:"bytes,1,opt,name=parameters"`
}