Multicloud infra workload Delete and Get
[multicloud/framework.git] / docs / specs / multicloud_infra_workload.rst
index 82bf9df..ba1c312 100644 (file)
@@ -6,32 +6,33 @@
 MultiCloud infra_workload API
 ===============================
 
 MultiCloud infra_workload API
 ===============================
 
-we have two purposes for this API:
+We have two purposes for this API:
 
 
-#. Intergrate SO and Multicloud.
+#. Integrate SO and Multicloud.
 #. Generic API for SO to talk to different Multicloud plugins.
 
 
 Problem Description
 ===================
 
 #. Generic API for SO to talk to different Multicloud plugins.
 
 
 Problem Description
 ===================
 
-Currently HPA flavors are returned by OOF  to SO and SO copies these flavors in
-the Heat template before sending the Heat template to Multicloud.  In Casablanca
+Currently HPA flavors are returned by OOF to SO and SO copies these flavors in
+the Heat template before sending the Heat template to Multicloud. In Casablanca
 instead of SO making changes in the Heat template the flavor information will be
 instead of SO making changes in the Heat template the flavor information will be
-provided to Multicloud and Multicloud will pass these as parameters to HEAT
+provided to Multicloud and Multicloud will pass this as parameters to HEAT
 command line.
 command line.
-The detail design refer to https://wiki.onap.org/display/DW/SO+Casablanca+HPA+Design
+For further detailed design, please refer to https://wiki.onap.org/display/DW/SO+Casablanca+HPA+Design
 
 
 Propose Change
 ==============
 
 
 
 Propose Change
 ==============
 
-Add infrastructure workload API
--------------------------------
+Add infrastructure workload
+---------------------------
 
 
-API URL: http://{msb IP}:{msb port}/api/multicloud /v1/{cloud-owner}/{cloud-region-id}/infra_workload
+API URL: POST http://{msb IP}:{msb port}/api/multicloud/v1/{cloud-owner}/{cloud-region-id}/infra_workload
 
 Request Body:
 
 Request Body:
+>>>>>>>>>>>>>
 ::
 
   {
 ::
 
   {
@@ -44,6 +45,7 @@ Request Body:
   }
 
 oof_directives:
   }
 
 oof_directives:
+:::::::::::::::
 ::
 
       "directives":[
 ::
 
       "directives":[
@@ -79,9 +81,8 @@ oof_directives:
          }
       ]
 
          }
       ]
 
-
 Heat examples
 Heat examples
-=============
+:::::::::::::
 ::
 
   "template_type":"heat",
 ::
 
   "template_type":"heat",
@@ -119,15 +120,151 @@ Heat examples
      "timeout_mins":60
   }
 
      "timeout_mins":60
   }
 
+Response:
+>>>>>>>>>
+
+Response Codes
+::::::::::::::
+Success
+.......
+
++--------------------+----------------------------------------------------------------------+
+| Code               | Reason                                                               |
++====================+======================================================================+
+| 201 - Created      | Resource was created and is ready to use.                            |
++--------------------+----------------------------------------------------------------------+
+
+Error
+.....
+
++--------------------+----------------------------------------------------------------------+
+| Code               | Reason                                                               |
++====================+======================================================================+
+| 400 - Bad Request  | Some content in the request was invalid.                             |
++--------------------+----------------------------------------------------------------------+
+| 401 - Unauthorized | User must authenticate before making a request.                      |
++--------------------+----------------------------------------------------------------------+
+| 409 - Conflict     | This operation conflicted with another operation on this resource.   |
++--------------------+----------------------------------------------------------------------+
+
+Response Body
+:::::::::::::
+::
+
+    {
+        "template_type":"heat",
+        "workload_id": "<The ID of infrastructure workload resource>"
+        "template_response":
+        {
+            "stack": {
+            "id": "<The UUID of stack>",
+            "links": [
+                {
+                     "href": "<A list of URLs for the stack>",
+                     "rel": "self"
+                }
+            ]
+        }
+    }
+
+Delete infrastructure workload
+------------------------------
+
+API DELETE URL: http://{msb IP}:{msb port}/api/multicloud/v1/{cloud-owner}/{cloud-region-id}/infra_workload/{workload-id}
+
+Response:
+>>>>>>>>>
+
+Response Codes
+::::::::::::::
+Success
+.......
+
++--------------------+----------------------------------------------------------------------+
+| Code               | Reason                                                               |
++====================+======================================================================+
+| 204 - No Content   | The server has fulfilled the request by deleting the resource.       |
++--------------------+----------------------------------------------------------------------+
+
+Error
+.....
+
++--------------------+----------------------------------------------------------------------+
+| Code               | Reason                                                               |
++====================+======================================================================+
+| 400 - Bad Request  | Some content in the request was invalid.                             |
++--------------------+----------------------------------------------------------------------+
+| 401 - Unauthorized | User must authenticate before making a request.                      |
++--------------------+----------------------------------------------------------------------+
+| 404 - Not Found    | The requested resource could not be found.                           |
++--------------------+----------------------------------------------------------------------+
+| 500 - Internal     | Something went wrong inside the service. This should not happen      |
+|       Server Error | usually. If it does happen, it means the server has experienced      |
+|                    | some serious problems.                                               |
++--------------------+----------------------------------------------------------------------+
+
+Response Body
+:::::::::::::
+This request does not return anything in the response body.
+
+Get infrastructure workload
+----------------------------
+
+API GET URL: http://{msb IP}:{msb port}/api/multicloud/v1/{cloud-owner}/{cloud-region-id}/infra_workload/{workload-id}
+
+Response:
+>>>>>>>>>
+
+Response Codes
+::::::::::::::
+Success
+.......
+
++--------------------+----------------------------------------------------------------------+
+| Code               | Reason                                                               |
++====================+======================================================================+
+| 200 - OK           | Request was successful.                                              |
++--------------------+----------------------------------------------------------------------+
+
+Error
+.....
+
++--------------------+----------------------------------------------------------------------+
+| Code               | Reason                                                               |
++====================+======================================================================+
+| 400 - Bad Request  | Some content in the request was invalid.                             |
++--------------------+----------------------------------------------------------------------+
+| 401 - Unauthorized | User must authenticate before making a request.                      |
++--------------------+----------------------------------------------------------------------+
+| 404 - Not Found    | The requested resource could not be found.                           |
++--------------------+----------------------------------------------------------------------+
+| 500 - Internal     | Something went wrong inside the service. This should not happen      |
+|       Server Error | usually. If it does happen, it means the server has experienced      |
+|                    | some serious problems.                                               |
++--------------------+----------------------------------------------------------------------+
+
+Response Body
+:::::::::::::
+::
+
+    {
+        "template_type":"<heat/tosca/etc.>",
+        "workload_id": "<The ID of infrastructure workload resource>",
+        "workload_status":"CREATE_IN_PROCESS/CREATE_COMPLETE/DELETE_IN_PROCESS/etc"
+    }
+
 Work Items
 ==========
 
 #. Work with SO.
 #. Work with OOF team for oof_directive form.
 #. Work with SDNC team for sdc_directive form.
 Work Items
 ==========
 
 #. Work with SO.
 #. Work with OOF team for oof_directive form.
 #. Work with SDNC team for sdc_directive form.
+#. Expose API by broker and each plugin.
 
 Tests
 =====
 
 
 Tests
 =====
 
-#. Unit Tests with tox
+#. Unit Tests with tox.
+#. Pairwise test with SO project.
+#. Integration test with vCPE HPA test.
 #. CSIT Tests, the input/ouput of broker and each plugin see API design above.
 #. CSIT Tests, the input/ouput of broker and each plugin see API design above.