Add Drivers to documentation

Re-organize the "internals" section into a "Developer's Guide" with
sub-pages and add the drivers documentation as one of them.

Change-Id: Ibdf0287a7a077dfeaac6c63d1c8beca8d5f3f4be
diff --git a/doc/source/internals.rst b/doc/source/datamodel.rst
similarity index 65%
rename from doc/source/internals.rst
rename to doc/source/datamodel.rst
index e98ab6e..9df6505 100644
--- a/doc/source/internals.rst
+++ b/doc/source/datamodel.rst
@@ -1,15 +1,5 @@
-Zuul Internals
-==============
-
-While most people should not need to understand the details of Zuul's internal
-data model, understanding the data model is essential for people writing
-code for Zuul, and might be interesting to advanced users. The model is
-defined in `zuul/model.py`_.
-
-.. _zuul/model.py: http://git.openstack.org/cgit/openstack-infra/zuul/tree/zuul/model.py
-
 Data Model
-----------
+==========
 
 It all starts with the :py:class:`~zuul.model.Pipeline`. A Pipeline is the
 basic organizational structure that everything else hangs off.
@@ -74,6 +64,7 @@
 
 An abide is a collection of tenants.
 
+.. autoclass:: zuul.model.Tenant
 .. autoclass:: zuul.model.UnparsedAbideConfig
 .. autoclass:: zuul.model.UnparsedTenantConfig
 
@@ -85,34 +76,3 @@
 .. autoclass:: zuul.model.RepoFiles
 .. autoclass:: zuul.model.Worker
 .. autoclass:: zuul.model.TriggerEvent
-
-
-Testing
--------
-
-Zuul provides an extensive framework for performing functional testing
-on the system from end-to-end with major external components replaced
-by fakes for ease of use and speed.
-
-Test classes that subclass :py:class:`~tests.base.ZuulTestCase` have
-access to a number of attributes useful for manipulating or inspecting
-the environment being simulated in the test:
-
-.. autoclass:: tests.base.ZuulTestCase
-   :members:
-
-.. autoclass:: tests.base.FakeGerritConnection
-   :members:
-   :inherited-members:
-
-.. autoclass:: tests.base.FakeGearmanServer
-   :members:
-
-.. autoclass:: tests.base.RecordingLaunchServer
-   :members:
-
-.. autoclass:: tests.base.FakeBuild
-   :members:
-
-.. autoclass:: tests.base.BuildHistory
-   :members:
diff --git a/doc/source/developer.rst b/doc/source/developer.rst
new file mode 100644
index 0000000..527ea6e
--- /dev/null
+++ b/doc/source/developer.rst
@@ -0,0 +1,15 @@
+Developer's Guide
+=================
+
+This section contains information for Developers who wish to work on
+Zuul itself.  This information is not necessary for the operation of
+Zuul, though advanced users may find it interesting.
+
+.. autoclass:: zuul.scheduler.Scheduler
+
+.. toctree::
+   :maxdepth: 1
+
+   datamodel
+   drivers
+   testing
diff --git a/doc/source/drivers.rst b/doc/source/drivers.rst
new file mode 100644
index 0000000..6588381
--- /dev/null
+++ b/doc/source/drivers.rst
@@ -0,0 +1,20 @@
+Drivers
+=======
+
+Zuul provides an API for extending its functionality to interact with
+other systems.
+
+.. autoclass:: zuul.driver.Driver
+   :members:
+
+.. autoclass:: zuul.driver.ConnectionInterface
+   :members:
+
+.. autoclass:: zuul.driver.SourceInterface
+   :members:
+
+.. autoclass:: zuul.driver.TriggerInterface
+   :members:
+
+.. autoclass:: zuul.driver.ReporterInterface
+   :members:
diff --git a/doc/source/index.rst b/doc/source/index.rst
index 8c12138..784fc4d 100644
--- a/doc/source/index.rst
+++ b/doc/source/index.rst
@@ -24,7 +24,7 @@
    launchers
    statsd
    client
-   internals
+   developer
 
 Indices and tables
 ==================
diff --git a/doc/source/testing.rst b/doc/source/testing.rst
new file mode 100644
index 0000000..092754f
--- /dev/null
+++ b/doc/source/testing.rst
@@ -0,0 +1,29 @@
+Testing
+=======
+
+Zuul provides an extensive framework for performing functional testing
+on the system from end-to-end with major external components replaced
+by fakes for ease of use and speed.
+
+Test classes that subclass :py:class:`~tests.base.ZuulTestCase` have
+access to a number of attributes useful for manipulating or inspecting
+the environment being simulated in the test:
+
+.. autoclass:: tests.base.ZuulTestCase
+   :members:
+
+.. autoclass:: tests.base.FakeGerritConnection
+   :members:
+   :inherited-members:
+
+.. autoclass:: tests.base.FakeGearmanServer
+   :members:
+
+.. autoclass:: tests.base.RecordingLaunchServer
+   :members:
+
+.. autoclass:: tests.base.FakeBuild
+   :members:
+
+.. autoclass:: tests.base.BuildHistory
+   :members: