Possible to create a custom viewport camera/light representation?

First of all, I’m missing the right word here, hence my vague title. What is the name of this:


Please don’t say it’s a camera :D. I mean how do you call the 3D viewport representation of the camera or light or empty? Is it also a gizmo?

My actual question is: Is it possible to create custom 3D representations with the same properties (selectable but not editable)?