OnboardingAPI doc update

Change-Id: I314f1e1f0cf55366a6d7074d8bc7215aa8f9e8ee
Signed-off-by: VENKATESH KUMAR <vv770d@att.com>
Issue-ID: DCAEGEN2-1871
diff --git a/docs/sections/apis/mod-onboardingapi.json b/docs/sections/apis/mod-onboardingapi.json
new file mode 100644
index 0000000..8e8ce9a
--- /dev/null
+++ b/docs/sections/apis/mod-onboardingapi.json
@@ -0,0 +1,597 @@
+{
+	"swagger": "2.0",
+	"basePath": "/onboarding",
+	"paths": {
+		"/components": {
+			"post": {
+				"responses": {
+					"500": {
+						"description": "Internal Server Error"
+					},
+					"409": {
+						"description": "Component already exists",
+						"schema": {
+							"$ref": "#/definitions/Error message"
+						}
+					},
+					"400": {
+						"description": "Bad Request",
+						"schema": {
+							"$ref": "#/definitions/Error message"
+						}
+					},
+					"200": {
+						"description": "Success",
+						"schema": {
+							"$ref": "#/definitions/Component post"
+						}
+					}
+				},
+				"description": "Add a Component to the Catalog",
+				"operationId": "post_component",
+				"parameters": [{
+					"name": "payload",
+					"required": true,
+					"in": "body",
+					"schema": {
+						"$ref": "#/definitions/Component Spec"
+					}
+				}, {
+					"name": "X-Fields",
+					"in": "header",
+					"type": "string",
+					"format": "mask",
+					"description": "An optional fields mask to support partial object fetching - https://flask-restplus.readthedocs.io/en/stable/mask.html"
+				}],
+				"tags": ["onboarding"]
+			},
+			"get": {
+				"responses": {
+					"500": {
+						"description": "Internal Server Error"
+					},
+					"200": {
+						"description": "Success",
+						"schema": {
+							"$ref": "#/definitions/Component List"
+						}
+					}
+				},
+				"description": "Get list of Components in the catalog",
+				"operationId": "get_components",
+				"parameters": [{
+					"name": "name",
+					"in": "query",
+					"type": "string",
+					"description": "Name of component to filter for"
+				}, {
+					"name": "version",
+					"in": "query",
+					"type": "string",
+					"description": "Version of component to filter for"
+				}, {
+					"name": "X-Fields",
+					"in": "header",
+					"type": "string",
+					"format": "mask",
+					"description": "An optional fields mask to support partial object fetching - https://flask-restplus.readthedocs.io/en/stable/mask.html"
+				}],
+				"tags": ["onboarding"]
+			}
+		},
+		"/components/{component_id}": {
+			"parameters": [{
+				"name": "component_id",
+				"in": "path",
+				"required": true,
+				"type": "string"
+			}],
+			"put": {
+				"responses": {
+					"500": {
+						"description": "Internal Server Error"
+					},
+					"404": {
+						"description": "Component not found in Catalog",
+						"schema": {
+							"$ref": "#/definitions/Error message"
+						}
+					},
+					"400": {
+						"description": "Bad Request",
+						"schema": {
+							"$ref": "#/definitions/Error message"
+						}
+					},
+					"200": {
+						"description": "Success, Component replaced"
+					}
+				},
+				"description": "Replace a Component Spec in the Catalog",
+				"operationId": "put_component",
+				"parameters": [{
+					"name": "payload",
+					"required": true,
+					"in": "body",
+					"schema": {
+						"$ref": "#/definitions/Component Spec"
+					}
+				}],
+				"tags": ["onboarding"]
+			},
+			"get": {
+				"responses": {
+					"500": {
+						"description": "Internal Server Error"
+					},
+					"404": {
+						"description": "Component not found in Catalog",
+						"schema": {
+							"$ref": "#/definitions/Error message"
+						}
+					},
+					"200": {
+						"description": "Success",
+						"schema": {
+							"$ref": "#/definitions/component fields by id"
+						}
+					}
+				},
+				"description": "Get a Component",
+				"operationId": "get_component",
+				"parameters": [{
+					"name": "X-Fields",
+					"in": "header",
+					"type": "string",
+					"format": "mask",
+					"description": "An optional fields mask to support partial object fetching - https://flask-restplus.readthedocs.io/en/stable/mask.html"
+				}],
+				"tags": ["onboarding"]
+			},
+			"patch": {
+				"responses": {
+					"500": {
+						"description": "Internal Server Error"
+					},
+					"404": {
+						"description": "Component not found in Catalog",
+						"schema": {
+							"$ref": "#/definitions/Error message"
+						}
+					},
+					"403": {
+						"description": "Forbidden Request",
+						"schema": {
+							"$ref": "#/definitions/Error message"
+						}
+					},
+					"400": {
+						"description": "Bad Request",
+						"schema": {
+							"$ref": "#/definitions/Error message"
+						}
+					},
+					"200": {
+						"description": "Success, Component status updated"
+					}
+				},
+				"description": "Update a Component's status in the Catalog",
+				"operationId": "patch_component",
+				"parameters": [{
+					"name": "payload",
+					"required": true,
+					"in": "body",
+					"schema": {
+						"$ref": "#/definitions/Patch Spec"
+					}
+				}],
+				"tags": ["onboarding"]
+			}
+		},
+		"/dataformats": {
+			"post": {
+				"responses": {
+					"500": {
+						"description": "Internal Server Error"
+					},
+					"409": {
+						"description": "Data Format already exists",
+						"schema": {
+							"$ref": "#/definitions/Error message"
+						}
+					},
+					"400": {
+						"description": "Bad Request",
+						"schema": {
+							"$ref": "#/definitions/Error message"
+						}
+					},
+					"200": {
+						"description": "Success",
+						"schema": {
+							"$ref": "#/definitions/Data Format post"
+						}
+					}
+				},
+				"description": "Add a Data Format to the Catalog",
+				"operationId": "post_dataformat",
+				"parameters": [{
+					"name": "payload",
+					"required": true,
+					"in": "body",
+					"schema": {
+						"$ref": "#/definitions/Data Format Spec"
+					}
+				}, {
+					"name": "X-Fields",
+					"in": "header",
+					"type": "string",
+					"format": "mask",
+					"description": "An optional fields mask to support partial object fetching - https://flask-restplus.readthedocs.io/en/stable/mask.html"
+				}],
+				"tags": ["onboarding"]
+			},
+			"get": {
+				"responses": {
+					"500": {
+						"description": "Internal Server Error"
+					},
+					"200": {
+						"description": "Success",
+						"schema": {
+							"$ref": "#/definitions/Data Format List"
+						}
+					}
+				},
+				"description": "Get list of Data Formats in the catalog",
+				"operationId": "get_dataformats",
+				"parameters": [{
+					"name": "X-Fields",
+					"in": "header",
+					"type": "string",
+					"format": "mask",
+					"description": "An optional fields mask to support partial object fetching - https://flask-restplus.readthedocs.io/en/stable/mask.html"
+				}],
+				"tags": ["onboarding"]
+			}
+		},
+		"/dataformats/{dataformat_id}": {
+			"parameters": [{
+				"name": "dataformat_id",
+				"in": "path",
+				"required": true,
+				"type": "string"
+			}],
+			"put": {
+				"responses": {
+					"500": {
+						"description": "Internal Server Error"
+					},
+					"404": {
+						"description": "Data Format not found in Catalog",
+						"schema": {
+							"$ref": "#/definitions/Error message"
+						}
+					},
+					"400": {
+						"description": "Bad Request",
+						"schema": {
+							"$ref": "#/definitions/Error message"
+						}
+					},
+					"200": {
+						"description": "Success, Data Format added"
+					}
+				},
+				"description": "Replace a Data Format Spec in the Catalog",
+				"operationId": "put_dataformat",
+				"parameters": [{
+					"name": "payload",
+					"required": true,
+					"in": "body",
+					"schema": {
+						"$ref": "#/definitions/Data Format Spec"
+					}
+				}],
+				"tags": ["onboarding"]
+			},
+			"get": {
+				"responses": {
+					"500": {
+						"description": "Internal Server Error"
+					},
+					"404": {
+						"description": "Data Format not found in Catalog",
+						"schema": {
+							"$ref": "#/definitions/Error message"
+						}
+					},
+					"200": {
+						"description": "Success",
+						"schema": {
+							"$ref": "#/definitions/dataformat fields by id"
+						}
+					}
+				},
+				"description": "Get a Data Format",
+				"operationId": "get_dataformat",
+				"parameters": [{
+					"name": "X-Fields",
+					"in": "header",
+					"type": "string",
+					"format": "mask",
+					"description": "An optional fields mask to support partial object fetching - https://flask-restplus.readthedocs.io/en/stable/mask.html"
+				}],
+				"tags": ["onboarding"]
+			},
+			"patch": {
+				"responses": {
+					"500": {
+						"description": "Internal Server Error"
+					},
+					"404": {
+						"description": "Data Format not found in Catalog",
+						"schema": {
+							"$ref": "#/definitions/Error message"
+						}
+					},
+					"403": {
+						"description": "Forbidden Request",
+						"schema": {
+							"$ref": "#/definitions/Error message"
+						}
+					},
+					"400": {
+						"description": "Bad Request",
+						"schema": {
+							"$ref": "#/definitions/Error message"
+						}
+					},
+					"200": {
+						"description": "Success, Data Format status updated"
+					}
+				},
+				"description": "Update a Data Format's status in the Catalog",
+				"operationId": "patch_dataformat",
+				"parameters": [{
+					"name": "payload",
+					"required": true,
+					"in": "body",
+					"schema": {
+						"$ref": "#/definitions/Patch Spec"
+					}
+				}],
+				"tags": ["onboarding"]
+			}
+		}
+	},
+	"info": {
+		"title": "DCAE Onboarding HTTP API",
+		"version": "2.12.0"
+	},
+	"produces": ["application/json"],
+	"consumes": ["application/json"],
+	"tags": [{
+		"name": "onboarding",
+		"description": "Default namespace"
+	}],
+	"definitions": {
+		"Component Spec": {
+			"properties": {
+				"owner": {
+					"type": "string"
+				},
+				"spec": {
+					"type": "object",
+					"description": "The Component Spec schema is here -> https://git.onap.org/dcaegen2/platform/cli/plain/component-json-schemas/component-specification/dcae-cli-v2/component-spec-schema.json"
+				}
+			}
+		},
+		"Error message": {
+			"properties": {
+				"message": {
+					"type": "string",
+					"description": ". . . . .Details about the unsuccessful API request"
+				}
+			},
+			"type": "object"
+		},
+		"Component post": {
+			"required": ["componentUrl"],
+			"properties": {
+				"componentUrl": {
+					"type": "string",
+					"description": ". . . . Url to the Component Specification"
+				}
+			},
+			"type": "object"
+		},
+		"Component List": {
+			"properties": {
+				"components": {
+					"type": "array",
+					"items": {
+						"$ref": "#/definitions/component fields"
+					}
+				}
+			},
+			"type": "object"
+		},
+		"component fields": {
+			"required": ["componentType", "componentUrl", "description", "id", "modified", "name", "owner", "status", "version", "whenAdded"],
+			"properties": {
+				"id": {
+					"type": "string",
+					"description": ". . . . ID of the component"
+				},
+				"name": {
+					"type": "string",
+					"description": ". . . . Name of the component"
+				},
+				"version": {
+					"type": "string",
+					"description": ". . . . Version of the component"
+				},
+				"owner": {
+					"type": "string",
+					"description": ". . . . ID of who added the component"
+				},
+				"whenAdded": {
+					"type": "string",
+					"format": "date-time",
+					"description": ". . . . When component was added to the Catalog"
+				},
+				"modified": {
+					"type": "string",
+					"format": "date-time",
+					"description": ". . . . When component was last modified"
+				},
+				"status": {
+					"type": "string",
+					"description": ". . . . Status of the component"
+				},
+				"description": {
+					"type": "string",
+					"description": ". . . . Description of the component"
+				},
+				"componentType": {
+					"type": "string",
+					"description": ". . . . only \"docker\""
+				},
+				"componentUrl": {
+					"type": "string",
+					"description": ". . . . Url to the Component Specification"
+				}
+			},
+			"type": "object"
+		},
+		"Patch Spec": {
+			"required": ["owner", "status"],
+			"properties": {
+				"owner": {
+					"type": "string",
+					"description": "User ID"
+				},
+				"status": {
+					"type": "string",
+					"description": ". . . . .[published] is the only status change supported right now",
+					"example": "published",
+					"enum": ["published", "revoked"]
+				}
+			},
+			"type": "object"
+		},
+		"component fields by id": {
+			"allOf": [{
+				"$ref": "#/definitions/component fields"
+			}, {
+				"required": ["spec"],
+				"properties": {
+					"spec": {
+						"type": "object",
+						"description": "The Component Specification (json)"
+					}
+				},
+				"type": "object"
+			}]
+		},
+		"Data Format Spec": {
+			"properties": {
+				"owner": {
+					"type": "string"
+				},
+				"spec": {
+					"type": "object",
+					"description": "The Data Format Spec schema is here -> https://git.onap.org/dcaegen2/platform/cli/plain/component-json-schemas/data-format/dcae-cli-v1/data-format-schema.json"
+				}
+			}
+		},
+		"Data Format post": {
+			"required": ["dataFormatUrl"],
+			"properties": {
+				"dataFormatUrl": {
+					"type": "string",
+					"description": ". . . . Url to the Data Format Specification"
+				}
+			},
+			"type": "object"
+		},
+		"Data Format List": {
+			"properties": {
+				"dataFormats": {
+					"type": "array",
+					"items": {
+						"$ref": "#/definitions/dataformat fields"
+					}
+				}
+			},
+			"type": "object"
+		},
+		"dataformat fields": {
+			"required": ["dataFormatUrl", "description", "id", "modified", "name", "owner", "status", "version", "whenAdded"],
+			"properties": {
+				"id": {
+					"type": "string",
+					"description": ". . . . ID of the data format"
+				},
+				"name": {
+					"type": "string",
+					"description": ". . . . Name of the data format"
+				},
+				"version": {
+					"type": "string",
+					"description": ". . . . Version of the data format"
+				},
+				"owner": {
+					"type": "string",
+					"description": ". . . . ID of who added the data format"
+				},
+				"whenAdded": {
+					"type": "string",
+					"format": "date-time",
+					"description": ". . . . When data format was added to the Catalog"
+				},
+				"modified": {
+					"type": "string",
+					"format": "date-time",
+					"description": ". . . . When data format was last modified"
+				},
+				"status": {
+					"type": "string",
+					"description": ". . . . Status of the data format"
+				},
+				"description": {
+					"type": "string",
+					"description": ". . . . Description of the data format"
+				},
+				"dataFormatUrl": {
+					"type": "string",
+					"description": ". . . . Url to the Data Format Specification"
+				}
+			},
+			"type": "object"
+		},
+		"dataformat fields by id": {
+			"allOf": [{
+				"$ref": "#/definitions/dataformat fields"
+			}, {
+				"required": ["spec"],
+				"properties": {
+					"spec": {
+						"type": "object",
+						"description": "The Data Format Specification (json)"
+					}
+				},
+				"type": "object"
+			}]
+		}
+	},
+	"responses": {
+		"ParseError": {
+			"description": "When a mask can't be parsed"
+		},
+		"MaskError": {
+			"description": "When any error occurs on mask"
+		}
+	}
+}
\ No newline at end of file
diff --git a/docs/sections/apis/mod-onboardingapi.rst b/docs/sections/apis/mod-onboardingapi.rst
new file mode 100644
index 0000000..25fa709
--- /dev/null
+++ b/docs/sections/apis/mod-onboardingapi.rst
@@ -0,0 +1,1297 @@
+.. This work is licensed under a
+   Creative Commons Attribution 4.0 International License.
+
+Onboarding HTTP API (MOD)
+=========================
+
+.. toctree::
+    :maxdepth: 3
+
+
+Description
+~~~~~~~~~~~
+
+Onboarding API is sub-component under MOD provides following function:
+
+1. API to add/update data-formats
+2. API to add/update components (component_Spec)
+
+These API can be invoked by MS owners or by Acumos adapter to upload artifact into MOD catalog
+
+.. csv-table::
+   :header: "API name", "Swagger"
+   :widths: 10,5
+
+   "Inventory", ":download:`link <mod-onboardingapi.json>`"
+
+Base URL
+~~~~~~~~
+
+http:///onboarding
+
+ONBOARDING
+~~~~~~~~~~
+
+
+Default namespace
+
+
+
+
+
+GET ``/components/{component_id}``
+----------------------------------
+
+
+
+Description
++++++++++++
+
+.. raw:: html
+
+    Get a Component
+
+Parameters
+++++++++++
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Located in", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 15, 10, 10, 10, 20, 30
+
+        component_id | path | Yes | string |  |  |
+
+
+Request
++++++++
+
+
+Headers
+^^^^^^^
+
+.. code-block:: javascript
+
+    X-Fields: An optional fields mask to support partial object fetching - https://flask-restplus.readthedocs.io/en/stable/mask.html
+
+
+Responses
++++++++++
+
+**200**
+^^^^^^^
+
+Success
+
+
+Type: :ref:`component fields <d_41cf5e14516a536474c8079d332e86c7>` extended :ref:`inline <i_34dba329148d5512a1350568d728c028>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "componentType": "somestring",
+        "componentUrl": "somestring",
+        "description": "somestring",
+        "id": "somestring",
+        "modified": "2015-01-01T15:00:00.000Z",
+        "name": "somestring",
+        "owner": "somestring",
+        "spec": {},
+        "status": "somestring",
+        "version": "somestring",
+        "whenAdded": "2015-01-01T15:00:00.000Z"
+    }
+
+**404**
+^^^^^^^
+
+Component not found in Catalog
+
+
+Type: :ref:`Error message <d_e8453714bcbe180e59d1dfbfc583c9cb>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "message": "somestring"
+    }
+
+**500**
+^^^^^^^
+
+Internal Server Error
+
+
+
+
+
+
+GET ``/components``
+-------------------
+
+
+
+Description
++++++++++++
+
+.. raw:: html
+
+    Get list of Components in the catalog
+
+Parameters
+++++++++++
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Located in", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 15, 10, 10, 10, 20, 30
+
+        name | query | No | string |  |  | Name of component to filter for
+        version | query | No | string |  |  | Version of component to filter for
+
+
+Request
++++++++
+
+
+Headers
+^^^^^^^
+
+.. code-block:: javascript
+
+    X-Fields: An optional fields mask to support partial object fetching - https://flask-restplus.readthedocs.io/en/stable/mask.html
+
+
+Responses
++++++++++
+
+**200**
+^^^^^^^
+
+Success
+
+
+Type: :ref:`Component List <d_53b82f243acb3fd79572e5a8e909c801>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "components": [
+            {
+                "componentType": "somestring",
+                "componentUrl": "somestring",
+                "description": "somestring",
+                "id": "somestring",
+                "modified": "2015-01-01T15:00:00.000Z",
+                "name": "somestring",
+                "owner": "somestring",
+                "status": "somestring",
+                "version": "somestring",
+                "whenAdded": "2015-01-01T15:00:00.000Z"
+            },
+            {
+                "componentType": "somestring",
+                "componentUrl": "somestring",
+                "description": "somestring",
+                "id": "somestring",
+                "modified": "2015-01-01T15:00:00.000Z",
+                "name": "somestring",
+                "owner": "somestring",
+                "status": "somestring",
+                "version": "somestring",
+                "whenAdded": "2015-01-01T15:00:00.000Z"
+            }
+        ]
+    }
+
+**500**
+^^^^^^^
+
+Internal Server Error
+
+
+
+
+
+
+GET ``/dataformats/{dataformat_id}``
+------------------------------------
+
+
+
+Description
++++++++++++
+
+.. raw:: html
+
+    Get a Data Format
+
+Parameters
+++++++++++
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Located in", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 15, 10, 10, 10, 20, 30
+
+        dataformat_id | path | Yes | string |  |  |
+
+
+Request
++++++++
+
+
+Headers
+^^^^^^^
+
+.. code-block:: javascript
+
+    X-Fields: An optional fields mask to support partial object fetching - https://flask-restplus.readthedocs.io/en/stable/mask.html
+
+
+Responses
++++++++++
+
+**200**
+^^^^^^^
+
+Success
+
+
+Type: :ref:`dataformat fields <d_68ab1278c950fd214a4077565fd97922>` extended :ref:`inline <i_19c008f5124504e9d9c719d157dab70f>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "dataFormatUrl": "somestring",
+        "description": "somestring",
+        "id": "somestring",
+        "modified": "2015-01-01T15:00:00.000Z",
+        "name": "somestring",
+        "owner": "somestring",
+        "spec": {},
+        "status": "somestring",
+        "version": "somestring",
+        "whenAdded": "2015-01-01T15:00:00.000Z"
+    }
+
+**404**
+^^^^^^^
+
+Data Format not found in Catalog
+
+
+Type: :ref:`Error message <d_e8453714bcbe180e59d1dfbfc583c9cb>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "message": "somestring"
+    }
+
+**500**
+^^^^^^^
+
+Internal Server Error
+
+
+
+
+
+
+GET ``/dataformats``
+--------------------
+
+
+
+Description
++++++++++++
+
+.. raw:: html
+
+    Get list of Data Formats in the catalog
+
+
+Request
++++++++
+
+
+Headers
+^^^^^^^
+
+.. code-block:: javascript
+
+    X-Fields: An optional fields mask to support partial object fetching - https://flask-restplus.readthedocs.io/en/stable/mask.html
+
+
+Responses
++++++++++
+
+**200**
+^^^^^^^
+
+Success
+
+
+Type: :ref:`Data Format List <d_9479fe3b8fa2fcaeb723c198da99e791>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "dataFormats": [
+            {
+                "dataFormatUrl": "somestring",
+                "description": "somestring",
+                "id": "somestring",
+                "modified": "2015-01-01T15:00:00.000Z",
+                "name": "somestring",
+                "owner": "somestring",
+                "status": "somestring",
+                "version": "somestring",
+                "whenAdded": "2015-01-01T15:00:00.000Z"
+            },
+            {
+                "dataFormatUrl": "somestring",
+                "description": "somestring",
+                "id": "somestring",
+                "modified": "2015-01-01T15:00:00.000Z",
+                "name": "somestring",
+                "owner": "somestring",
+                "status": "somestring",
+                "version": "somestring",
+                "whenAdded": "2015-01-01T15:00:00.000Z"
+            }
+        ]
+    }
+
+**500**
+^^^^^^^
+
+Internal Server Error
+
+
+
+
+
+
+PATCH ``/components/{component_id}``
+------------------------------------
+
+
+
+Description
++++++++++++
+
+.. raw:: html
+
+    Update a Component's status in the Catalog
+
+Parameters
+++++++++++
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Located in", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 15, 10, 10, 10, 20, 30
+
+        component_id | path | Yes | string |  |  |
+
+
+Request
++++++++
+
+
+
+.. _d_fb61d9acd5848e8d882a33934d47ad4f:
+
+Body
+^^^^
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 10, 15, 15, 30, 25
+
+        owner | Yes | string |  |  | User ID
+        status | Yes | string |  | {'enum': ['published', 'revoked']} | . . . . .[published] is the only status change supported right now
+
+.. code-block:: javascript
+
+    {
+        "owner": "somestring",
+        "status": "published"
+    }
+
+Responses
++++++++++
+
+**200**
+^^^^^^^
+
+Success, Component status updated
+
+
+**400**
+^^^^^^^
+
+Bad Request
+
+
+Type: :ref:`Error message <d_e8453714bcbe180e59d1dfbfc583c9cb>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "message": "somestring"
+    }
+
+**403**
+^^^^^^^
+
+Forbidden Request
+
+
+Type: :ref:`Error message <d_e8453714bcbe180e59d1dfbfc583c9cb>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "message": "somestring"
+    }
+
+**404**
+^^^^^^^
+
+Component not found in Catalog
+
+
+Type: :ref:`Error message <d_e8453714bcbe180e59d1dfbfc583c9cb>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "message": "somestring"
+    }
+
+**500**
+^^^^^^^
+
+Internal Server Error
+
+
+
+
+
+
+PATCH ``/dataformats/{dataformat_id}``
+--------------------------------------
+
+
+
+Description
++++++++++++
+
+.. raw:: html
+
+    Update a Data Format's status in the Catalog
+
+Parameters
+++++++++++
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Located in", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 15, 10, 10, 10, 20, 30
+
+        dataformat_id | path | Yes | string |  |  |
+
+
+Request
++++++++
+
+
+
+.. _d_fb61d9acd5848e8d882a33934d47ad4f:
+
+Body
+^^^^
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 10, 15, 15, 30, 25
+
+        owner | Yes | string |  |  | User ID
+        status | Yes | string |  | {'enum': ['published', 'revoked']} | . . . . .[published] is the only status change supported right now
+
+.. code-block:: javascript
+
+    {
+        "owner": "somestring",
+        "status": "published"
+    }
+
+Responses
++++++++++
+
+**200**
+^^^^^^^
+
+Success, Data Format status updated
+
+
+**400**
+^^^^^^^
+
+Bad Request
+
+
+Type: :ref:`Error message <d_e8453714bcbe180e59d1dfbfc583c9cb>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "message": "somestring"
+    }
+
+**403**
+^^^^^^^
+
+Forbidden Request
+
+
+Type: :ref:`Error message <d_e8453714bcbe180e59d1dfbfc583c9cb>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "message": "somestring"
+    }
+
+**404**
+^^^^^^^
+
+Data Format not found in Catalog
+
+
+Type: :ref:`Error message <d_e8453714bcbe180e59d1dfbfc583c9cb>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "message": "somestring"
+    }
+
+**500**
+^^^^^^^
+
+Internal Server Error
+
+
+
+
+
+
+POST ``/components``
+--------------------
+
+
+
+Description
++++++++++++
+
+.. raw:: html
+
+    Add a Component to the Catalog
+
+
+Request
++++++++
+
+
+Headers
+^^^^^^^
+
+.. code-block:: javascript
+
+    X-Fields: An optional fields mask to support partial object fetching - https://flask-restplus.readthedocs.io/en/stable/mask.html
+
+
+
+.. _d_fd89ec3540efda71c3748235024e0b4d:
+
+Body
+^^^^
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 10, 15, 15, 30, 25
+
+        owner | No | string |  |  |
+        spec | No | :ref:`spec <i_793f480461dccbb35537f2001ab7af5b>` |  |  | The Component Spec schema is here -> https://git.onap.org/dcaegen2/platform/cli/plain/component-json-schemas/component-specification/dcae-cli-v2/component-spec-schema.json
+
+.. _i_793f480461dccbb35537f2001ab7af5b:
+
+**Spec schema:**
+
+
+The Component Spec schema is here -> https://git.onap.org/dcaegen2/platform/cli/plain/component-json-schemas/component-specification/dcae-cli-v2/component-spec-schema.json
+
+
+
+.. code-block:: javascript
+
+    {
+        "owner": "somestring",
+        "spec": {}
+    }
+
+Responses
++++++++++
+
+**200**
+^^^^^^^
+
+Success
+
+
+Type: :ref:`Component post <d_9eafe9d5168f431205b9fce1312b32bb>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "componentUrl": "somestring"
+    }
+
+**400**
+^^^^^^^
+
+Bad Request
+
+
+Type: :ref:`Error message <d_e8453714bcbe180e59d1dfbfc583c9cb>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "message": "somestring"
+    }
+
+**409**
+^^^^^^^
+
+Component already exists
+
+
+Type: :ref:`Error message <d_e8453714bcbe180e59d1dfbfc583c9cb>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "message": "somestring"
+    }
+
+**500**
+^^^^^^^
+
+Internal Server Error
+
+
+
+
+
+
+POST ``/dataformats``
+---------------------
+
+
+
+Description
++++++++++++
+
+.. raw:: html
+
+    Add a Data Format to the Catalog
+
+
+Request
++++++++
+
+
+Headers
+^^^^^^^
+
+.. code-block:: javascript
+
+    X-Fields: An optional fields mask to support partial object fetching - https://flask-restplus.readthedocs.io/en/stable/mask.html
+
+
+
+.. _d_7a085a9ab5ed1527229588d3b6d2c4c2:
+
+Body
+^^^^
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 10, 15, 15, 30, 25
+
+        owner | No | string |  |  |
+        spec | No | :ref:`spec <i_24d5c9ce4ae509ac2272fb61bf0e2003>` |  |  | The Data Format Spec schema is here -> https://git.onap.org/dcaegen2/platform/cli/plain/component-json-schemas/data-format/dcae-cli-v1/data-format-schema.json
+
+.. _i_24d5c9ce4ae509ac2272fb61bf0e2003:
+
+**Spec schema:**
+
+
+The Data Format Spec schema is here -> https://git.onap.org/dcaegen2/platform/cli/plain/component-json-schemas/data-format/dcae-cli-v1/data-format-schema.json
+
+
+
+.. code-block:: javascript
+
+    {
+        "owner": "somestring",
+        "spec": {}
+    }
+
+Responses
++++++++++
+
+**200**
+^^^^^^^
+
+Success
+
+
+Type: :ref:`Data Format post <d_6557e42aae4abfe7f132d85f512a1a26>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "dataFormatUrl": "somestring"
+    }
+
+**400**
+^^^^^^^
+
+Bad Request
+
+
+Type: :ref:`Error message <d_e8453714bcbe180e59d1dfbfc583c9cb>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "message": "somestring"
+    }
+
+**409**
+^^^^^^^
+
+Data Format already exists
+
+
+Type: :ref:`Error message <d_e8453714bcbe180e59d1dfbfc583c9cb>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "message": "somestring"
+    }
+
+**500**
+^^^^^^^
+
+Internal Server Error
+
+
+
+
+
+
+PUT ``/components/{component_id}``
+----------------------------------
+
+
+
+Description
++++++++++++
+
+.. raw:: html
+
+    Replace a Component Spec in the Catalog
+
+Parameters
+++++++++++
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Located in", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 15, 10, 10, 10, 20, 30
+
+        component_id | path | Yes | string |  |  |
+
+
+Request
++++++++
+
+
+
+.. _d_fd89ec3540efda71c3748235024e0b4d:
+
+Body
+^^^^
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 10, 15, 15, 30, 25
+
+        owner | No | string |  |  |
+        spec | No | :ref:`spec <i_793f480461dccbb35537f2001ab7af5b>` |  |  | The Component Spec schema is here -> https://git.onap.org/dcaegen2/platform/cli/plain/component-json-schemas/component-specification/dcae-cli-v2/component-spec-schema.json
+
+.. _i_793f480461dccbb35537f2001ab7af5b:
+
+**Spec schema:**
+
+
+The Component Spec schema is here -> https://git.onap.org/dcaegen2/platform/cli/plain/component-json-schemas/component-specification/dcae-cli-v2/component-spec-schema.json
+
+
+
+.. code-block:: javascript
+
+    {
+        "owner": "somestring",
+        "spec": {}
+    }
+
+Responses
++++++++++
+
+**200**
+^^^^^^^
+
+Success, Component replaced
+
+
+**400**
+^^^^^^^
+
+Bad Request
+
+
+Type: :ref:`Error message <d_e8453714bcbe180e59d1dfbfc583c9cb>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "message": "somestring"
+    }
+
+**404**
+^^^^^^^
+
+Component not found in Catalog
+
+
+Type: :ref:`Error message <d_e8453714bcbe180e59d1dfbfc583c9cb>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "message": "somestring"
+    }
+
+**500**
+^^^^^^^
+
+Internal Server Error
+
+
+
+
+
+
+PUT ``/dataformats/{dataformat_id}``
+------------------------------------
+
+
+
+Description
++++++++++++
+
+.. raw:: html
+
+    Replace a Data Format Spec in the Catalog
+
+Parameters
+++++++++++
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Located in", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 15, 10, 10, 10, 20, 30
+
+        dataformat_id | path | Yes | string |  |  |
+
+
+Request
++++++++
+
+
+
+.. _d_7a085a9ab5ed1527229588d3b6d2c4c2:
+
+Body
+^^^^
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 10, 15, 15, 30, 25
+
+        owner | No | string |  |  |
+        spec | No | :ref:`spec <i_24d5c9ce4ae509ac2272fb61bf0e2003>` |  |  | The Data Format Spec schema is here -> https://git.onap.org/dcaegen2/platform/cli/plain/component-json-schemas/data-format/dcae-cli-v1/data-format-schema.json
+
+.. _i_24d5c9ce4ae509ac2272fb61bf0e2003:
+
+**Spec schema:**
+
+
+The Data Format Spec schema is here -> https://git.onap.org/dcaegen2/platform/cli/plain/component-json-schemas/data-format/dcae-cli-v1/data-format-schema.json
+
+
+
+.. code-block:: javascript
+
+    {
+        "owner": "somestring",
+        "spec": {}
+    }
+
+Responses
++++++++++
+
+**200**
+^^^^^^^
+
+Success, Data Format added
+
+
+**400**
+^^^^^^^
+
+Bad Request
+
+
+Type: :ref:`Error message <d_e8453714bcbe180e59d1dfbfc583c9cb>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "message": "somestring"
+    }
+
+**404**
+^^^^^^^
+
+Data Format not found in Catalog
+
+
+Type: :ref:`Error message <d_e8453714bcbe180e59d1dfbfc583c9cb>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "message": "somestring"
+    }
+
+**500**
+^^^^^^^
+
+Internal Server Error
+
+
+
+
+
+Data Structures
+~~~~~~~~~~~~~~~
+
+.. _d_53b82f243acb3fd79572e5a8e909c801:
+
+Component List Model Structure
+------------------------------
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 10, 15, 15, 30, 25
+
+        components | No | array of :ref:`component fields <d_41cf5e14516a536474c8079d332e86c7>` |  |  |
+
+.. _d_fd89ec3540efda71c3748235024e0b4d:
+
+Component Spec Model Structure
+------------------------------
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 10, 15, 15, 30, 25
+
+        owner | No | string |  |  |
+        spec | No | :ref:`spec <i_793f480461dccbb35537f2001ab7af5b>` |  |  | The Component Spec schema is here -> https://git.onap.org/dcaegen2/platform/cli/plain/component-json-schemas/component-specification/dcae-cli-v2/component-spec-schema.json
+
+.. _i_793f480461dccbb35537f2001ab7af5b:
+
+**Spec schema:**
+
+
+The Component Spec schema is here -> https://git.onap.org/dcaegen2/platform/cli/plain/component-json-schemas/component-specification/dcae-cli-v2/component-spec-schema.json
+
+
+
+.. _d_9eafe9d5168f431205b9fce1312b32bb:
+
+Component post Model Structure
+------------------------------
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 10, 15, 15, 30, 25
+
+        componentUrl | Yes | string |  |  | . . . . Url to the Component Specification
+
+.. _d_9479fe3b8fa2fcaeb723c198da99e791:
+
+Data Format List Model Structure
+--------------------------------
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 10, 15, 15, 30, 25
+
+        dataFormats | No | array of :ref:`dataformat fields <d_68ab1278c950fd214a4077565fd97922>` |  |  |
+
+.. _d_7a085a9ab5ed1527229588d3b6d2c4c2:
+
+Data Format Spec Model Structure
+--------------------------------
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 10, 15, 15, 30, 25
+
+        owner | No | string |  |  |
+        spec | No | :ref:`spec <i_24d5c9ce4ae509ac2272fb61bf0e2003>` |  |  | The Data Format Spec schema is here -> https://git.onap.org/dcaegen2/platform/cli/plain/component-json-schemas/data-format/dcae-cli-v1/data-format-schema.json
+
+.. _i_24d5c9ce4ae509ac2272fb61bf0e2003:
+
+**Spec schema:**
+
+
+The Data Format Spec schema is here -> https://git.onap.org/dcaegen2/platform/cli/plain/component-json-schemas/data-format/dcae-cli-v1/data-format-schema.json
+
+
+
+.. _d_6557e42aae4abfe7f132d85f512a1a26:
+
+Data Format post Model Structure
+--------------------------------
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 10, 15, 15, 30, 25
+
+        dataFormatUrl | Yes | string |  |  | . . . . Url to the Data Format Specification
+
+.. _d_e8453714bcbe180e59d1dfbfc583c9cb:
+
+Error message Model Structure
+-----------------------------
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 10, 15, 15, 30, 25
+
+        message | No | string |  |  | . . . . .Details about the unsuccessful API request
+
+.. _d_fb61d9acd5848e8d882a33934d47ad4f:
+
+Patch Spec Model Structure
+--------------------------
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 10, 15, 15, 30, 25
+
+        owner | Yes | string |  |  | User ID
+        status | Yes | string |  | {'enum': ['published', 'revoked']} | . . . . .[published] is the only status change supported right now
+
+.. _d_41cf5e14516a536474c8079d332e86c7:
+
+component fields Model Structure
+--------------------------------
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 10, 15, 15, 30, 25
+
+        componentType | Yes | string |  |  | . . . . only 'docker'
+        componentUrl | Yes | string |  |  | . . . . Url to the Component Specification
+        description | Yes | string |  |  | . . . . Description of the component
+        id | Yes | string |  |  | . . . . ID of the component
+        modified | Yes | string | date-time |  | . . . . When component was last modified
+        name | Yes | string |  |  | . . . . Name of the component
+        owner | Yes | string |  |  | . . . . ID of who added the component
+        status | Yes | string |  |  | . . . . Status of the component
+        version | Yes | string |  |  | . . . . Version of the component
+        whenAdded | Yes | string | date-time |  | . . . . When component was added to the Catalog
+
+.. _d_c86e31bb6b9a2aaf18cab261f501cdf1:
+
+component fields by id Model Structure
+--------------------------------------
+
+:ref:`component fields <d_41cf5e14516a536474c8079d332e86c7>` extended :ref:`inline <i_34dba329148d5512a1350568d728c028>`
+
+.. _i_34dba329148d5512a1350568d728c028:
+
+**Inline schema:**
+
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 10, 15, 15, 30, 25
+
+        componentType | Yes | string |  |  | . . . . only 'docker'
+        componentUrl | Yes | string |  |  | . . . . Url to the Component Specification
+        description | Yes | string |  |  | . . . . Description of the component
+        id | Yes | string |  |  | . . . . ID of the component
+        modified | Yes | string | date-time |  | . . . . When component was last modified
+        name | Yes | string |  |  | . . . . Name of the component
+        owner | Yes | string |  |  | . . . . ID of who added the component
+        spec | Yes | :ref:`spec <i_ea9c5ae5ca1fb737a10e33ba863d3d34>` |  |  | The Component Specification (json)
+        status | Yes | string |  |  | . . . . Status of the component
+        version | Yes | string |  |  | . . . . Version of the component
+        whenAdded | Yes | string | date-time |  | . . . . When component was added to the Catalog
+
+.. _i_ea9c5ae5ca1fb737a10e33ba863d3d34:
+
+**Spec schema:**
+
+
+The Component Specification (json)
+
+
+
+.. _d_68ab1278c950fd214a4077565fd97922:
+
+dataformat fields Model Structure
+---------------------------------
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 10, 15, 15, 30, 25
+
+        dataFormatUrl | Yes | string |  |  | . . . . Url to the Data Format Specification
+        description | Yes | string |  |  | . . . . Description of the data format
+        id | Yes | string |  |  | . . . . ID of the data format
+        modified | Yes | string | date-time |  | . . . . When data format was last modified
+        name | Yes | string |  |  | . . . . Name of the data format
+        owner | Yes | string |  |  | . . . . ID of who added the data format
+        status | Yes | string |  |  | . . . . Status of the data format
+        version | Yes | string |  |  | . . . . Version of the data format
+        whenAdded | Yes | string | date-time |  | . . . . When data format was added to the Catalog
+
+.. _d_9c3ce799741cd0dae7f4d25c049e8a79:
+
+dataformat fields by id Model Structure
+---------------------------------------
+
+:ref:`dataformat fields <d_68ab1278c950fd214a4077565fd97922>` extended :ref:`inline <i_19c008f5124504e9d9c719d157dab70f>`
+
+.. _i_19c008f5124504e9d9c719d157dab70f:
+
+**Inline schema:**
+
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 10, 15, 15, 30, 25
+
+        dataFormatUrl | Yes | string |  |  | . . . . Url to the Data Format Specification
+        description | Yes | string |  |  | . . . . Description of the data format
+        id | Yes | string |  |  | . . . . ID of the data format
+        modified | Yes | string | date-time |  | . . . . When data format was last modified
+        name | Yes | string |  |  | . . . . Name of the data format
+        owner | Yes | string |  |  | . . . . ID of who added the data format
+        spec | Yes | :ref:`spec <i_c9a99411463ded6c619772d83b3882c8>` |  |  | The Data Format Specification (json)
+        status | Yes | string |  |  | . . . . Status of the data format
+        version | Yes | string |  |  | . . . . Version of the data format
+        whenAdded | Yes | string | date-time |  | . . . . When data format was added to the Catalog
+
+.. _i_c9a99411463ded6c619772d83b3882c8:
+
+**Spec schema:**
+
+
+The Data Format Specification (json)
diff --git a/docs/sections/offeredapis.rst b/docs/sections/offeredapis.rst
index 921ba54..f98c5d8 100644
--- a/docs/sections/offeredapis.rst
+++ b/docs/sections/offeredapis.rst
@@ -15,3 +15,4 @@
    apis/PNDA.rst
    apis/pmmapper.rst
    apis/SDK.rst
+   apis/mod-onboardingapi.rst