 
 (defn scan
   "Retrieves items from a table (unindexed) with options:
-    :attr-conds     - {<attr> [comparison-operator <values>] ...}
+    :attr-conds     - {<attr> [comparison-operator <values>] ...}.
     :limit          - max num >=1 of items to eval (≠ num of matching items).
     :last-prim-kv   - primary key-val from which to eval, useful for paging.
     :return         - e/o #{:all-attributes :all-projected-attributes :count
                             [<attr> ...]}.
-
     :total-segments - total number of parallel scan segments.
     :segment        - calling worker's segment number (>=0, <=total-segments).
 


(defn put-item
  "Adds an item (Clojure map) to a table with options:
    :return   - e/o #{:none :all-old :updated-old :all-new :updated-new}
    :expected - a map of item attribute/condition pairs, all of which must be
                met for the operation to succeed. e.g.:
                  {<attr> <expected-value> ...}


(defn query
  "Retries items from a table (indexed) with options:
    prim-key-conds - {<key-attr> [comparison-operator <values>] ...}.
    :last-prim-kv  - primary key-val from which to eval, useful for paging.
    :return        - e/o #{:all-attributes :all-projected-attributes :count
                           [<attr> ...]}.
    :index         - name of a secondary index to query.
    :order         - index scaning order e/o #{:asc :desc}.
    :limit         - max num >=1 of items to eval (≠ num of matching items).
    :consistent?   - use strongly (rather than eventually) consistent reads?

  For unindexed item retrievel see `scan`."
  [creds table prim-key-conds
