              KeySchemaElement
              KeysAndAttributes
              LocalSecondaryIndex
+             LocalSecondaryIndexDescription
              Projection
              ProvisionedThroughput
              ProvisionedThroughputDescription

     (when-let [c (.getConsistentRead  result)] {:consistent c})
     (when-let [k (.getKeys            result)] {:keys (utils/fmap as-map (into [] k))})))

  ;; TODO CreateTableResult, ListTablesResult, UpdateTableResult

  BatchGetItemResult
  (as-map [result]

      {:name          (.getTableName table)
       :creation-date (.getCreationDateTime table)
       :item-count    (.getItemCount table)
       :size          (.getTableSizeBytes table)
       :key-schema    (as-map (.getKeySchema table))
       :throughput    (as-map (.getProvisionedThroughput table))
       :indexes       (as-map (.getLocalSecondaryIndexes table))
       :status        (-> (.getTableStatus table) (str/lower-case) (keyword))}))

  LocalSecondaryIndexDescription
  (as-map [idx]
    {:name       (.getIndexName idx)
     :size       (.getIndexSizeBytes idx)
     :item-count (.getItemCount idx)
     :key-schema (as-map (.getKeySchame idx))
     :projection (as-map (.getProjection idx))})

  ProvisionedThroughputDescription
  (as-map [throughput]
