theforeman/foreman — pull request #1745 by isratrade (2014-09-08 08:52:42+00:00)
Title: fixed #7372 - API v2 - accept PUT/POST requests with wrapped root node to add/remove has_many associations of child nodes

previous commit bbf64d9900262e42afaec6dd84934ae601c1d4f3 only checks for has_many associations of child nodes if the request was not wrapped (no root node). Since POST/PUT is documented as wrapped, it should support this to.
Therefore, there will be two main ways to add/remove associations, either by

1) passing *_ids

{
"operatingsystem": {
"name": "CentOs",
"config_template_ids": [36, 12, 40]
}
}

2) Passing child nodes

{
"operatingsystem": {
"name": "CentOs",
"config_templates": [ {
"id": 36,
"name": "CentOS-enabled-post"
}, {
"id": 12,
"name": "Grubby Default"
}, {
"id": 40,
"name": "Katello Kickstart Default",
}
]
}
}