refactor as procedural
[arvados.git] / sdk / go / arvados / resource_list.go
1 package arvados
2
3 import "encoding/json"
4
5 // ResourceListParams expresses which results are requested in a
6 // list/index API.
7 type ResourceListParams struct {
8         Select       []string `json:"select,omitempty"`
9         Filters      []Filter `json:"filters,omitempty"`
10         IncludeTrash bool     `json:"include_trash,omitempty"`
11         Limit        *int     `json:"limit,omitempty"`
12         Offset       int      `json:"offset,omitempty"`
13         Order        string   `json:"order,omitempty"`
14 }
15
16 // A Filter restricts the set of records returned by a list/index API.
17 type Filter struct {
18         Attr     string
19         Operator string
20         Operand  interface{}
21 }
22
23 // MarshalJSON encodes a Filter in the form expected by the API.
24 func (f *Filter) MarshalJSON() ([]byte, error) {
25         return json.Marshal([]interface{}{f.Attr, f.Operator, f.Operand})
26 }