 (defn create-api [name & routes]
   (let [_apis (filterv identity (map meta (rest routes)))]
     (swap! apis assoc (keyword name) 
-           (struct api-decleration "0.1" "1.1" (<< "~{base}api") (<< "/~{name}") (combine-apis _apis) []))))
+           (api-decleration- "0.1" "1.1" (<< "~{base}api") (<< "/~{name}") (combine-apis _apis) []))))
 
 (defmacro defroutes-
   "A swagger enabled defroute"

   (:require 
     [compojure.route :as route])) 

(def base "http://localhost:8082/")

(defstruct base-swag :apiVersion :swaggerVersion :basepath)

(defstruct resource-listing :apiVersion :swaggerVersion :basepath :apis)

(defstruct api-decleration  :apiVersion :swaggerVersion :basepath :resourcePath :apis :models)

(defstruct bare-api :path :description)

(defstruct api :path :description :operations)

(defstruct operation :httpMethod :nickname :responseClass :parameters :summary :notes :errorResponses)

(defstruct parameter :paramType :name :description :dataType :required :allowableValues :allowMultiple)

(def ^{:doc "see https://github.com/wordnik/swagger-core/wiki/Datatypes"}
  primitives #{:byte :boolean :int :long :float :double :string :Date})

(def resource-listing-data (atom (struct resource-listing)))

(def apis (atom {}))


   )

(def celetial-listing
  (resource-listing- "0.1" "1.1" base 
          [(bare-api- "/api/jobs" "Job scheduling operations")
           (bare-api- "/api/hosts" "Hosts operations")]))

(defroutes api-declerations
  (GET "/hosts" [] {:body (@apis :hosts)})
