var stack = new Stack<Item>(Configuration.Instance.GetItemsByKind(Kind.TriggerEvent)); return stack with size 1 although I have some user define events

You do get the expected result. You will need to use recursive methods and GetChildren to make a “flat” list or stack if this is what you want.

The ConfigAccessViaSDK sample illustrates how to see the result of GetItems or GetItemsByKind.

https://doc.developer.milestonesys.com/html/index.html?base=samples/configaccess_sample.html&tree=tree_2.html

Alternatively use this very neat approach. https://developer.milestonesys.com/s/question/0D53X00006Sow5dSAB/how-to-get-the-available-cameras

I tested a method called “CheckChildren(Item parent)” in CameraStreamResolution sample. This is a standalone sample, but I copied the method to my test plugin, and it works. (In the method, Kind.Camera is used as akind so you will need to change it for sure.)