provisioning-catalog/providers/aws/nickel/contracts.ncl

79 lines
1.8 KiB
Text
Raw Permalink Normal View History

# AWS Provider Contracts - Type Definitions
# Migrated from: provisioning/extensions/providers/aws/kcl/
{
# Permission for Security Groups
Permission = {
name | String,
protocol | String, # "tcp" | "udp"
fromPort | Number,
toPort | Number,
ranges | String,
},
# Security Group definition
SecurityGroup = {
id | String | optional,
name | String,
perms, # Bare field: array of permissions
},
# Required Plan settings for instance type selection
ReqPlan = {
scale | Bool,
arch | String, # "x86_64" | "arm64"
cores | Number,
memory | Number,
infaces | Number,
ena | String,
gen | String | optional,
},
# AWS Storage configuration
StorageAws = {
volname | String,
voltype | String, # standard, io1, io2, gp2, gp3, sc1, st1
zone | String,
voldevice | String,
labels | String,
deletetermination | Bool,
device | String,
size | Number,
},
# AWS provision environment settings
ProvisionEnvAws = {
vpc | String,
subnet | String,
cidr_block | String,
avail_zone | String,
sg | SecurityGroup | optional,
},
# AWS provision settings (main and private)
ProvisionAws = {
main | ProvisionEnvAws,
priv | ProvisionEnvAws | optional,
},
# AWS server configuration
ServerAws = {
hostname | String,
title | String,
network_private_ip | String | optional,
extra_hostnames, # Bare field: array of strings
taskservs, # Bare field: array of taskserv defs
clusters, # Bare field: array of cluster defs
storages, # Bare field: array of storage configs
lock | Bool,
user | String,
user_home | String,
user_ssh_port | Number,
labels | String,
network_public_ipv4 | Bool,
network_public_ipv6 | Bool,
network_utility_ipv4 | Bool,
network_utility_ipv6 | Bool,
},
}