@type t() :: %NervesHubLink.Configurator.Config{
archive_public_keys: [binary()],
connect: boolean(),
connect_wait_for_network: boolean(),
data_path: Path.t(),
device_api_host: String.t(),
device_api_port: String.t(),
device_api_sni: charlist(),
fwup_devpath: Path.t(),
fwup_env: [{String.t(), String.t()}],
fwup_public_keys: [binary()],
fwup_task: String.t(),
heartbeat_interval_msec: integer(),
host: String.t(),
nerves_key: any(),
params: map(),
remote_iex: boolean(),
request_archive_public_keys: boolean(),
request_fwup_public_keys: boolean(),
shared_secret: [product_key: String.t(), product_secret: String.t()],
sni: String.t(),
socket: any(),
ssl: [:ssl.tls_client_option()]
}