menuconfig AWS_IOT_SDK
    bool "Amazon Web Services IoT Platform"
    help
       Select this option to enable support for the AWS IoT platform,
       via the esp-idf component for the AWS IoT Device C SDK.

config AWS_IOT_MQTT_HOST
    string "AWS IoT Endpoint Hostname"
    depends on AWS_IOT_SDK
    default ""
    help
        Default endpoint host name to connect to AWS IoT MQTT/S gateway

        This is the custom endpoint hostname and is specific to an AWS
        IoT account. You can find it by logging into your AWS IoT
        Console and clicking the Settings button. The endpoint hostname
        is shown under the "Custom Endpoint" heading on this page.

        If you need per-device hostnames for different regions or
        accounts, you can override the default hostname in your app.

config AWS_IOT_MQTT_PORT
    int "AWS IoT MQTT Port"
    depends on AWS_IOT_SDK
    default 8883
    range 0 65535
    help
        Default port number to connect to AWS IoT MQTT/S gateway

        If you need per-device port numbers for different regions, you can
        override the default port number in your app.


config AWS_IOT_MQTT_TX_BUF_LEN
    int "MQTT TX Buffer Length"
    depends on AWS_IOT_SDK
    default 512
    range 32 65536
    help
        Maximum MQTT transmit buffer size. This is the maximum MQTT
        message length (including protocol overhead) which can be sent.

        Sending longer messages will fail.

config AWS_IOT_MQTT_RX_BUF_LEN
    int "MQTT RX Buffer Length"
    depends on AWS_IOT_SDK
    default 512
    range 32 65536
    help
        Maximum MQTT receive buffer size. This is the maximum MQTT
        message length (including protocol overhead) which can be
        received.

        Longer messages are dropped.



config AWS_IOT_MQTT_NUM_SUBSCRIBE_HANDLERS
    int "Maximum MQTT Topic Filters"
    depends on AWS_IOT_SDK
    default 5
    range 1 100
    help
        Maximum number of concurrent MQTT topic filters.


config AWS_IOT_MQTT_MIN_RECONNECT_WAIT_INTERVAL
    int "Auto reconnect initial interval (ms)"
    depends on AWS_IOT_SDK
    default 1000
    range 10 3600000
    help
        Initial delay before making first reconnect attempt, if the AWS IoT connection fails.
        Client will perform exponential backoff, starting from this value.

config AWS_IOT_MQTT_MAX_RECONNECT_WAIT_INTERVAL
    int "Auto reconnect maximum interval (ms)"
    depends on AWS_IOT_SDK
    default 128000
    range 10 3600000
    help
        Maximum delay between reconnection attempts. If the exponentially increased delay
        interval reaches this value, the client will stop automatically attempting to reconnect.

menu "Thing Shadow"
    depends on AWS_IOT_SDK

config AWS_IOT_OVERRIDE_THING_SHADOW_RX_BUFFER
    bool "Override Shadow RX buffer size"
    depends on AWS_IOT_SDK
    default n
    help
        Allows setting a different Thing Shadow RX buffer
        size. This is the maximum size of a Thing Shadow
        message in bytes, plus one.

        If not overridden, the default value is the MQTT RX Buffer length plus one. If overriden, do not set higher than the default value.

config AWS_IOT_SHADOW_MAX_SIZE_OF_RX_BUFFER
    int "Maximum RX Buffer (bytes)"
    depends on AWS_IOT_OVERRIDE_THING_SHADOW_RX_BUFFER
    default 513
    range 32 65536
    help
        Allows setting a different Thing Shadow RX buffer size.
        This is the maximum size of a Thing Shadow message in bytes,
        plus one.


config AWS_IOT_SHADOW_MAX_SIZE_OF_UNIQUE_CLIENT_ID_BYTES
    int "Maximum unique client ID size (bytes)"
    depends on AWS_IOT_SDK
    default 80
    range 4 1000
    help
        Maximum size of the Unique Client Id.

config AWS_IOT_SHADOW_MAX_SIMULTANEOUS_ACKS
    int "Maximum simultaneous responses"
    depends on AWS_IOT_SDK
    default 10
    range 1 100
    help
        At any given time we will wait for this many responses. This will correlate to the rate at which the shadow actions are requested

config AWS_IOT_SHADOW_MAX_SIMULTANEOUS_THINGNAMES
    int "Maximum simultaneous Thing Name operations"
    depends on AWS_IOT_SDK
    default 10
    range 1 100
    help
       We could perform shadow action on any thing Name and this is maximum Thing Names we can act on at any given time

config AWS_IOT_SHADOW_MAX_JSON_TOKEN_EXPECTED
    int "Maximum expected JSON tokens"
    depends on AWS_IOT_SDK
    default 120
    help
        These are the max tokens that is expected to be in the Shadow JSON document. Includes the metadata which is published

config AWS_IOT_SHADOW_MAX_SHADOW_TOPIC_LENGTH_WITHOUT_THINGNAME
    int "Maximum topic length (not including Thing Name)"
    depends on AWS_IOT_SDK
    default 60
    range 10 1000
    help
       All shadow actions have to be published or subscribed to a topic which is of the format $aws/things/{thingName}/shadow/update/accepted. This refers to the size of the topic without the Thing Name

config AWS_IOT_SHADOW_MAX_SIZE_OF_THING_NAME
    int "Maximum Thing Name length"
    depends on AWS_IOT_SDK
    default 20
    range 4 1000
    help
        Maximum length of a Thing Name.

endmenu  # Thing Shadow