POST /entities/items/{item_id}/aliases/{language_code}
request payload
```
{
"aliases": [ "ALIAS_TEXT", ... ]
...
}
```
**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 existnvalid item ID </td>
<td>4040</td>
<td>
`"code": "item-not-found"`nvalid-item-id"`
`"message": "Could not find an Not a valid item ID: {item with the ID: _id}"`
`"context": { "item": "{item_-id}"` }`
</td>
</tr>
<tr>
<td>Invalid item IDlanguage code </td>
<td>400</td>
<td>
`"code": "invalid-item-id"`
`"message": "Not a valid item ID: {item_id}"`language-code"`
`"context": {"item": "{item-id}"}``"message": "Not a valid language code: {language_code}"`
</td>
</tr>
<tr>
<td>Item redirecttd>Alias is empty </td>
<td>4090</td>
<td>
`"code": "redirected-item"`alias-empty"`
`"message": "Item {item_id} has been merged into {other_id}" `Alias must not be empty"`
</td>
</tr>
<tr>
<td>Invalid language codetd>Alias list is empty </td>
<td>400</td>
<td>
`{ `"code": "invalid-language-code", alias-list-empty"`
`"message": "Not a valid language code: {language_code}"}`Alias list must not be empty"`
</td>
</tr>
<tr>
<td>Alias is emptytoo long </td>
<td>400</td>
<td>
`{ "code": "alias-empty", "message": "Alias must not be empty" "code": "alias-too-long"`
`"message": "Alias must be no more than {limit} characters long"`
`"context": {`
` "value": "{alias}",`
` "character-limit": "{limit}"`
`}`
</td>
</tr>
<tr>
<td>Alias list is empty contains invalid characters</td>
<td>400</td>
<td>
`{ `"code": "alias-list-empty", invalid-alias"`
`"message": "ANot a valid alias list must not be empty: '{alias}'"`
`"context": { "alias": "{alias}" }`
</td>
</tr>
<tr>
<td>Alias too longduplicate </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}" }"code": "duplicate-alias"`
`"message": "Alias list contains a duplicate alias: '{alias}'"`
`"context": { "alias": "{alias}" }`
</td>
</tr>
<tr>
<td>Alias contains itd>Invalid charactersedit tag</td>
<td>400</td>
<td>
`"code": "invalid-alias"`
`"message": "Not a valid alias: '{alias}'"`
`"context": {`edit-tag"`
`"alias": <alias>}``"message": "Invalid MediaWiki tag: {tag}"`
</td>
</tr>
<tr>
<td>Alias duplicate td>Comment too long</td>
<td>400</td>
<td>`{ "code": "duplicate-alias", "message": "Alias list contains a duplicate alias: '{alias}'", "context": { "alias": "{alias}" } }
`"code": "comment-too-long"`
`"message": "Comment must not be longer than {limit} characters"`
</td>
</tr>
<tr>
<td>Invalid edit tagtem does not exist </td>
<td>4004</td>
<td>
`{ `"code": "invalid-edit-tag", tem-not-found"`
`"message": "Invalid MediaWiki tag: {tag}" }`Could not find an item with the ID: {item_id}"`
</td>
</tr>
<tr>
<td>Comment too longtd>Item redirect </td>
<td>4009</td>
<td>
`{`"code": "comment-too-long",redirected-item"`
`"message": "Comment must not be longer than {limit} characters"}`Item {item_id} has been merged into {other_id}"`
</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}/(labels or descriptions) /{language_code}
- Handle user authentication/authorization like in PUT /entities/items/{item_id}/(labels or descriptions)/{language_code}