.. This work is licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0


DATAFILE COLLECTOR MS (DFC)
=============================

.. Add or remove sections below as appropriate for the platform component.

.. toctree::
   :maxdepth: 1

   ./architecture.rst
   ./delivery.rst
   ./logging.rst
   ./installation.rst
   ./certificates.rst
   ./configuration.rst
   ./consumedapis.rst
   ./administration.rst
   ./release-notes.rst
