def update(self, id, *args, **kwargs):
if not args and not kwargs:<EOL><INDENT>raise Exception('<STR_LIT>')<EOL><DEDENT>attributes = args[<NUM_LIT:0>] if args else kwargs<EOL>attributes = dict((k, v) for k, v in attributes.iteritems() if k in self.OPTS_KEYS_TO_PERSIST)<EOL>_, _, tag = self.http_client.put("<STR_LIT>".format(id=id), body=attributes)<EOL>return tag<EOL>
Update a tag

Updates a tag's information
If the specified tag does not exist, this query will return an error
**Notice** if you want to update a tag, you **must** make sure the tag's name is unique within the scope of the specified resource

:calls: ``put /tags/{id}``
:param int id: Unique identifier of a Tag.
:param tuple *args: (optional) Single object representing Tag resource which attributes should be updated.
:param dict **kwargs: (optional) Tag attributes to update.
:return: Dictionary that support attriubte-style access and represents updated Tag resource.
:rtype: dict