]>
Commit | Line | Data |
---|---|---|
2acb3d4f | 1 | let Addon = (./Addon.dhall).Type |
50a9e710 | 2 | |
2acb3d4f CD |
3 | let Vault = ./Vault.dhall |
4 | ||
96f02eb1 CD |
5 | let FixedOrRange = |
6 | λ(t : Type) → < Fixed : { fixed : t } | Range : { min : t, max : t } > | |
7 | ||
8 | let fixed = λ(t : Type) → λ(f : t) → (FixedOrRange t).Fixed { fixed = f } | |
9 | ||
10 | let range = λ(t : Type) → λ(r : { min : t, max : t }) → (FixedOrRange t).Range r | |
11 | ||
12 | let InstancesConfig = FixedOrRange Natural | |
13 | ||
14 | let FlavorsConfig = FixedOrRange Text | |
15 | ||
16 | let ScalingParameters = | |
17 | { flavor : Optional FlavorsConfig, instances : Optional InstancesConfig } | |
18 | ||
2acb3d4f CD |
19 | let Config = |
20 | λ(Environment : Type) | |
21 | → { clever_app : Text | |
22 | , clever_orga : Text | |
23 | , clever_secret : Text | |
24 | , clever_token : Text | |
25 | , clever_syslog_server : Optional Text | |
26 | , clever_domain : Optional Text | |
27 | , clever_app_tasks_file : Optional Text | |
28 | , clever_haskell_entry_point : Optional Text | |
29 | , clever_disable_metrics : Bool | |
30 | , clever_addons : List Addon | |
31 | , clever_env : Environment | |
1c139365 | 32 | , clever_build_flavor : Optional Text |
96f02eb1 | 33 | , clever_scaling : Optional ScalingParameters |
2acb3d4f CD |
34 | } |
35 | ||
36 | let mkConfig = | |
37 | λ(vault : Vault) | |
38 | → λ(app : Text) | |
39 | → λ(organization : Text) | |
40 | → { clever_app = app | |
41 | , clever_orga = organization | |
42 | , clever_secret = vault.secret | |
43 | , clever_token = vault.token | |
44 | , clever_syslog_server = None Text | |
45 | , clever_domain = None Text | |
46 | , clever_app_tasks_file = None Text | |
47 | , clever_haskell_entry_point = None Text | |
48 | , clever_disable_metrics = False | |
49 | , clever_addons = [] : List Addon | |
50 | , clever_env = {=} | |
1c139365 | 51 | , clever_build_flavor = None Text |
96f02eb1 | 52 | , clever_scaling = None ScalingParameters |
2acb3d4f CD |
53 | } |
54 | : Config {} | |
55 | ||
96f02eb1 CD |
56 | in { Type = Config |
57 | , mkConfig = mkConfig | |
58 | , ScalingParameters = ScalingParameters | |
59 | , InstancesConfig = InstancesConfig | |
60 | , FlavorsConfig = FlavorsConfig | |
61 | , fixed = fixed | |
62 | , range = range | |
63 | } |