DEV-20292 part 1

Models
DEV-20292 part 2
DEV-20292 part 3
DEV-20292 part 4
Merge remote-tracking branch 'origin/DEV-20292'