def modify_agent_property(self, agent_id, key, value):
        '''
        modify_agent_property(self, agent_id, key, value)

        Modifies a single single property of an agent. If the property does not exists then it is created as a custom property.

        :Parameters:
        * *agent_id* (`string`) -- Identifier of an existing agent
        * *key* (`string`) -- Key of a property to change
        * *value* (`string`) -- New Value of the property to change

        :Example:
        .. code-block:: python

           opereto_client.modify_agent_property('my_agent_id', 'agent_new_property', 'agent value')

        '''
        return self._call_rest_api('post', '/agents/'+agent_id+'/properties', data={key: value}, error='Failed to modify agent [%s] property [%s]'%(agent_id,key))