# Solid Containers
### Suggestion 1
```http
PUT /task-1
Link: </task-1>; anchor="/project-1"; rel="http:/pm.example/#hasTask"
```
Where `project-1` uses shape tree which has reference between projects and tasks based on `ex:hasTask` predicate.
-----
With `/`
```http
PUT /project-1/task-1
```
----
Does it violate PUT definition? If it does for both or for just one?
### Suggestion 2
```http
PUT /task-1
```
And add a link relation:
```http
LINK /project-1
Link: </task-1>; rel="http:/pm.example/#hasTask"
```
```http
POST /project-1
Link: </task-1>; rel="http:/pm.example/#hasTask"
```
POST? without body or
```http
POST /project-1
Link: </task-1>; rel="http:/pm.example/#hasTask"
```
POST with body
```http
PATCH /project-1
....
```
Access, what if client/user not allowed make abritrary changes to `project-1` ?
https://datatracker.ietf.org/doc/html/draft-snell-link-method-12 (FYI TimBL proposed this https://www.w3.org/Protocols/HTTP/Methods/Link.html)
For a moment `task-1` is an orphan, also one might only be allowed to create tasks in `project-1`.
### Images with restricted access example
We do not want those without permissions to see images, eventhough they can read tasks.
```http
PUT /image-1
Link: </image-1>; anchor="/project-1"; rel="http:/pm.example/#hasImage"
```
How can we implement distinguishing access controls based on the predicate?