]> git.immae.eu Git - github/fretlink/ansible-clever.git/blame - dhall/Config.dhall
Merge pull request #74 from clementd-fretlink/service-dependencies
[github/fretlink/ansible-clever.git] / dhall / Config.dhall
CommitLineData
2acb3d4f 1let Addon = (./Addon.dhall).Type
50a9e710 2
f6422761
CD
3let ServiceDependency = (./ServiceDependency.dhall).Type
4
2acb3d4f
CD
5let Vault = ./Vault.dhall
6
96f02eb1
CD
7let FixedOrRange =
8 λ(t : Type) → < Fixed : { fixed : t } | Range : { min : t, max : t } >
9
10let fixed = λ(t : Type) → λ(f : t) → (FixedOrRange t).Fixed { fixed = f }
11
12let range = λ(t : Type) → λ(r : { min : t, max : t }) → (FixedOrRange t).Range r
13
14let InstancesConfig = FixedOrRange Natural
15
16let FlavorsConfig = FixedOrRange Text
17
18let ScalingParameters =
19 { flavor : Optional FlavorsConfig, instances : Optional InstancesConfig }
20
2acb3d4f
CD
21let 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
40let 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
62in { Type = Config
63 , mkConfig = mkConfig
64 , ScalingParameters = ScalingParameters
65 , InstancesConfig = InstancesConfig
66 , FlavorsConfig = FlavorsConfig
67 , fixed = fixed
68 , range = range
69 }