#
# Copyright (c) 2018, 2019 O.S.Systems
#
# SPDX -License-Identifier: Apache-2.0
#

menuconfig UPDATEHUB
	bool"UpdateHub Firmware Over-the-Air support"
	select FLASH
	select REBOOT
	select IMG_MANAGER
	select BOOTLOADER_MCUBOOT
	select MPU_ALLOW_FLASH_WRITE
	select NETWORKING
	select REQUIRES_FULL_LIBC
	select NET_UDP
	select NET_SOCKETS
	select NET_SOCKETS_POSIX_NAMES
	select COAP
	select NET_CONFIG_SETTINGS
	select DNS_RESOLVER
	select JSON_LIBRARY
	select TINYCRYPT
	select TINYCRYPT_SHA256
	select HWINFO
	help
	  UpdateHub is an enterprise-grade solution which makes simple to
	  remotely update all your embedded devices in the field. It
	  handles all aspects related to sending Firmware Over-the-Air
	  (FOTA) updates with maximum security and efficiency, while you
	  focus in adding value to your product.

config UPDATEHUB_POLL_INTERVAL
	int "Time to poll interval (in minutes)"
	default 1440
	range 0 43200
	depends on UPDATEHUB
	help
	  Set the interval that the UpdateHub update server will be polled.
	  This time interval is zero and 43200 minutes(30 days).

config UPDATEHUB_PRODUCT_UID
	string "Product Unique Identifier (UID)"
	depends on UPDATEHUB
	help
	  The product unique identifier is used when communicating
	  with the UpdateHub server.

config UPDATEHUB_SUPPORTED_HARDWARE_MAX
	int "Max number of supported hardware"
	default 1
	range 1 100
	depends on UPDATEHUB
	help
	  Configure the max number of supported hardware
	  by the same image.

config UPDATEHUB_CE
	bool "Use UpdateHub Community Edition Sever"
	depends on UPDATEHUB
	help
	  Allow the use of UpdateHub Community
	  Server (updatehub-ce) as alternative to the
	  updatehub.io enterprise server.

config UPDATEHUB_SERVER
	string "User address for the updatehub-ce-server"
	depends on UPDATEHUB_CE
	help
	  This configuration is default, if need to use
	  other address, must be set on the UpdateHub shell

config UPDATEHUB_SHELL
	bool "Enable UpdateHub shell utilities"
	depends on UPDATEHUB
	depends on SHELL
	select KERNEL_SHELL
	help
	  Activate shell module that provides UpdateHub commands like

config UPDATEHUB_DTLS
	bool"Activate communication CoAPS/DTLS"
	depends on UPDATEHUB
	select MBEDTLS
	select MBEDTLS_ENABLE_HEAP
	select NET_SOCKETS_SOCKOPT_TLS
	select NET_SOCKETS_ENABLE_DTLS
	help
	  Enables DTLS communication between the UpdateHub
	  client and the server

module = UPDATEHUB
module-str = Log level for UpdateHub
module-help = Enables logging for UpdateHub code.
source "subsys/logging/Kconfig.template.log_config"
