code: func (c *Consumer) Firehose(
  	subscriptionId string,
  	authToken string,
  ) (<-chan *events.Envelope, <-chan error) {
  	return c.firehose(newFirehose(
  		subscriptionId,
  		authToken,
  	))
  }
docs: // Firehose streams all data. All clients with the same subscriptionId will
  // receive a proportionate share of the message stream.  Each pool of clients
  // will receive the entire stream.
  //
  // Messages are presented in the order received from the loggregator server.
  // Chronological or other ordering is not guaranteed. It is the responsibility
  // of the consumer of these channels to provide any desired sorting mechanism.
  //
  // Whenever an error is encountered, the error will be sent down the error
  // channel and Firehose will attempt to reconnect indefinitely.