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