Merge branch 'master' into 9998-unsigned_manifest
[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         Limit   *int     `json:"limit,omitempty"`
11         Offset  int      `json:"offset,omitempty"`
12         Order   string   `json:"order,omitempty"`
13 }
14
15 // A Filter restricts the set of records returned by a list/index API.
16 type Filter struct {
17         Attr     string
18         Operator string
19         Operand  interface{}
20 }
21
22 // MarshalJSON encodes a Filter in the form expected by the API.
23 func (f *Filter) MarshalJSON() ([]byte, error) {
24         return json.Marshal([]interface{}{f.Attr, f.Operator, f.Operand})
25 }