Generic mutations with dependent objects

Any kinds of dependent objects, including system dependents, must be passed using generic input types when calling the generic changeObject() mutation. You can use the generic mutation for a document to combine other actions in an otherwise unsupported way, however, this is only for example purposes.
The following example updates a Document object with permissions.
mutation {
  changeObject(
    repositoryIdentifier:"OS1"
    classIdentifier:"Document"
    identifier:"{90E1A36A-0000-C215-94FA-6732D7E65840}"
    objectProperties:[
      {
        identifier:"Permissions"
        dependentObjectListValue:{
          replace:[
            {
              classIdentifier:"AccessPermission"
              properties:[
                {InheritableDepth:0}
                {GranteeName:"CEAdmin"}
                {AccessType:1}
                {AccessMask:998903}
              ]
            }
            {
              classIdentifier:"AccessPermission"
              properties:[
                {InheritableDepth:0}
                {GranteeName:"intg_admin"}
                {AccessType:1}
                {AccessMask:998903}
              ]
            }
            {
              classIdentifier:"AccessPermission"
              properties:[
                {InheritableDepth:0}
                {GranteeName:"CEAdminGroup"}
                {AccessType:1}
                {AccessMask:998903}
              ]
            }
            {
              classIdentifier:"AccessPermission"
              properties:[
                {InheritableDepth:0}
                {GranteeName:"#AUTHENTICATED-USERS"}
                {AccessType:1}
                {AccessMask:131201}
              ]
            }
            {
              classIdentifier:"AccessPermission"
              properties:[
                {InheritableDepth:0}
                {GranteeName:"pwtest100"}
                {AccessType:1}
                {AccessMask:131201}
              ]
            }
          ]
        }
      }
    ]
  )
  {
    className
    ... on Document {
      id
      name
      versionStatus
      majorVersionNumber
      minorVersionNumber
    }
  }
}