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

================
Human Interfaces
================

User Guides In ONAP Confluence
==============================

These are links to the SDC user guides found in ONAP Confluence:

- `Resource Onboarding <https://wiki.onap.org/display/DW/Resource+Onboarding>`_
- `Service Design <https://wiki.onap.org/display/DW/Service+Design>`_
- `VF Creation and Testing <https://wiki.onap.org/display/DW/VF+Creation+and+Testing>`_
- `Governance Approval and Service Distribution <https://wiki.onap.org/display/DW/Governance+Approval+and+Service+Distribution>`_


