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
, clever_disable_metrics : Bool
, clever_addons : List Addon
, clever_env : Environment
+ , clever_build_flavor : Optional Text
+ , clever_scaling : Optional ScalingParameters
}
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
+ }