https://github.com/puppetlabs/puppet/pull/6987 refactored the AIX User/Group providers. As part of this refactor, it introduced a mapping DSL that lets you specify a mapping between a Puppet property and an AIX attribute, which consists of the Puppet property name and AIX attribute name; a conversion function that takes a property value and converts it to an AIX attribute value; and another conversion function that takes the AIX attribute value and converts it to a property value. This is generic code that specifies a mapping between a Puppet property and some OS attribute. Thus, it is possible that some of this code could be re-used in other providers. This ticket should investigate that, and possibly go ahead and carry out the refactor.