      context (assoc coll-concept :umm-concept collection))
     {:concept coll-concept
      :warnings warnings}))
+
+(defn-timed save-collection
+  "Store a concept in mdb and indexer.
+   Return entry-titile, concept-id, revision-id, and warnings."
+  [context concept validation-options]
+  (let [{:keys [concept warnings]} (validate-and-prepare-collection context
+                                                                    concept
+                                                                    validation-options)]
+    (let [{:keys [concept-id revision-id]} (mdb/save-concept context concept)
+          entry-title (get-in concept [:extra-fields :entry-title])]
+      {:entry-title entry-title
+       :concept-id concept-id
+       :revision-id revision-id
+       :warnings warnings})))
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;; Granule Service Functions
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 (defn- validate-granule-collection-ref
   "Throws bad request exception when collection-ref is missing required fields."

    [cmr.umm-spec.versioning :as ver]
    [cmr.umm.collection.entry-id :as eid]))

(defn add-extra-fields-for-collection
  "Returns collection concept with fields necessary for ingest into metadata db
  under :extra-fields."

    {:collection sanitized-collection
     :warnings warnings}))

(defn-timed validate-and-prepare-collection
  "Validates the collection and adds extra fields needed for metadata db. Throws a service error
  if any validation issues are found and errors are enabled, otherwise returns errors as warnings."
