mirror of
https://github.com/onepanelio/onepanel.git
synced 2025-09-27 01:56:03 +08:00
71 lines
2.0 KiB
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"`
|
|
}
|