          (for [[a-name [a-type a-value]] attrs]
            (prepare-message-attrs a-name a-type a-value)))))
 
-(let [target->elem
-      {:create-queue  [:one :queue-url]
-       :get-queue-url [:one :queue-url]
-       :list-queues   [:many :queue-url]
-       :list-dead-letter-source-queues [:many :queue-url]}]
-  (defn extract-response-value [target resp]
-    (if-let [[tag elem] (target->elem target)]
-      (case tag
-        :one  (x/child-content resp elem)
-        :many (map x/content (x/children resp elem)))
-      resp)))
-
 (defmulti  restructure-response (fn [target body] target))
 (defmethod restructure-response :default [_ body] body)
 

             {:body :body :md-5-of-body :md5
              :receipt-handle :receipt :message-id :id}))
      ;; User-defined attributes
      (assoc :attrs (message-attributes message))))

(defmethod restructure-response :receive-message [_ body]
  (for [message (x/children body :message)]
    (restructure-message message)))

(def enum-keys-out #{})

(defrecord SQSService [endpoint version max-retries]
  eulalie/AmazonWebService

      (assoc req :body
             (as-> body %
               (q/expand-sequences  % (target->seq-spec target))
               (prepare-body target %)))))

  (transform-request [_ body]
