forked from threatgrid/ctim
-
Notifications
You must be signed in to change notification settings - Fork 0
/
casebook.cljc
42 lines (35 loc) · 1.13 KB
/
casebook.cljc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
(ns ctim.schemas.casebook
(:require
[ctim.schemas.bundle :as bun]
[ctim.schemas.common :as c]
#?(:clj [flanders.core :as f :refer [def-entity-type def-map-type def-eq]]
:cljs [flanders.core :as f :refer-macros [def-entity-type def-map-type def-eq]])))
(def type-identifier "casebook")
(def-eq CasebookTypeIdentifier type-identifier)
(def casebook-desc
"Describes a CTIM Casebook which works like a structured gist")
(def-map-type Text
(f/required-entries
(f/entry :type f/any-str)
(f/entry :text f/any-str)))
(def-entity-type Casebook
{:description casebook-desc
:reference "#"}
c/base-entity-entries
c/sourcable-object-entries
c/describable-entity-entries
(f/required-entries
(f/entry :type CasebookTypeIdentifier))
(f/optional-entries
(f/entry :observables (f/seq-of c/Observable))
(f/entry :bundle bun/Bundle)
(f/entry :texts (f/seq-of Text))))
(def-entity-type NewCasebook
{:description casebook-desc
:reference "#"}
(:entries Casebook)
c/base-new-entity-entries
(f/optional-entries
(f/entry :type CasebookTypeIdentifier)))
(def CasebookRef
(c/ref-for-type type-identifier))