>>"I would like to clarify how I can correctly use those definitions - when or where is each one of them intended to be used?"
--> The enumerated type CYBLE_GAP_PUBLIC_ADDR is a part of the enum variable CYBLE_GAP_ADDR_TYPE_T. The usage of this enum variable is only associated with the API CyBle_GapGenerateDeviceAddress().
--> Where as CYBLE_GAP_BD_ADDR_T is a structure that stores the 6 byte address as well as the type of the address (primarily public or random).
So there is no need to get confused. Please go through the API definition, description and use the corresponding enumerator/structure accordingly.
Hope this helps !
Thank you, Ganesh! For me, the confusion came naturally - I was in a hurry, but It's clear now.