# AWS Provider Configuration Schema let defaults = import "./aws-defaults.ncl" in { # Contract definitions AWSAuth = { interface | String, # API or CLI region | String, }, AWSPaths = { base | String, cache | String, state | String, }, AWSAPI = { url | String, timeout | Number, region | String, }, AWSProvider = { name | String, enabled | Bool, workspace | String, auth | AWSAuth, paths | AWSPaths, api | AWSAPI, }, # Hybrid interface defaults = defaults, make_auth | not_exported = fun o => defaults.auth & o, make_paths | not_exported = fun o => defaults.paths & o, make_api | not_exported = fun o => defaults.api & o, make_aws | not_exported = fun o => defaults.aws & o, # Default instances DefaultAuth = defaults.auth, DefaultPaths = defaults.paths, DefaultAPI = defaults.api, DefaultAWSProvider = defaults.aws, }