International License.
================================
-MultiCloud APIv1 Specification
+MultiCloud API v1 Specification
================================
The is the specification for MultiCloud API version v1.
portId M 1 String Port Id
================ ========= ============ ======== ================================
-**metadata**
-
-================ ========= ============ ======== ================================
-Parameter Qualifier Cardinality Content Description
-================ ========= ============ ======== ================================
- keyName M 1 String Key name
- value M 1 string value
-================ ========= ============ ======== ================================
::
}],
- "metada": [{
-
- "keyName": "foo",
+ "metada": {
- "value": "foo value"
+ "foo": "foo value"
- }],
+ },
"userdata": "abcdedf"
14.1.1. **Request**
>>>>>>>>>>>>>>>>>>>
-================ ========= ============ ======== ==================================
+================ ========= ============ ======== ================================================
Parameter Qualifier Cardinality Content Description
-================ ========= ============ ======== ==================================
-generic-vnf-id O 1 string generif VNF ID to search AAI object
-vf-module-id O 1 string vf module id to search AAI object
-oof_directives O 1 Object oof directives to update template_data
-sdnc_directives O 1 Object sdnc directives to update template_data
-template_type M 1 string template type with which the MultiCloud plugin inteprates template_data
- "heat",etc.
-template_data M 1 Object workload template data to instantiate workload onto VIM/Cloud instance
-================ ========= ============ ======== ==================================
+================ ========= ============ ======== ================================================
+generic-vnf-id O 1 string generif VNF ID to search AAI object
+vf-module-id O 1 string vf module id to search AAI object
+user_directives O 1 Object user directives to update template_data
+ This directives take 1st precedence
+ over the other directives
+oof_directives O 1 Object oof directives to update template_data
+ This directives take 2nd precedence
+sdnc_directives O 1 Object sdnc directives to update template_data
+ This directives take 3rd precedence
+template_type M 1 string template type with which the
+ MultiCloud plugin inteprates template_data
+ "heat",etc.
+template_data M 1 Object workload template data to
+ instantiate workload onto VIM/Cloud instance
+================ ========= ============ ======== ================================================
+
+================================= ========= ============ ======== ======================================
+vf-module-model-customization-id O 1 string uuid which is used to retrieve VNF
+
+================================= ========= ============ ======== ======================================
::
{
- "generic-vnf-id":"vnf-id-111111",
- "vf-module-id":"vf-module-id-2222222",
+ "generic-vnf-id": "2115b07a-0c45-46ab-929a-0e98764a6ff3",
+ "vf-module-id": "86d30674-e096-4957-8ec0-7e0aef68868c",
+ "vf-module-model-invariant-id": "aa83cd86-a6f2-4b97-90d4-46bd7cd8748b",
+ "vf-module-model-version-id": "9e4386fb-8cdb-45b8-9b01-ae37bc0ba452",
+ "vf-module-model-customization-id": "a9e47763-adb7-4689-8dad-f5b780bf1af4",
"oof_directives":{},
"sdnc_directives":{},
+ "user_directives":{},
"template_type":"heat",
"template_data":{{
"files":{ },
"flavor":"m1.heat"
},
"stack_name":"teststack",
- "template":{
- "heat_template_version":"2013-05-23",
- "description":"Simple template to test heat commands",
- "parameters":
- {
- "flavor":{
- "default":"m1.tiny",
- "type":"string"
- }
- },
- "resources":{
- "hello_world":{
- "type":"OS::Nova::Server",
- "properties":{
- "key_name":"heat_key",
- "flavor":{
- "get_param":"flavor"
- },
- "image":"40be8d1a-3eb9-40de-8abd-43237517384f",
- "user_data":"#!/bin/bash -xv\necho \"hello world\" > /root/hello-world.txt\n"
- }
- }
- }
- },
+ "template":"<escaped template file content>",
"timeout_mins":60
}
}
14.1.2. **Response**
>>>>>>>>>>>>>>>>>>>>
-================== ========= ============ ======== ==================================
+================== ========= ============ ======== ==============================================================
Parameter Qualifier Cardinality Content Description
-================== ========= ============ ======== ==================================
-template_type M 1 string template type with which the MultiCloud plugin inteprates template_data
- "heat",etc.
-workload_id M 1 string The ID of infrastructure workload resource
-template_response M 1 Object response from VIM/Cloud instance which is instantiating workload
-================== ========= ============ ======== ==================================
+================== ========= ============ ======== ==============================================================
+template_type M 1 string template type with which the MultiCloud
+ plugin inteprates template_data "heat",etc.
+workload_id M 1 string The ID of infrastructure workload resource
+template_response O 1 Object response from VIM/Cloud instance
+ which is instantiating workload
+workload_status M 1 string progress of workload instantiating process:
+ "CREATE_IN_PROGRESS","CREATE_COMPLETE","CREATE_FAILED"
+================== ========= ============ ======== ==============================================================
+
+====================== ========= ============ ======== ==============================================================
+workload_status_reason M 1 Object stack object which is instantiated
+====================== ========= ============ ======== ==============================================================
201: Created
::
{
- "template_type":"heat",
- "workload_id": "1234567890abcd"
- "template_response":
- {
- "stack": {
- "id": "1234567890abcd",
- "links": [
- {
- "href": "",
- "rel": "self"
- }
- ]
- }
+ "template_type": "HEAT",
+ "workload_status_reason": {
+ "id": "dca67f9d-37c1-4863-b5e0-0e3d3c53196e",
+ "links": [
+ {
+ "href": "http://msb-iag.onap:80/api/multicloud-titaniumcloud/v1/CloudOwner/ONAP-POD-01-Rail-06/orchestration/v1/709ba629fe194f8699b12f9d6ffd86a0/stacks/vlb_vfm_ewm_1/dca67f9d-37c1-4863-b5e0-0e3d3c53196e",
+ "rel": "self"
+ }
+ ]
+ },
+ "workload_status": "CREATE_IN_PROGRESS",
+ "workload_id": "dca67f9d-37c1-4863-b5e0-0e3d3c53196e"
}
14.2.2. **Response**
>>>>>>>>>>>>>>>>>>>>
-================== ========= ============ ======== ==================================
+================== ========= ============ ======== ==============================================================
Parameter Qualifier Cardinality Content Description
-================== ========= ============ ======== ==================================
-template_type M 1 string template type with which the MultiCloud plugin inteprates template_data
- "heat",etc.
-workload_id M 1 string The ID of infrastructure workload resource
-workload_status M 1 string Status of infrastructure workload:
- DELETE_IN_PROGRESS, CREATE_COMPLETE, CREATE_FAILED
- DELETE_IN_PROGRESS, DELETE_COMPLETE, DELETE_FAILED
- UPDATE_IN_PROGRESS, UPDATE_COMPLETE, UPDATE_FAILED
-================== ========= ============ ======== ==================================
+================== ========= ============ ======== ==============================================================
+template_type M 1 string Workload Template type e.g. "heat",etc.
+workload_id M 1 string The ID of infrastructure workload resource
+workload_status M 1 string progress of workload operation process:
+ CREATE_IN_PROGRESS, CREATE_COMPLETE, CREATE_FAILED
+ DELETE_IN_PROGRESS, DELETE_COMPLETE, DELETE_FAILED
+ UPDATE_IN_PROGRESS, UPDATE_COMPLETE, UPDATE_FAILED
+================== ========= ============ ======== ==============================================================
+
+====================== ========= ============ ======== ==============================================================
+workload_status_reason M 1 Object stack object which is instantiated
+====================== ========= ============ ======== ==============================================================
200: OK
::
{
- "template_type":"heat",
- "workload_id": "1234567890abcd",
- "workload_status":"CREATE_IN_PROCESS"
+ "template_type": "HEAT",
+ "workload_status_reason": {
+ "id": "dca67f9d-37c1-4863-b5e0-0e3d3c53196e",
+ "links": [
+ {
+ "href": "http://msb-iag.onap:80/api/multicloud-titaniumcloud/v1/CloudOwner/ONAP-POD-01-Rail-06/orchestration/v1/709ba629fe194f8699b12f9d6ffd86a0/stacks/vlb_vfm_ewm_1/dca67f9d-37c1-4863-b5e0-0e3d3c53196e",
+ "rel": "self"
+ }
+ ]
+ },
+ "workload_status": "CREATE_IN_PROGRESS",
+ "workload_id": "dca67f9d-37c1-4863-b5e0-0e3d3c53196e"
}
14.3.2. **Response**
>>>>>>>>>>>>>>>>>>>>
-NA
+================== ========= ============ ======== ================================================
+Parameter Qualifier Cardinality Content Description
+================== ========= ============ ======== ================================================
+template_type M 1 string Workload Template type e.g. "heat",etc.
+workload_id M 1 string The ID of infrastructure workload resource
+workload_status M 1 string progress of workload operation process:
+ DELETE_IN_PROGRESS, DELETE_COMPLETE, DELETE_FAILED
+================== ========= ============ ======== ================================================
+====================== ========= ============ ======== ==============================================================
+workload_status_reason M 1 Object stack object which is instantiated
+====================== ========= ============ ======== ==============================================================
+
+202: Accepted
204: No Content, The server has fulfilled the request by deleting the resource.
404: Not Found
500: Internal Server Error
+
+::
+
+ {
+ "template_type": "HEAT",
+ "workload_status_reason": {
+ "id": "dca67f9d-37c1-4863-b5e0-0e3d3c53196e",
+ "links": [
+ {
+ "href": "http://msb-iag.onap:80/api/multicloud-titaniumcloud/v1/CloudOwner/ONAP-POD-01-Rail-06/orchestration/v1/709ba629fe194f8699b12f9d6ffd86a0/stacks/vlb_vfm_ewm_1/dca67f9d-37c1-4863-b5e0-0e3d3c53196e",
+ "rel": "self"
+ }
+ ]
+ },
+ "workload_status": "DELETE_IN_PROGRESS",
+ "workload_id": "dca67f9d-37c1-4863-b5e0-0e3d3c53196e"
+ }
+
+
+
+14.4. **Update infrastructure workload into AAI Inventory**
+------------------------------------------------------------
+
+===================== =========================================================
+IF Definition Description
+===================== =========================================================
+URI msb.onap.org:80/api/multicloud/v1/{cloud-owner}/{cloud-region-id}/infra_workload/{workload-id}
+Operation POST
+Direction SO-> MULTICLOUD
+Description Update infrastructure workload into AAI
+===================== =========================================================
+
+
+14.4.1. **Request**
+>>>>>>>>>>>>>>>>>>>
+
+NA
+
+14.4.2. **Response**
+>>>>>>>>>>>>>>>>>>>>
+
+================== ========= ============ ======== ================================================
+Parameter Qualifier Cardinality Content Description
+================== ========= ============ ======== ================================================
+template_type M 1 string Workload Template type e.g. "heat",etc.
+workload_id M 1 string The ID of infrastructure workload resource
+workload_status M 1 string progress of workload operation process:
+ UPDATE_IN_PROGRESS, UPDATE_COMPLETE, UPDATE_FAILED
+================== ========= ============ ======== ================================================
+
+====================== ========= ============ ======== ==============================================================
+workload_status_reason M 1 Object stack object which is instantiated
+====================== ========= ============ ======== ==============================================================
+
+
+202: Accepted
+
+400: Bad Request
+
+401: Unauthorized
+
+404: Not Found
+
+500: Internal Server Error
+
+::
+
+ {
+ "template_type": "HEAT",
+ "workload_status_reason": {
+ },
+ "workload_status": "UPDATE_IN_PROGRESS",
+ "workload_id": "dca67f9d-37c1-4863-b5e0-0e3d3c53196e"
+ }
+
+
+15. **Proxied OpenStack APIs**
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+15.1. **Tokens**
+-------------------------
+
++---------------------+----------------------------------------------------------------------------------------------+
+| **IF Definition** | **Description** |
++=====================+==============================================================================================+
+| URI | http://msb.onap.org:80/api/multicloud/v1/{cloud-owner}/{region-id}/identity/v3/auth/tokens |
++---------------------+----------------------------------------------------------------------------------------------+
+| Operation | POST |
++---------------------+----------------------------------------------------------------------------------------------+
+| Direction | NSLCM-> MULTICLOUD |
++---------------------+----------------------------------------------------------------------------------------------+
+
+15.1.1. **Request**
+>>>>>>>>>>>>>>>>>>>
+
++-----------------+-----------------+-------------------+---------------+-----------------------+
+| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** |
++=================+=================+===================+===============+=======================+
+| auth | O | 1 | Object | Same as OpenStack |
+| | | | | Identity Tokens API |
++-----------------+-----------------+-------------------+---------------+-----------------------+
+
+::
+
+ {
+
+ }
+
+15.1.2. **Response**
+>>>>>>>>>>>>>>>>>>>>
+
+
++-----------------+-----------------+-------------------+---------------------+--------------------------------------------------------------+
+| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** |
++=================+=================+===================+=====================+==============================================================+
+| X-Subject-Token | M | 1 | String | The authentication token in Header |
++-----------------+-----------------+-------------------+---------------------+--------------------------------------------------------------+
+| token | O | 1 | Object | Token response, the same as OpenStack Identity Tokens API |
++-----------------+-----------------+-------------------+---------------------+--------------------------------------------------------------+
+
+201: Created
+
+401: Unauthorized
+
+403: Forbidden
+
+500: failed
+
+
+::
+
+ Header:
+ X-Subject-Token: a33f3b209e9b471a97fbeab8324a9a45
+
+ Body:
+
+ {
+ "token" : {
+ "user" : {
+ "domain" : {
+ "id" : "default",
+ "name" : "Default"
+ },
+ "id" : "9efb043c7629497a8028d7325ca1afb0",
+ "name" : "admin"
+ },
+ "catalog" : [
+ {
+ "type" : "network",
+ "endpoints" : [
+ {
+ "interface" : "public",
+ "id" : "39583c1508ad4b71b380570a745ee10a",
+ "url" : "http://172.16.77.10:80/api/multicloud-titaniumcloud/v1/CloudOwner/RegionOne/network",
+ "region_id" : "RegionOne",
+ "region" : "RegionOne"
+ }
+ ],
+ "name" : "neutron",
+ "id" : "99aefcc82a9246f98f8c281e61ffc754"
+ },
+ ...
+ ]
+ "project" : {
+ "name" : "admin",
+ "id" : "fcca3cc49d5e42caae15459e27103efc",
+ "domain" : {
+ "id" : "default",
+ "name" : "Default"
+ }
+ },
+ "is_domain" : false,
+ "expires_at" : "2017-09-11T03:52:29.000000Z"
+ }
+ }