CDS Api reference add index, template, first APIs
Issue-ID: CCSDK-2992
Change-Id: Iad8524cce702deb7f35650b9bd69b6690c0ecc6d
Signed-off-by: JakobKrieg <jakob.krieg@bcmsolutions.de>
diff --git a/docs/api-reference/api-doc-template.rst b/docs/api-reference/api-doc-template.rst
new file mode 100644
index 0000000..54e587f
--- /dev/null
+++ b/docs/api-reference/api-doc-template.rst
@@ -0,0 +1,205 @@
+.. This work is licensed under a Creative Commons Attribution 4.0
+.. International License. http://creativecommons.org/licenses/by/4.0
+.. Copyright (C) 2020 Deutsche Telekom AG.
+
+
+.. This is a template to document new APIs for CDS blueprint processor
+
+.. make use of tabs whenever it fits
+
+Module
+====================
+
+Resource 1
+------------
+
+General description about the resource.
+
+
+Method 1 Endpoint 1
+~~~~~~~~~~~~~~~~~~~~
+
+<method> ``<path>``
+......................
+
+Method 1 Endpoint 1 description
+
+Request
+...........
+
+.. code-block:: curl
+ :caption: **(sample) request**
+
+ request command
+
+.. can be split into Header and Body description if thats more suitable.
+.. If its split, Header requires content-type definition, Body requires example payload
+
+**Request Path Parameters:**
+
+.. list-table::
+ :widths: 20 20 20 40
+ :header-rows: 1
+
+ * - Parameter
+ - Type
+ - Required
+ - Description
+ * - value 1
+ - value 2
+ - value 3
+ - value 4
+ * - value 1
+ - value 2
+ - value 3
+ - value 4
+
+**Request Query Parameters:**
+
+.. list-table::
+ :widths: 20 20 20 40
+ :header-rows: 1
+
+ * - Parameter
+ - Type
+ - Required
+ - Description
+ * - value 1
+ - value 2
+ - value 3
+ - value 4
+ * - value 1
+ - value 2
+ - value 3
+ - value 4
+
+**Request Body Parameters:**
+
+.. list-table::
+ :widths: 20 20 20 40
+ :header-rows: 1
+
+ * - Parameter
+ - Type
+ - Required
+ - Description
+ * - value 1
+ - value 2
+ - value 3
+ - value 4
+ * - value 1
+ - value 2
+ - value 3
+ - value 4
+
+Success Response(s)
+......................
+
+HTTP Status 202 OK
+
+Headers:
+``Content-Type:application/json``
+
+.. code-block:: json
+ :caption: **(sample) response body and/or response schema**
+
+ (sample) response (can be {})
+
+**Success Response Parameters:**
+
+.. list-table::
+ :widths: 30 30 40
+ :header-rows: 1
+
+ * - Parameter
+ - Type
+ - Description
+ * - value 1
+ - value 2
+ - value 3
+ * - value 1
+ - value 2
+ - value 3
+
+Error Response(s)
+......................
+
+HTTP Status 404 The requested resource could not be found
+
+.. code-block:: json
+ :caption: **sample error response**
+
+ error response
+
+**Error Response Parameters:**
+
+.. list-table::
+ :widths: 30 30 40
+ :header-rows: 1
+
+ * - Parameter
+ - Type
+ - Description
+ * - value 1
+ - value 2
+ - value 3
+ * - value 1
+ - value 2
+ - value 3
+
+.. or just table for responses with HTTP code, description and schema
+
+Consumes
+............
+
+``application/json``
+
+Produces
+...........
+
+``application/json``
+
+
+Functional Description
+..............................
+
+What does the API do in detail?
+
+Technical Description
+...........................
+
+Called class, methods, other hints.
+
+Related topics
+......................
+
+ * Topic 1
+ * Topic 2
+
+
+Method 2 Endpoint 1
+~~~~~~~~~~~~~~~~~~~~
+
+<method> ``<path>``
+......................
+
+Method 2 Endpoint 1 description
+
+..
+
+
+Method 1 Endpoint 2 (Subresource):
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+<method> ``<path><subpath>``
+..............................
+
+
+..
+
+Resource 2
+--------------------
+
+
+..
+
diff --git a/docs/api-reference/bp-processor.rst b/docs/api-reference/bp-processor.rst
new file mode 100644
index 0000000..1498d13
--- /dev/null
+++ b/docs/api-reference/bp-processor.rst
@@ -0,0 +1,216 @@
+.. This work is licensed under a Creative Commons Attribution 4.0
+.. International License. http://creativecommons.org/licenses/by/4.0
+.. Copyright (C) 2020 Deutsche Telekom AG.
+
+Blueprint Processor API Reference
+==================================
+
+Introduction
+--------------
+
+This section shows all resources and endpoints which CDS BP processor currently provides with sample requests/responses,
+parameter description and other information. If there is a new API and you want do document it, you can use this template
+:download:`rst <api-doc-template.rst>`.
+
+Authentification
+-----------------
+
+Use Basic athentification with `ccsdkapps` as a username and password, in Header ``Authorization: Basic Y2NzZGthcHBzOmNjc2RrYXBwcw==``.
+
+Download
+------------
+
+You can find a postman collection including sample requests here: :download:`JSON <media/bp-processor.postman_collection.json>`
+
+General Setup
+--------------
+
+All endpoints are accessable under ``http://{{host}}:{{port}}/api/v1/``. Host and port depends on your CDS BP processor
+deployment.
+
+
+List all endpoints
+-------------------
+
+Lists all available endpoints from blueprints processor API.
+
+
+Request
+~~~~~~~~~~
+
+GET ``http://{{host}}:{{port}}/actuator/mappings``
+....................................................
+
+Lists all endpoints from blueprints processor.
+
+.. code-block:: curl
+ :caption: **request**
+
+ curl --location --request GET 'http://localhost:8081/actuator/mappings' \
+ --header 'Authorization: Basic Y2NzZGthcHBzOmNjc2RrYXBwcw=='
+
+
+Success Response
+~~~~~~~~~~~~~~~~~
+
+HTTP Status 202 OK
+
+.. code-block:: json
+ :caption: **sample response body**
+
+ {
+ "contexts": {
+ "application": {
+ "mappings": {
+ "dispatcherHandlers": {
+ "webHandler": [
+
+ ...
+
+ {
+ "predicate": "{GET /api/v1/blueprint-model, produces [application/json]}",
+ "handler": "org.onap.ccsdk.cds.blueprintsprocessor.designer.api.BlueprintModelController#allBlueprintModel()",
+ "details": {
+ "handlerMethod": {
+ "className": "org.onap.ccsdk.cds.blueprintsprocessor.designer.api.BlueprintModelController",
+ "name": "allBlueprintModel",
+ "descriptor": "()Ljava/util/List;"
+ },
+ "handlerFunction": null,
+ "requestMappingConditions": {
+ "consumes": [],
+ "headers": [],
+ "methods": [
+ "GET"
+ ],
+ "params": [],
+ "patterns": [
+ "/api/v1/blueprint-model"
+ ],
+ "produces": [
+ {
+ "mediaType": "application/json",
+ "negated": false
+ }
+ ]
+ }
+ }
+ },
+ {
+ "predicate": "{GET /api/v1/blueprint-model/meta-data/{keyword}, produces [application/json]}",
+ "handler": "org.onap.ccsdk.cds.blueprintsprocessor.designer.api.BlueprintModelController#allBlueprintModelMetaData(String, Continuation)",
+ "details": {
+ "handlerMethod": {
+ "className": "org.onap.ccsdk.cds.blueprintsprocessor.designer.api.BlueprintModelController",
+ "name": "allBlueprintModelMetaData",
+ "descriptor": "(Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;"
+ },
+ "handlerFunction": null,
+ "requestMappingConditions": {
+ "consumes": [],
+ "headers": [],
+ "methods": [
+ "GET"
+ ],
+ "params": [],
+ "patterns": [
+ "/api/v1/blueprint-model/meta-data/{keyword}"
+ ],
+ "produces": [
+ {
+ "mediaType": "application/json",
+ "negated": false
+ }
+ ]
+ }
+ }
+ }
+
+ ...
+
+ ]
+ }
+ },
+ "parentId": null
+ }
+ }
+ }
+
+Blueprint Model Catalog API
+----------------------------
+
+Blueprint-model resource contains all Controller Blueprints Archive (CBA) packages which are available in CDS.
+With blueprint-model API you can manage your CBAs.
+
+
+List all blueprint models
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+GET ``/blueprint-model``
+..............................
+
+Lists all blueprint models which are saved in CDS.
+
+Request
+...........
+
+.. code-block:: curl
+ :caption: **request**
+
+ curl --location --request GET 'http://{{ip_adress}}:{{port}}/api/v1/blueprint-model' \
+ --header 'Authorization: Basic Y2NzZGthcHBzOmNjc2RrYXBwcw=='
+
+Produces
+...........
+
+``application/json``
+
+
+Success Response
+......................
+
+HTTP Status 200 OK
+
+.. code-block:: json
+ :caption: **example response**
+
+ [
+ {
+ "blueprintModel": {
+ "id": "109e725d-5145-4f70-a2e7-ee6640e2fb5f",
+ "artifactUUId": null,
+ "artifactType": "SDNC_MODEL",
+ "artifactVersion": "1.0.0",
+ "artifactDescription": "",
+ "internalVersion": null,
+ "createdDate": "2020-11-09T19:00:20.000Z",
+ "artifactName": "vLB_CDS_RESTCONF",
+ "published": "Y",
+ "updatedBy": "DanielEmmarts>",
+ "tags": "vLB-CDS"
+ }
+ },
+ {
+ "blueprintModel": {
+ "id": "5cce3804-09eb-473d-b513-81f8547a7240",
+ "artifactUUId": null,
+ "artifactType": "SDNC_MODEL",
+ "artifactVersion": "1.0.0",
+ "artifactDescription": "",
+ "internalVersion": null,
+ "createdDate": "2020-11-09T19:00:20.000Z",
+ "artifactName": "vLB_CDS",
+ "published": "Y",
+ "updatedBy": "TomKennedy>",
+ "tags": "vLB_CDS"
+ }
+ }
+ ]
+
+Technical Description
+...........................
+
+Loads all Blueprint Models which are saved in the CDS database in table `BLUEPRINT_MODEL`. Unpublished and unproceeded
+Blueprint Models are also included.
+Called class/method: ``org.onap.ccsdk.cds.blueprintsprocessor.designer.api.BlueprintModelController#allBlueprintModel()``.
diff --git a/docs/api-reference/index.rst b/docs/api-reference/index.rst
new file mode 100644
index 0000000..64e330d
--- /dev/null
+++ b/docs/api-reference/index.rst
@@ -0,0 +1,12 @@
+.. This work is licensed under a Creative Commons Attribution 4.0
+.. International License. http://creativecommons.org/licenses/by/4.0
+.. Copyright (C) 2020 Deutsche Telekom AG.
+
+Offered APIs
+~~~~~~~~~~~~~~
+
+.. toctree::
+ :caption: Offered APIs
+ :maxdepth: 2
+
+ bp-processor
\ No newline at end of file
diff --git a/docs/api-reference/media/bp-processor.postman_collection.json b/docs/api-reference/media/bp-processor.postman_collection.json
new file mode 100644
index 0000000..4dd1c5f
--- /dev/null
+++ b/docs/api-reference/media/bp-processor.postman_collection.json
@@ -0,0 +1,220 @@
+{
+ "info": {
+ "_postman_id": "481808a1-8f9d-47b3-8e03-9302d22731d9",
+ "name": "Blueprints Processor API Reference Collection",
+ "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
+ },
+ "item": [
+ {
+ "name": "Get All Endpoints",
+ "request": {
+ "method": "GET",
+ "header": [],
+ "url": {
+ "raw": ""
+ },
+ "description": "Lists all endpoints from blueprints processor"
+ },
+ "response": []
+ },
+ {
+ "name": "Get Blueprints",
+ "protocolProfileBehavior": {
+ "disableBodyPruning": true
+ },
+ "request": {
+ "auth": {
+ "type": "basic",
+ "basic": [
+ {
+ "key": "password",
+ "value": "ccsdkapps",
+ "type": "string"
+ },
+ {
+ "key": "username",
+ "value": "ccsdkapps",
+ "type": "string"
+ }
+ ]
+ },
+ "method": "GET",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application/json"
+ },
+ {
+ "key": "",
+ "value": "",
+ "type": "text",
+ "disabled": true
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\r\n\"loadModelType\" : true,\r\n\"loadResourceDictionary\" : true,\r\n\"loadCBA\" : false\r\n}",
+ "options": {
+ "raw": {}
+ }
+ },
+ "url": {
+ "raw": "http://{{host}}:{{port}}/api/v1/blueprint-model",
+ "protocol": "http",
+ "host": [
+ "{{host}}"
+ ],
+ "port": "{{port}}",
+ "path": [
+ "api",
+ "v1",
+ "blueprint-model"
+ ]
+ }
+ },
+ "response": [
+ {
+ "name": "CDS Bootstrap",
+ "originalRequest": {
+ "method": "POST",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application/json"
+ },
+ {
+ "key": "",
+ "value": "",
+ "type": "text",
+ "disabled": true
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\r\n\"loadModelType\" : false,\r\n\"loadResourceDictionary\" : true,\r\n\"loadCBA\" : false\r\n}",
+ "options": {
+ "raw": {}
+ }
+ },
+ "url": {
+ "raw": "http://localhost:8081/api/v1/blueprint-model/bootstrap",
+ "protocol": "http",
+ "host": [
+ "localhost"
+ ],
+ "port": "8081",
+ "path": [
+ "api",
+ "v1",
+ "blueprint-model",
+ "bootstrap"
+ ]
+ }
+ },
+ "status": "OK",
+ "code": 200,
+ "_postman_previewlanguage": "json",
+ "header": [
+ {
+ "key": "X-ONAP-RequestID",
+ "value": "b73253b6-d2be-4701-bdb2-31fa66b79a01"
+ },
+ {
+ "key": "X-ONAP-InvocationID",
+ "value": "b1a59296-fcf2-4435-b8de-9a2e9b9f4077"
+ },
+ {
+ "key": "X-ONAP-PartnerName",
+ "value": "cds-controller"
+ },
+ {
+ "key": "Vary",
+ "value": "Origin"
+ },
+ {
+ "key": "Vary",
+ "value": "Access-Control-Request-Method"
+ },
+ {
+ "key": "Vary",
+ "value": "Access-Control-Request-Headers"
+ },
+ {
+ "key": "Content-Type",
+ "value": "application/json"
+ },
+ {
+ "key": "Content-Length",
+ "value": "0"
+ },
+ {
+ "key": "Cache-Control",
+ "value": "no-cache, no-store, max-age=0, must-revalidate"
+ },
+ {
+ "key": "Pragma",
+ "value": "no-cache"
+ },
+ {
+ "key": "Expires",
+ "value": "0"
+ },
+ {
+ "key": "X-Content-Type-Options",
+ "value": "nosniff"
+ },
+ {
+ "key": "X-Frame-Options",
+ "value": "DENY"
+ },
+ {
+ "key": "X-XSS-Protection",
+ "value": "1 ; mode=block"
+ },
+ {
+ "key": "Referrer-Policy",
+ "value": "no-referrer"
+ }
+ ],
+ "cookie": [],
+ "body": ""
+ }
+ ]
+ }
+ ],
+ "event": [
+ {
+ "listen": "prerequest",
+ "script": {
+ "id": "ac0bd38e-a1ae-48ea-9a99-e09c59dada9a",
+ "type": "text/javascript",
+ "exec": [
+ ""
+ ]
+ }
+ },
+ {
+ "listen": "test",
+ "script": {
+ "id": "ce5f2837-00f5-4dde-9a45-2460c6cebd12",
+ "type": "text/javascript",
+ "exec": [
+ ""
+ ]
+ }
+ }
+ ],
+ "variable": [
+ {
+ "id": "3d10b67b-766c-40e4-bfc4-a2b913414336",
+ "key": "host",
+ "value": "localhost"
+ },
+ {
+ "id": "ef57cc1c-95c6-4679-8da1-42d356a060fe",
+ "key": "port",
+ "value": "8081"
+ }
+ ],
+ "protocolProfileBehavior": {}
+}
\ No newline at end of file
diff --git a/docs/index.rst b/docs/index.rst
index 690ba13..af25a59 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -132,6 +132,15 @@
ui/designer
+Offered APIs
+----------------------------------
+
+.. toctree::
+ :maxdepth: 3
+
+ api-reference/index
+
+
Controller Design Studio Presentation
-------------------------------------