POST /entities/items/{itemproperties/{property_id}/aliases/{langguage_code}
**Acceptance criteria:**request payload
- The respective successful responses should present the relevant data as a string -- similar to the responses of GET /entities/items/{item_id}/aliases/{language_code}.
- If an alias in the given language didn't exist before the successful request the response should use 201 code.```
{
- If the request changed the existing alias, "alias": "ALIAS_TEXT"
the response code should be 200...
- input alias is "appended" to the aliases list in a given language}
- the response body should include the list of aliases in the requested language (DOUBLE CHECK)```
**Acceptance criteria:**
- The respective successful responses should present the list of aliases in a given language -- similar to the responses of GET /entities/items/{item_id}/aliases/{language_code}.
- If there was no aliases in the given language before the successful request the response should use 201 code, otherwise 200.- input alias is "appended" to the aliases list in a given language
**Error cases to consider**
<table>
<tr>
<th>
</th>
<th>HTTP response code</th>
<th>response payload</th>
</tr>
<tr>
<td>Item does not exist </td>
<td>404</td>
<td>
`"code": "item-not-found"`
`"message": "Could not find an item with the ID: {item_id}"`
</td>
</tr>
<tr>
<td>Invalid item ID </td>
<td>400</td>
<td>
`"code": "invalid-item-id"`
`"message": "Not a valid item ID: {item_id}"`
`"context": {"item": "{item-id}"}`
</td>
</tr>
<tr>
<td>Item redirect </td>
<td>409</td>
<td>
`"code": "redirected-item"`
`"message": "Item {item_id} has been merged into {other_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>Alias is empty </td>
<td>400</td>
<td>
`{ "code": "alias-empty", "message": "Alias must not be empty" }`
</td>
</tr>
<tr>
<td>Alias too long </td>
<td>400</td>
<td>
`{ "code": "alias-too-long", "message": "Alias must be no more than {limit} characters long", "context": { "value": "{alias}", "character-limit": "{limit}" } }`
</td>
</tr>
<tr>
<td>After changes an alias contains invalid characters</td>
<td>422</td>
<td>
`"code": "patched-alias-invalid"`
`"message": "Changed alias for '{language_code}' is invalid: '{alias}'"`
`"context": {`
`"alias": <alias>`
`"language": <language_code>`
`}`
</td>
</tr>
<tr>
<td>Alias duplicate </td>
<td>400</td>
<td>
`{ "code": "item-alias-duplicate", "message": "Item' {item_id}' already has alias '{alias}' associated with language code '{language}'", "context": { "language": "{language}", "alias": "{alias}" }}`
</td>
</tr>
<tr>
<td>Invalid edit tag</td>
<td>400</td>
<td>
`{ "code": "invalid-edit-tag", "message": "Invalid MediaWiki tag: {tag}" }`
</td>
</tr>
<tr>
<td>Comment too long</td>
<td>400</td>
<td>
`{"code": "comment-too-long", "message": "Comment must not be longer than {limit} characters"}`
</td>
</tr>
</table>
**Notes**
- Automated edit summaries similar as done for items: https://phabricator.wikimedia.org/T348150
- client can provide additional edit metadata: mediawiki tags, edit summary text to append to the automated summary, and a bot edit flag, like in GET /entities/items/{item_id}/alias/{language_code}
- Handle HTTP conditional request headers as in PUT /entities/items/{item_id}/aliases (or labels or descriptions) /{language_code}
- Handle user authentication/authorization like in PUT /entities/items/{item_id}/aliases (or labels or descriptions)/{language_code}