]>
Commit | Line | Data |
---|---|---|
1 | let Addon = (./Addon.dhall).Type | |
2 | ||
3 | let ServiceDependency = (./ServiceDependency.dhall).Type | |
4 | ||
5 | let Vault = ./Vault.dhall | |
6 | ||
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 | ||
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 | |
33 | , clever_service_dependencies : List ServiceDependency | |
34 | , clever_env : Environment | |
35 | , clever_build_flavor : Optional Text | |
36 | , clever_scaling : Optional ScalingParameters | |
37 | , clever_restart_only : Optional Bool | |
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 | |
54 | , clever_service_dependencies = [] : List ServiceDependency | |
55 | , clever_env = {=} | |
56 | , clever_build_flavor = None Text | |
57 | , clever_scaling = None ScalingParameters | |
58 | , clever_restart_only = None Bool | |
59 | } | |
60 | : Config {} | |
61 | ||
62 | in { Type = Config | |
63 | , mkConfig = mkConfig | |
64 | , ScalingParameters = ScalingParameters | |
65 | , InstancesConfig = InstancesConfig | |
66 | , FlavorsConfig = FlavorsConfig | |
67 | , fixed = fixed | |
68 | , range = range | |
69 | } |