Workflow: I think uploading would be a 2 step process. 1. User uploads role version tar Use core's upload API to /artifacts/ creating new deliver the Artifact record into Pulp's content addressable storage 2. User creates a new role by posting to /content/ansible/roles/ (optional) 3. User creates a new role version by posting to /content/ansible/roles/<uuid>/versions/. The fields would be role (href), version or version name (string), and artifact (href) Create the content unit with the additional data such as the Role name, version, etc.