PIM-2884: Define attribute type classes as parameters

| Q                    | A
| -------------------- | ---
| Bug fix?             | N
| New feature?         | Y
| BC breaks?           | N
| CI currently passes? | Y
| Tests pass?          | Y
| Scenarios pass?      | Y
| Checkstyle issues?   | N
| Changelog updated?   | Y
| Fixed tickets        | PIM-2884
| Doc PR               |