diff --git a/docs/guides/onap-user/resource-onboarding/index.rst b/docs/guides/onap-user/resource-onboarding/index.rst
new file mode 100644
index 0000000..4a3cbc1
--- /dev/null
+++ b/docs/guides/onap-user/resource-onboarding/index.rst
@@ -0,0 +1,250 @@
+.. This work is licensed under a Creative Commons Attribution 4.0
+.. International License. http://creativecommons.org/licenses/by/4.0
+.. Copyright 2019 ONAP Contributors. All rights reserved.
+
+Resource Onboarding
+===================
+**Goal:** Add models and other artifacts required to create, configure, instantiate, and manage a VF and, optionally, a VFC.
+
+**Tool:** SDC
+
+**SDC user role:** Designer
+
+|image0|
+
+**Steps**
+    * `Create a License Model`_
+    * `Create a License Key Group [Optional]`_
+    * `Create an Entitlement Pool`_
+    * `Create a Feature Group`_
+    * `Create a License Agreement`_
+    * `Create a Vendor Software Product`_
+    * `Update VFCs in a VSP [optional]`_
+    * `Update a VSP [optional]`_
+
+After updating the artifacts in a VSP, also update:
+    * the VF created from the VSP
+    * any services that include the VF
+
+|image1|
+
+Create a License Model
+----------------------
+
+VSPs optionally require a license and entitlements to enable the service provider to track the usage.
+
+Note: For interim saving while creating the license model and its components, click |image2|
+
+**Prerequisites:** To obtain license information, contact the service provider's Supply Chain Management (SCM) group.
+
+|image3|
+
+#. From the SDC HOME page, click *ONBOARD*.
+#. Hover over Add and select New License Model.
+#. Complete all fields.
+#. Click *Save*.
+#. In the ONBOARD header, hover over the arrow after License Agreements to reveal a menu.
+   Select the following options in order:
+
+   #. Create 0 or more license key groups (see `Create a License Key Group [Optional]`_).
+   #. Create 1 or more entitlement pools (see `Create an Entitlement Pool`_).
+   #. Create 1 or more feature groups (see `Create a Feature Group`_).
+   #. Create 1 or more license agreements (see `Create a License Agreement`_).
+
+      Note: Perform all steps above before submitting the license model to the SDC catalog.
+
+#. In the header, click the license model created in steps 1 to 4.
+#. Click *Check In* to save changes.
+#. Click *Submit* to add the license model to the catalog. A success message displays.
+#. After creating a license, complete `Create a Vendor Software Product`_ to add the VSP required for the associated VF.
+
+Create a License Key Group [Optional]
+-------------------------------------
+
+If required by the resource model, create one or more license key groups; otherwise the license key group is optional.
+
+**Prerequisites:** `Create a License Model`_
+
+|image4|
+
+1. From the drop-down menu, select License Key Groups.
+2. Click *Add License Key Group*.
+    The Create New License Key Group box displays.
+3. Complete all fields.
+    Note: Enter the manufacturer reference number in the Name field.
+4. Click *Save*.
+
+Create an Entitlement Pool
+--------------------------
+
+**Prerequisites:** If required by the resource model, create one or more license key groups (see `Create a License Key Group [Optional]`_).
+
+|image5|
+
+1. From the drop-down menu, select Entitlement Pools.
+2. Click *Add Entitlement Pool*.
+    The Create New Entitlement Pool box displays.
+3. Complete required fields (mandatory fields are marked by a red asterisk).
+4. Click *Save*.
+
+Create a Feature Group
+----------------------
+
+**Prerequisites:** Create one or more:
+
+* license key groups if required by the resource model (see `Create a License Key Group [optional]`_)
+* entitlement pools (see `Create an Entitlement Pool`_)
+
+|image6|
+
+1. From the drop-down menu, select Feature Groups.
+2. Click *Add Feature Group*.
+    The Create New Feature Group box displays.
+3. On the General tab, complete all fields.
+4. Click *Entitlement Pools*.
+5. Click *Available Entitlement Pools*.
+6. Select one or more entitlement pools and click the right arrow.
+7. Click *License Key Groups*.
+8. Click *Available License Key Groups*.
+9. Select one or more license key groups and click the right arrow.
+10. Click *Save*.
+
+Create a License Agreement
+--------------------------
+
+**Prerequisites:** Create one or more feature groups (see `Create a Feature Group`_).
+
+|image7|
+
+1. From the drop-down menu, select License Agreements.
+2. Click *Add License Agreement*.
+    The Create New License Agreement box displays.
+3. On the General tab, complete required fields (mandatory fields are marked by a red asterisk).
+4. Click *Feature Groups*.
+5. If not selected, click *Available Feature Groups*.
+6. Select one or more groups and click the right arrow.
+7. Click *Save*.
+8. Return to step 5 of `Create a License Model`_ to complete the license model.
+
+Create a Vendor Software Product
+--------------------------------
+
+Create one or more Vendor Software Products (VSPs) as the building blocks for VFs.
+
+.. note::
+   For interim saving while creating a VSP, click |image2|
+
+**Prerequisites:**
+
+* `Create a License Model`_
+* Generate manifest and package artifacts.
+
+#. From the SDC HOME page, click *ONBOARD*.
+#. Hover over Add and select New Vendor Software Product.
+#. The New Software Product box is displayed.
+    Complete all fields.
+#. Click *Save*.
+    The Overview section is displayed.
+
+   .. note::
+     A warning is displayed under License Agreement if the VSP does not have an associated license.
+
+#. Click *Software Product Details* (left pane).
+
+   |image8|
+
+#. In order, select a licensing version, a license agreement, and one or more feature groups.
+#. [Optional] Complete other fields, such as Availability (high-availability zones) and Storage
+   Data Replication (requirement for storage replication), as required.
+#. In Software Product Attachments (right pane), click *Select file*.
+#. Locate a Heat .zip package and click *Open*.
+   SDC validates the files in the package. After successful validation, SDC displays the files
+   and a success message. If validation fails, SDC displays the errors in the files.
+
+   Example Heat errors:
+
+   |image9|
+
+#. Click *Check In* to save the changes.
+#. Click *Submit* to add the VSP to the catalog.
+#. A success message is displayed. If the VSP attachments contain errors, an error message is displayed instead. Fix the issue(s) and re-submit.
+#. To configure VFCs associated with the VSP, see `Update VFCs in a VSP [optional]`_, below.
+
+
+Update VFCs in a VSP [optional]
+-------------------------------
+
+If required, configure Virtual Function Components (VFCs) associated with a VSP, such as the Hypervisor, VM recovery details, and cloning. VFCs are listed on the Components tab.
+
+.. note::
+  All fields are optional. Answers to questionnaires are stored as metadata only on the SDC platform.
+
+**Prerequisites:** Add one or more VSPs (see `Create a Vendor Software Product`_).
+
+#. From the SDC HOME page, click *ONBOARD* and search for a VSP.
+#. In the Overview section, click *Check Out*.
+#. In Components (bottom pane), click a VFC (VSP component).
+    The component links display in the left pane.
+#. Click *General* to view and edit general parameters such as hypervisor, image format, VM recovery details, and DNS configuration.
+#. Click *Compute* to view and edit VM parameters such as the number of VMs required for a VFC instance and persistent storage/volume size.
+#. Click *High Availability & Load Balancing* to answer questions related to VM availability and load balancing.
+#. Click *Networks* to view or edit parameters related to network capacity and interfaces.
+
+   .. note::
+     Click an interface to view or edit it. A dialog box displays similar to the figure below.
+
+   |image10|
+
+#. Click *Storage* to configure storage information, such as backup type, storage size, and logging.
+#. Click *Process Details*, click *Add Component Process Details*, and complete the Create New Process Details dialog box. Use Process Details to identify the processes and configuration associated with VFCs.
+#. Click *Monitoring* to upload MIB or JSON files for SNMP traps and polling.
+#. Click *Overview* and click *Check In* to save changes.
+#. If updating a VSP, click *Submit*. If this procedure is performed during the workflow to create a VSP, there is no need to click *Submit* now.
+
+Update a VSP [optional]
+-----------------------
+
+Upload a new Heat package to a VSP. Afterward, update the VF and service.
+
+**Prerequisites:** Add one or more VSPs (see `Create a Vendor Software Product`_).
+
+#. From the SDC HOME page, click *ONBOARD* and search for a VSP.
+#. In the Overview section, click *Check Out*.
+#. In Software Product Attachments (right pane), click *Select file*.
+#. Locate a Heat .zip package and click *Open*.
+    SDC warns that uploading a new package erases existing data.
+#. Click *Continue* to upload the new Heat package.
+    SDC validates the files in the package. After successful validation, SDC displays the files and a success message. If validation fails, SDC displays the errors in the files.
+
+   .. note::
+     If the Heat template contains errors, contact the Certification Group for guidance on how to proceed.
+
+#. Click *Check In* to save changes.
+#. Click *Submit* to add the VSP to the catalog.
+    A success message is displayed. If the VSP attachments contain errors, an error message is displayed instead. Fix the issue(s) and re-submit.
+#. After updating the VSP:
+   #. Upload the VSP to the VF (see steps 3 to 5 in (TBD)Update a VF [optional]).
+   #. Update the VF version in services that include the VF (see step 4 in (TBD) Update a service [optional]).
+
+
+.. |image0| image:: media/sdro-resource-onboarding-workflow.png
+
+.. |image1| image:: media/sdro-vsp-service-workflow.png
+
+.. |image2| image:: media/sdro-sdc_vsp_save.png
+
+.. |image3| image:: media/sdro-license-creation.png
+
+.. |image4| image:: media/sdro-license-keygroup.png
+
+.. |image5| image:: media/sdro-entitlement-pool.png
+
+.. |image6| image:: media/sdro-feature-group.png
+
+.. |image7| image:: media/sdro-license-agreement.png
+
+.. |image8| image:: media/sdro-software-product.png
+
+.. |image9| image:: media/sdro-design_onboardvsp_heaterrors.png
+
+.. |image10| image:: media/sdro-edit-nic.png
diff --git a/docs/guides/onap-user/resource-onboarding/media/sdro-design_asdccanvas_connect_elements.png b/docs/guides/onap-user/resource-onboarding/media/sdro-design_asdccanvas_connect_elements.png
new file mode 100644
index 0000000..27c8986
--- /dev/null
+++ b/docs/guides/onap-user/resource-onboarding/media/sdro-design_asdccanvas_connect_elements.png
Binary files differ
diff --git a/docs/guides/onap-user/resource-onboarding/media/sdro-design_onboardvsp_heaterrors.png b/docs/guides/onap-user/resource-onboarding/media/sdro-design_onboardvsp_heaterrors.png
new file mode 100644
index 0000000..94a6743
--- /dev/null
+++ b/docs/guides/onap-user/resource-onboarding/media/sdro-design_onboardvsp_heaterrors.png
Binary files differ
diff --git a/docs/guides/onap-user/resource-onboarding/media/sdro-edit-nic.png b/docs/guides/onap-user/resource-onboarding/media/sdro-edit-nic.png
new file mode 100644
index 0000000..2db64c4
--- /dev/null
+++ b/docs/guides/onap-user/resource-onboarding/media/sdro-edit-nic.png
Binary files differ
diff --git a/docs/guides/onap-user/resource-onboarding/media/sdro-entitlement-pool.png b/docs/guides/onap-user/resource-onboarding/media/sdro-entitlement-pool.png
new file mode 100644
index 0000000..20fee24
--- /dev/null
+++ b/docs/guides/onap-user/resource-onboarding/media/sdro-entitlement-pool.png
Binary files differ
diff --git a/docs/guides/onap-user/resource-onboarding/media/sdro-feature-group.png b/docs/guides/onap-user/resource-onboarding/media/sdro-feature-group.png
new file mode 100644
index 0000000..9f4f1b4
--- /dev/null
+++ b/docs/guides/onap-user/resource-onboarding/media/sdro-feature-group.png
Binary files differ
diff --git a/docs/guides/onap-user/resource-onboarding/media/sdro-license-agreement.png b/docs/guides/onap-user/resource-onboarding/media/sdro-license-agreement.png
new file mode 100644
index 0000000..ef99406
--- /dev/null
+++ b/docs/guides/onap-user/resource-onboarding/media/sdro-license-agreement.png
Binary files differ
diff --git a/docs/guides/onap-user/resource-onboarding/media/sdro-license-creation.png b/docs/guides/onap-user/resource-onboarding/media/sdro-license-creation.png
new file mode 100644
index 0000000..a358d03
--- /dev/null
+++ b/docs/guides/onap-user/resource-onboarding/media/sdro-license-creation.png
Binary files differ
diff --git a/docs/guides/onap-user/resource-onboarding/media/sdro-license-keygroup.png b/docs/guides/onap-user/resource-onboarding/media/sdro-license-keygroup.png
new file mode 100644
index 0000000..c8f2934
--- /dev/null
+++ b/docs/guides/onap-user/resource-onboarding/media/sdro-license-keygroup.png
Binary files differ
diff --git a/docs/guides/onap-user/resource-onboarding/media/sdro-resource-onboarding-workflow.png b/docs/guides/onap-user/resource-onboarding/media/sdro-resource-onboarding-workflow.png
new file mode 100644
index 0000000..dcc3104
--- /dev/null
+++ b/docs/guides/onap-user/resource-onboarding/media/sdro-resource-onboarding-workflow.png
Binary files differ
diff --git a/docs/guides/onap-user/resource-onboarding/media/sdro-sdc_vsp_save.png b/docs/guides/onap-user/resource-onboarding/media/sdro-sdc_vsp_save.png
new file mode 100644
index 0000000..81f1df6
--- /dev/null
+++ b/docs/guides/onap-user/resource-onboarding/media/sdro-sdc_vsp_save.png
Binary files differ
diff --git a/docs/guides/onap-user/resource-onboarding/media/sdro-software-product.png b/docs/guides/onap-user/resource-onboarding/media/sdro-software-product.png
new file mode 100644
index 0000000..457baa8
--- /dev/null
+++ b/docs/guides/onap-user/resource-onboarding/media/sdro-software-product.png
Binary files differ
diff --git a/docs/guides/onap-user/resource-onboarding/media/sdro-vsp-service-workflow.png b/docs/guides/onap-user/resource-onboarding/media/sdro-vsp-service-workflow.png
new file mode 100644
index 0000000..5a5ad94
--- /dev/null
+++ b/docs/guides/onap-user/resource-onboarding/media/sdro-vsp-service-workflow.png
Binary files differ
diff --git a/docs/guides/onap-user/servicedesigner.rst b/docs/guides/onap-user/servicedesigner.rst
index 823fccd..560cbf4 100644
--- a/docs/guides/onap-user/servicedesigner.rst
+++ b/docs/guides/onap-user/servicedesigner.rst
@@ -2,6 +2,8 @@
 .. International License. http://creativecommons.org/licenses/by/4.0
 .. Copyright 2017 AT&T Intellectual Property.  All rights reserved.
 
+.. _user-guides-service-design:
+
 Service Design
 ==============
 The goal of the service design process is to create all artifacts
@@ -22,7 +24,11 @@
 
 * `Pre-Onboarding <https://wiki.onap.org/x/Y4AP>`_
 
-* `Resource Onboarding <https://wiki.onap.org/x/YIAP>`_
+.. toctree::
+   :maxdepth: 1
+   :titlesonly:
+
+   Resourse-Onboarding <./resource-onboarding/index.rst>
 
 * `VF Creation and Testing <https://wiki.onap.org/x/PoAP>`_
 
