9162: Add keep-balance
[arvados.git] / sdk / go / arvados / resource_list.go
diff --git a/sdk/go/arvados/resource_list.go b/sdk/go/arvados/resource_list.go
new file mode 100644 (file)
index 0000000..e9ea268
--- /dev/null
@@ -0,0 +1,25 @@
+package arvados
+
+import "encoding/json"
+
+// ResourceListParams expresses which results are requested in a
+// list/index API.
+type ResourceListParams struct {
+       Select  []string `json:"select,omitempty"`
+       Filters []Filter `json:"filters,omitempty"`
+       Limit   *int     `json:"limit,omitempty"`
+       Offset  int      `json:"offset,omitempty"`
+       Order   string   `json:"order,omitempty"`
+}
+
+// A Filter restricts the set of records returned by a list/index API.
+type Filter struct {
+       Attr     string
+       Operator string
+       Operand  interface{}
+}
+
+// MarshalJSON encodes a Filter in the form expected by the API.
+func (f *Filter) MarshalJSON() ([]byte, error) {
+       return json.Marshal([]interface{}{f.Attr, f.Operator, f.Operand})
+}