+type SdkListResponse interface {
+ NumItemsAvailable() (int, error)
+ NumItemsContained() (int, error)
+}
+
+type UnstructuredSdkListResponse map[string]interface{}
+
+func (m UnstructuredSdkListResponse) NumItemsAvailable() (numAvailable int, err error) {
+ if itemsAvailable, ok := m["items_available"]; !ok {
+ err = errors.New("Could not find \"items_available\" field in " +
+ "UnstructuredSdkListResponse that NumItemsAvailable was called on.")
+ } else {
+ // TODO(misha): Check whether this assertion will work before casting
+ numAvailable = int(itemsAvailable.(float64))
+ }
+ return
+}
+
+func (m UnstructuredSdkListResponse) NumItemsContained() (numContained int, err error) {
+ if value, ok := m["items"]; ok {
+ // TODO(misha): check whether this assertion will work before casting
+ numContained = len(value.([]interface{}))
+ } else {
+ err = errors.New(`Could not find "items" field in ` +
+ "UnstructuredSdkListResponse that NumItemsContained was called on.")
+ }
+ return
+}
+