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 }}