55 lines
943 B
Plaintext
Raw Normal View History

# 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,
}