]> git.immae.eu Git - github/fretlink/ansible-clever.git/blobdiff - dhall/Config.dhall
add tests for scalability settings
[github/fretlink/ansible-clever.git] / dhall / Config.dhall
index 1b9388ec80597e933c74605c875e1fd70bcd9200..12371f5faf97440256293b3023ddf4cffca1e67d 100644 (file)
@@ -2,6 +2,20 @@ let Addon = (./Addon.dhall).Type
 
 let Vault = ./Vault.dhall
 
+let FixedOrRange =
+      λ(t : Type) → < Fixed : { fixed : t } | Range : { min : t, max : t } >
+
+let fixed = λ(t : Type) → λ(f : t) → (FixedOrRange t).Fixed { fixed = f }
+
+let range = λ(t : Type) → λ(r : { min : t, max : t }) → (FixedOrRange t).Range r
+
+let InstancesConfig = FixedOrRange Natural
+
+let FlavorsConfig = FixedOrRange Text
+
+let ScalingParameters =
+      { flavor : Optional FlavorsConfig, instances : Optional InstancesConfig }
+
 let Config =
         λ(Environment : Type)
       → { clever_app : Text
@@ -15,6 +29,8 @@ let Config =
         , clever_disable_metrics : Bool
         , clever_addons : List Addon
         , clever_env : Environment
+        , clever_build_flavor : Optional Text
+        , clever_scaling : Optional ScalingParameters
         }
 
 let mkConfig =
@@ -32,7 +48,16 @@ let mkConfig =
           , clever_disable_metrics = False
           , clever_addons = [] : List Addon
           , clever_env = {=}
+          , clever_build_flavor = None Text
+          , clever_scaling = None ScalingParameters
           }
         : Config {}
 
-in  { Type = Config, mkConfig = mkConfig }
+in  { Type = Config
+    , mkConfig = mkConfig
+    , ScalingParameters = ScalingParameters
+    , InstancesConfig = InstancesConfig
+    , FlavorsConfig = FlavorsConfig
+    , fixed = fixed
+    , range = range
+    }