{{define "service"}} {{- $Imps := .Imps -}} package {{.Manifest.Package}} import ( {{- range .Imps.ImportLines}} {{.Alias}} {{quote .Path}} {{- end}} ) const ServiceType = {{quote .Manifest.ServiceType}} {{range .SCPD.SortedActions}} {{- template "action" args "Action" . "Imps" $Imps}} {{end}} {{end}} {{define "action"}} {{- $Imps := .Imps}} type {{.Action.Name}} struct{ Request {{.Action.Name}}Request Response {{.Action.Name}}Response } var _ {{index $Imps.TypeRefByTypeName "SOAPActionInterface"}} = &{{.Action.Name}}{{"{}"}} func (a *{{.Action.Name}}) ServiceType() string { return ServiceType } func (a *{{.Action.Name}}) ActionName() string { return {{quote .Action.Name}} } func (a *{{.Action.Name}}) RefRequest() any { return &a.Request } func (a *{{.Action.Name}}) RefResponse() any { return &a.Response } type {{.Action.Name}}Request struct {{- template "args" args "Args" .Action.InArgs "Imps" $Imps}} type {{.Action.Name}}Response struct {{- template "args" args "Args" .Action.OutArgs "Imps" $Imps}} {{- end}} {{define "args"}} {{- $Imps := .Imps -}} { {{- with .Args}} {{- range .}} {{.Name}} {{index $Imps.TypeRefByTypeName .RelatedStateVariable.DataType}} {{- end}} {{end -}} } {{- end}}