WIP
**Description**
PUT /entities/property/{item_id}/labels/{language_code}
PUT /entities/items/{item_id}/description/{language_code}
**Acceptance criteria:**
- The respective successful responses should present the relevant data as a string -- similar to the responses of GET /entities/properties/{property_id}/labels/{language_code}, and GET /entities/properties/{property_id}/descriptions/{language_code} respectively. If a label or a description in the given language didn't exist before the successful request the response should use 201 code. If the request changed the existing label or description, the response code should be 200.
-** Error cases to consider**:
<table>
<tr>
<th>
</th>
<th>HTTP response code</th>
<th>response payload</th>
</tr>
<tr>
<td>Property does not exist </td>
<td>404</td>
<td>
`"code": "property-not-found"`
`"message": "Could not find a property with the ID: {property_id}"`
</td>
</tr>
<tr>
<td>Invalid property ID </td>
<td>400</td>
<td>
`"code": "invalid-property-id"`
`"message": "Not a valid property ID: {property_id}"`
`"context": {"property": "{property-id}"}`
</td>
</tr>
<tr>
<td>Invalid language code </td>
<td>400</td>
<td>
`{ "code": "invalid-language-code", "message": "Not a valid language code: {language_code}"}`
</td>
</tr>
<tr>
<td>Property does not have descriptions (or label) in the give language </td>
<td>404</td>
<td>
`{ "code": "descriptions-not-defined", "message": "Property with the ID {property_id} does not have descriptions (or labels) in the language: {language_code}" }`
</td>
</tr>
</table>
-
**Notes**
- Automated edit summaries similar as done for items: https://phabricator.wikimedia.org/T323813
- mul is a valid language code for a label but it is not allowed for descriptions
- Handle HTTP conditional request headers as in GET /entities/properties/{property_id}/labels/{language_code}
- Handle user authentication/authorization like in GET /entities/properties/{property_id}/labels/{language_code}