-
Notifications
You must be signed in to change notification settings - Fork 1
/
config.clj
27 lines (22 loc) · 953 Bytes
/
config.clj
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
(ns common-clj.schemata.config
(:require [schema.core :as s]
[common-clj.schema-helpers :as sh]))
(def dynamo-table s/Keyword)
(def key-name s/Keyword)
(def key-type (s/enum :s :n :ss :ns :b :bs))
(def DynamoDefinition
{dynamo-table {:primary-key [(s/one key-name "key-name")
(s/one key-type "key-type")]
(s/optional-key :secondary-key) [(s/one key-name "key-name")
(s/one key-type "key-type")]}})
(def AppConfig
(sh/loose-schema
{:app-name s/Keyword
(s/optional-key :kafka-server) s/Str
(s/optional-key :dynamo-endpoint) s/Str
(s/optional-key :aws-access-key) s/Str
(s/optional-key :aws-secret-key) s/Str
(s/optional-key :http-port) s/Int
(s/optional-key :dynamo-tables) DynamoDefinition}))
(def Env
(s/enum :test :dev :prod))