import "os"
#import "deploy"

# read token from a local path outside repo:
$f = "../localsecrets/apitoken.txt"
$token = os.readfile($f)

# alternatively, read from the deploy:
# $token = deploy.readfile(...)

# or give the string directly:
# $token = "..."

hetzner:vm "resourcedemo" {
	# generate a token on https://console.hetzner.cloud
	# NOTE: SSH keys must also be registered via console
	apitoken => $token,

	# set server state (``, `absent`,`exists`, `running`, `off`)
	# default: undefined state. Don't specify this param, or set ""
	state => "absent",

	# choose server protection policy (``, `ignore`, `ifneeded`)
	# default: `` throws error to prevent destructive rebuilds
	allowrebuild => "",

	# serverconfig params: full options must be requested from Hetzner API
	# static reference on https://github.com/JefMasereel/hcloud-go-getopts
	# for example:
	servertype => "cx11", 		# `cx11`, `cx21`, `cx31`
	datacenter => "hel1-dc2", 	# `nbg1-dc3`, `fsn1-dc14`, `hel1-dc2`
	image => "debian-10", 		# `centos-7`, `ubuntu-18.04`, `debian-10`

	# provide a cloud-init script that will be run at server creation (optional)
	userdata => "",

	# set rescue mode (`linux32`/`linux64`/`freebsd64`/``)
	# default: `` disables rescue mode
	serverrescuemode => "linux64",

	# list the SSH keys to be enabled when using rescue mode
	# note: must be a subset of the keys registered with the project!
	serverrescuekeys => ["bootstrap-test-key",],

	# set wait interval and timeout in seconds
	waitinterval => 1,
	waittimeout => 5*60,

	# set polling interval in seconds
	Meta:poll => 10,
}
