/**
 * @mainpage Mesos API Documentation
 *
 * The following Apache Mesos API documention is part of the overall [Apache Mesos documenation](http://mesos.apache.org/documentation/latest/).
 *
 * @section developer-guide Developer Guides
 *   * [Libprocess developer guide](https://github.com/apache/mesos/blob/master/3rdparty/libprocess/README.md/)
 *   * [Stout developer guide](https://github.com/apache/mesos/blob/master/3rdparty/stout/README.md/)
 */
