.. This work is licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0

Administration
==============

Actions
-------

- |  **Set the list of services to be instantiated by MACRO** 
  |  To set a certain service for the MACRO style instantiation instead of A La Carte, update MACRO_SERVICES in vidConfiguration.js file, with the service model invariant UUID (More info under the Configurations section).