I'd like us to move forward with this.
The option of using 'attach' action does not exist, because, as Eoghan observed,
we would be executing an action on an entity which doesn't exist in the collection:
(.../api/vms/{vm:id}/disks/???-no entity-???/attach)
There are two options left on the table; let's see if we can agree on one of them:
1)
POST/api/vms/{vm:id}/disks
<disk id="{disk:id}"/> => attach
disk
DELETE .../api/vms/{vm:id}/disks/{disk:id}
<disk><detach>true</detach><disk> =>
detach disk
Pros: symmetrical
Cons: risky (if user wants to detach but forgot to give parameter, disk will be deleted).
2)
POST/api/vms/{vm:id}/disks
<disk id="{disk:id}"/> => attach
disk
DELETE .../api/vms/{vm:id}/disks/{disk:id}/detach => detach disk
Pros: not dangerous
Cons: asymmetrical, attach done like add, but detach done using action.
No solution is perfect but we need to decide.
Thanks,
Ori.