github.com/choria-io/go-choria@v0.28.1-0.20240416190746-b3bf9c7d5a45/internal/fs/ddl/agent_ruby_ddl.templ (about) 1 metadata :name => "{{ .Metadata.Name }}", 2 :description => "{{ .Metadata.Description }}", 3 :author => "{{ .Metadata.Author }}", 4 :license => "{{ .Metadata.License }}", 5 :version => "{{ .Metadata.Version }}", 6 :url => "{{ .Metadata.URL }}", 7 {{- if .Metadata.Provider }} 8 :provider => "{{ .Metadata.Provider }}", 9 {{- end }} 10 {{- if .Metadata.Service }} 11 :service => true, 12 {{- end }} 13 :timeout => {{ .Metadata.Timeout }} 14 15 {{ range $aname, $action := .Actions }} 16 action "{{ $action.Name }}", :description => "{{ $action.Description }}" do 17 display :{{ $action.Display }} 18 {{ range $iname, $input := $action.Input }} 19 input :{{ $iname }}, 20 :prompt => "{{ $input.Prompt }}", 21 :description => "{{ $input.Description }}", 22 :type => :{{ $input.Type }}, 23 {{- if $input.Default }} 24 :default => {{ $input.Default | goval2rubyval $input.Type }}, 25 {{- end -}} 26 {{- if eq $input.Type "string" }} 27 :validation => {{ $input.Validation | validatorStr }}, 28 :maxlength => {{ $input.MaxLength }}, 29 {{- end }} 30 {{- if eq $input.Type "list" }} 31 :list => {{ $input.Enum | enum2list }}, 32 {{- end }} 33 :optional => {{ $input.Optional }} 34 35 {{ end }} 36 37 {{ range $oname, $output := $action.Output }} 38 output :{{ $oname }}, 39 :description => "{{ $output.Description }}", 40 {{- if $output.Default }} 41 :default => {{ $output.Default | goval2rubyval $output.Type }}, 42 {{- end }} 43 {{- if ne $output.Type "" }} 44 :type => "{{ $output.Type }}", 45 {{- end }} 46 :display_as => "{{ $output.DisplayAs }}" 47 {{ end }} 48 49 {{- if $action.Aggregation }} 50 summarize do 51 {{- range $aname, $aggregate := $action.Aggregation }} 52 aggregate {{ $aggregate.Function }}({{ fmtAggregateArguments $aggregate.OutputName $aggregate.Arguments }}) 53 {{- end }} 54 end 55 {{- end }} 56 end 57 {{ end }}