             [clj-time.core :as time]
             [clj-time.format :as time-format]
             [ring.util.http-response :as http-response]
+            [ring.swagger.schema :refer [describe]]
             [schema.core :as s]))
 
 (def Reference


(s/defschema ValidTime
  "See http://stixproject.github.io/data-model/1.2/indicator/ValidTimeType/"
  {(s/optional-key :start_time) Time
   (s/optional-key :end_time) Time})

;;Allowed disposition values are:
(def disposition-map

(s/defschema Tool
  "See http://stixproject.github.io/data-model/1.2/cyboxCommon/ToolInformationType/"
  {:description s/Str
   (s/optional-key :type)
   (describe [v/AttackToolType] "type of the tool leveraged")
   (s/optional-key :references)
   (describe [s/Str] "references to instances or additional information for this tool")
   (s/optional-key :vendor)
   (describe s/Str "information identifying the vendor organization for this tool")
   (s/optional-key :version)
   (describe s/Str "version descriptor of this tool")
   (s/optional-key :service_pack)
   (describe s/Str "service pack descriptor for this tool")
   ;; Not provided: tool_specific_data
   ;; Not provided: tool_hashes
   ;; Not provided: tool_configuration
