def update(source)
      validate_type!(source)
      params = extract_params!(source, :id)
      id = params[:id]

      attributes = sanitize(source)
      _, _, root = @client.put("/sources/#{id}", attributes)

      Source.new(root[:data])
    end
def update(source)
      validate_type!(source)
      params = extract_params!(source, :id)
      id = params[:id]

      attributes = sanitize(source)
      _, _, root = @client.put("/sources/#{id}", attributes)

      Source.new(root[:data])
    end
Update a source

 put '/sources/{id}'

 Updates source information
 If the specified source does not exist, the request will return an error
 <figure class="notice">
 If you want to update a source, you **must** make sure source's name is unique
 </figure>

 @param source [Source, Hash] Either object of the Source type or Hash. This object's attributes describe the object to be updated.
 @return [Source] The resulting object represting updated resource.