code: def update_source(self, id, **kwargs):  # noqa: E501
          
          kwargs['_return_http_data_only'] = True
          if kwargs.get('async_req'):
              return self.update_source_with_http_info(id, **kwargs)  # noqa: E501
          else:
              (data) = self.update_source_with_http_info(id, **kwargs)  # noqa: E501
              return data
docs: Update metadata (description or tags) for a specific source.  # noqa: E501
  
          The \"hidden\" property is stored as a tag. To set the value, add \"hidden\": &lt;value&gt; to the list of tags.  # noqa: E501
          This method makes a synchronous HTTP request by default. To make an
          asynchronous HTTP request, please pass async_req=True
          >>> thread = api.update_source(id, async_req=True)
          >>> result = thread.get()
  
          :param async_req bool
          :param str id: (required)
          :param Source body: Example Body:  <pre>{     \"sourceName\": \"source.name\",     \"tags\": {\"sourceTag1\": true},     \"description\": \"Source Description\" }</pre>
          :return: ResponseContainerSource
                   If the method is called asynchronously,
                   returns the request thread.