We now got a custom content model applied with a custom content type called acme:document. We can use it when uploading a file as follows:
$ curl -X POST -F filedata=@test.txt -F "name=somefile.txt" -F "nodeType=acme:document" -F "acme:documentId=DOC001" -F "aspectNames=acme:securityClassified" -F "acme:securityClassification=Public" -F "cm:title=My text" -F "cm:description=My custom text document description" -F "relativePath=My Custom Folder" -H 'Authorization: Basic VElDS0VUXzA4ZWI3ZTJlMmMxNzk2NGNhNTFmMGYzMzE4NmNjMmZjOWQ1NmQ1OTM=' http://localhost:8080/alfresco/api/-default-/public/alfresco/versions/1/nodes/-root-/children | jq % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 1957 100 804 100 1153 761 1091 0:00:01 0:00:01 --:--:-- 1853 { "entry": { "isFile": true, "createdByUser": { "id": "admin", "displayName": "Administrator" }, "modifiedAt": "2019-09-09T07:38:55.060+0000", "nodeType": "acme:document", "content": { "mimeType": "text/plain", "mimeTypeName": "Plain Text", "sizeInBytes": 34, "encoding": "ISO-8859-1" }, "parentId": "69470c63-ea8f-4a93-a408-673d5668e369", "aspectNames": [ "cm:versionable", "cm:titled", "cm:auditable", "acme:securityClassified", "cm:author" ], "createdAt": "2019-09-09T07:38:55.060+0000", "isFolder": false, "modifiedByUser": { "id": "admin", "displayName": "Administrator" }, "name": "somefile.txt", "id": "d8f561cc-e208-4c63-a316-1ea3d3a4e10e", "properties": { "cm:title": "My text", "acme:securityClassification": "Public", "cm:versionType": "MAJOR", "acme:documentId": "DOC001", "cm:versionLabel": "1.0", "cm:description": "My custom text document description" } } }
We can see that the custom content type (i.e. acme:document) has been set correctly, including the property it contains (i.e. acme:documentId). At the same time we also show how to apply new aspects with the aspectNames field (note that some aspects are set automatically when you upload a file, such as cm:author, cm:auditable etc). So this call is quite powerful.