blob: e68aa59721eb46badf0968b57a2f87948807736f [file] [log] [blame]
..
This work is licensed under a Creative Commons Attribution 4.0
International License.
================================
MultiCloud API v1 Specification
================================
The is the specification for MultiCloud API version v1.
Note: "MultiCloud API Specification V1" refers to the specification for MultiCloud API version v0
API Catalog
===========
1. **Scope**
^^^^^^^^^^^^
The scope of the present document is to describe the MutliCloud NorthBound API
specification.
2. **Terms, Definitions and Abbreviations**
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
For the purposes of the present document, the following abbreviations
apply:
===================== =========================================================
Abbreviation Description
===================== =========================================================
NFVO Network Functions Virtualization Orchestrator
VNFM Virtual Network Function Management
VIM Virtualized Infrastructure Manager
MultiVIM/MultiCloud MultVIM driver services for OPEN-O to drive VIM instances
===================== =========================================================
3. **Image Management**
^^^^^^^^^^^^^^^^^^^^^^^
3.1. **Create Image**
---------------------
===================== =========================================================
IF Definition Description
===================== =========================================================
URI msb.onap.org:80/api/multicloud/v1/{cloud-owner}/{cloud-region-id}/{tenantid}/images
Operation POST
Direction NSLCM->MULTIVIM
Description Create Image and Upload the image file to the VIM
===================== =========================================================
3.1.1. **Request**
>>>>>>>>>>>>>>>>>>
================ ========= ============ ======== ================================
Parameter Qualifier Cardinality Content Description
================ ========= ============ ======== ================================
name M 1 String Image Name
imagePath M 1 String Image Local Path from catalog
imageType M 1 String Image Type
ami, ari, aki, vhd, vhdx, vmdk, raw, qcow2, vdi, iso
visibility O 1 string Visibility for this image.
public, private, shared, or community
containerFormat M 1 string ami,ari,aki,bare,ovf,ova, docker
properties O 0..N List Examples:--property vmware_disktype=streamOptimized --property vmware_adaptertype="lsiLogic"
================ ========= ============ ======== ================================
::
{
"imageName": "cirros",
"imagePath": "/home/cirros.qcow2",
"imageType": "qcow2"
"containerFormat":"bare"
}
3.1.2. **Response**
>>>>>>>>>>>>>>>>>>>
================ ========= ============ ======== ================================
Parameter Qualifier Cardinality Content Description
================ ========= ============ ======== ================================
id M 1 String Image UUID in the VIM
name M 1 String Image Name
returnCode M 1 Int 0: Already exist 1: Newly created
imageType M 1 String Image Type
ami, ari, aki, vhd, vhdx, vmdk, raw, qcow2, vdi, iso
containerFormat M 1 string ami,?ari,?aki,?bare,?ovf,?ova, ?docker
visibility O 1 string Visibility for this image.
public, private, shared, or community
properties O 0..N List of key-value pairs
vimid M 1 String vim id
vimName O 1 string vim name
cloud-owner M 1 String cloud owner
cloud-region-id M 1 string cloud region id
tenantId M 1 String Tenant UUID
================ ========= ============ ======== ================================
*202*: accepted
500: failed
::
{
"id": "3c9eebdbbfd345658269340b9ea6fb73",
"name": "cirros",
"returnCode": 1
}
3.2. **Delete Image**
---------------------
===================== =========================================================
IF Definition Description
===================== =========================================================
URI msb.onap.org:80/api/multicloud/v1/{cloud-owner}/{cloud-region-id}/{tenantid}/images/{imageId}
Operation Delete
Direction NSLCM->MULTIVIM
Description Delete Image
===================== =========================================================
3.2.1. **Request**
>>>>>>>>>>>>>>>>>>
N/A
3.2.2. **Response**
>>>>>>>>>>>>>>>>>>>
204: no content
3.3. **List Images**
--------------------
===================== =========================================================
IF Definition Description
===================== =========================================================
URI msb.onap.org:80/api/multicloud/v1/{cloud-owner}/{cloud-region-id}/{tenantid}/images
Operation GET
Direction NSLCM->MULTIVIM
Description Query Image list
===================== =========================================================
3.3.1. **Request**
>>>>>>>>>>>>>>>>>>
============== ========= ============ ======== ================================
Parameter Qualifier Cardinality Content Description
============== ========= ============ ======== ================================
limit O 1 integer Requests a page size of items. Returns a number of items up to a limit value. Use the limit parameter to make an initial limited request and use the ID of the last-seen item from the response as the marker parameter value in a subsequent limited request.
marker O 1 string The ID of the last-seen item. Use the limit parameter to make an initial limited request and use the ID of the last-seen item from the response as the marker parameter value in a subsequent limited request.
name O 1 String Filters the response by a name, as a string. A valid value is the name of an image
============== ========= ============ ======== ================================
3.3.2. **Response**
>>>>>>>>>>>>>>>>>>>
================ ========= ============ ======== ================================
Parameter Qualifier Cardinality Content Description
================ ========= ============ ======== ================================
images M 0..N List Image List
id M 1 String Image ID
size M 1 int Image Size
name M 1 String Image Name
status M 1 String Image Status
imageType M 1 String Image Type
ami, ari, aki, vhd, vhdx, vmdk, raw, qcow2, vdi, iso
containerFormat M 1 string ami,?ari,?aki,?bare,?ovf,?ova, ?docker
visibility O 1 string Visibility for this image.
public, private, shared, or community
vimId M 1 String vim id
vimName O 1 string vim name
cloud-owner M 1 String cloud owner
cloud-region-id M 1 string cloud region id
tenantId M 1 String Tenant UUID
================ ========= ============ ======== ================================
200: ok
500: failed
::
{
"vimid": "",
"vimname": "",
"imageList": [{
"status": "active",
"id": "5e2757c1-f846-4727-915c-9a872553ed75",
"size": 862016,
"name": "vim-plus-cgsl40g-z.qcow2"
}]
}
3.4. **Get Image**
------------------
===================== =========================================================
IF Definition Description
===================== =========================================================
URI msb.onap.org:80/api/multicloud/v1/{cloud-owner}/{cloud-region-id}/{tenantid}/images/{imageid}
Operation GET
Direction NSLCM->MULTIVIM
Description Query Image Information
===================== =========================================================
3.4.1. **Request**
>>>>>>>>>>>>>>>>>>
N/A
3.4.2. **Response**
>>>>>>>>>>>>>>>>>>>
================ ========= ============ ======== ================================
Parameter Qualifier Cardinality Content Description
================ ========= ============ ======== ================================
id M 1 String Image ID
size M 1 int Image Size
name M 1 String Image Name
status M 1 String Image Status
imageType M 1 String Image Type
ami, ari, aki, vhd, vhdx, vmdk, raw, qcow2, vdi, iso
containerFormat M 1 string ami,?ari,?aki,?bare,?ovf,?ova, ?docker
visibility O 1 string Visibility for this image.
public, private, shared, or community
vimId M 1 String vim id
vimName M 1 string vim name
cloud-owner M 1 String cloud owner
cloud-region-id M 1 string cloud region id
tenantId M 1 String Tenant UUID
================ ========= ============ ======== ================================
200: ok
500: failed
::
{
"vimid": "",
"vimname": "",
"status": "active",
"id": "5e2757c1-f846-4727-915c-9a872553ed75",
"size": 862016,
"name": "vim-plus-cgsl40g-z.qcow2"
}
4. **Network Management**
^^^^^^^^^^^^^^^^^^^^^^^^^
4.1. **Create Network**
-----------------------
===================== =========================================================
IF Definition Description
===================== =========================================================
URI msb.onap.org:80/api/multicloud/v1/{cloud-owner}/{cloud-region-id}/{tenantid}/networks
Operation POST
Direction VNFLCM,NSLCM->MULTIVIM
Description Create network on the VIM
===================== =========================================================
4.1.1. **Request**
>>>>>>>>>>>>>>>>>>
================ ========= ============ ======== ================================
Parameter Qualifier Cardinality Content Description
================ ========= ============ ======== ================================
name M 1 String Logical network name
shared M 1 boolean Whether to share(1:sharing;0:private)
vlanTransparent O 1 boolean Whether to support VLAN pass through(1:true;0:false)
networkType O 1 String Network type
flat, vlan, vxlan, gre, portgroup
segmentationId O 1 Int id of paragraph
physicalNetwork O 1 string The physical network where this network should be implemented. The Networking API v2.0 does not provide a way to list available physical networks. For example, the Open vSwitch plug-in configuration file defines a symbolic name that maps to specific bridges on each compute host.
routerExternal O 1 boolean Indicates whether this network can provide floating IPs via a router.
================ ========= ============ ======== ================================
::
{
"tenant": "tenant1",
"networkName": "ommnet",
"shared": 1,
"vlanTransparent": 1,
"networkType": "vlan",
"segmentationId": 202,
"physicalNetwork": "ctrl",
"routerExternal": 0
}
4.1.2. **Response**
>>>>>>>>>>>>>>>>>>>
================ ========= ============ ======== ================================
Parameter Qualifier Cardinality Content Description
================ ========= ============ ======== ================================
status M 1 string Network status
id M 1 string Network id
name M 1 string Network name
tenantId M 1 String Tenant UUID
segmentationId O 1 int Segmentation id
networkType O 1 string Network type
physicalNetwork O 1 string The physical network where this network should be implemented. The Networking API v2.0 does not provide a way to list available physical networks. For example, the Open vSwitch plug-in configuration file defines a symbolic name that maps to specific bridges on each compute host.
vlanTransparent O 1 boolean Whether to support VLAN pass through(1:true;0:false)
shared O 1 boolean Whether to share(1:sharing;0:private)
routerExternal O 1 boolean Indicates whether this network can provide floating IPs via a router.
returnCode M 1 int 0: Already exist 1: Newly created
vimId M 1 String vim id
vimName O 1 string vim name
cloud-owner M 1 String cloud owner
cloud-region-id M 1 string cloud region id
================ ========= ============ ======== ================================
202: accepted
500: failed
::
{
"returnCode": 0,
"vimId": "11111",
"vimName": "11111",
"status": "ACTIVE",
"id": "3c9eebdbbfd345658269340b9ea6fb73",
"name": "net1",
"tenant": "tenant1",
"networkName": "ommnet",
"shared": 1,
"vlanTransparent": 1,
"networkType": "vlan",
"segmentationId": 202,
"physicalNetwork": "ctrl",
"routerExternal": 0
}
4.2. **Delete Network**
-----------------------
===================== =========================================================
IF Definition Description
===================== =========================================================
URI msb.onap.org:80/api/multicloud/v1/{cloud-owner}/{cloud-region-id}/{tenantid}/networks/{networkId}
Operation Delete
Direction VNFLCM,NSLCM->MULTIVIM
Description Delete a network on the VIM
===================== =========================================================
4.2.1. **Request**
>>>>>>>>>>>>>>>>>>
N/A
4.2.2. **Response**
>>>>>>>>>>>>>>>>>>>
204: no content
4.3. **List Network**
---------------------
===================== =========================================================
IF Definition Description
===================== =========================================================
URI msb.onap.org:80/api/multicloud/v1/{cloud-owner}/{cloud-region-id}/{tenantid}/networks
Operation GET
Direction VNFLCM,NSLCM->MULTIVIM
Description List networks on the VIM
===================== =========================================================
4.3.1. **Query**
>>>>>>>>>>>>>>>>
================ ========= ============ ======== ================================
Parameter Qualifier Cardinality Content Description
================ ========= ============ ======== ================================
name O 1 String Filters the response by a name, as a string. A valid value is the name of a network
================ ========= ============ ======== ================================
4.3.2. **Response**
>>>>>>>>>>>>>>>>>>>
================ ========= ============ ======== ================================
Parameter Qualifier Cardinality Content Description
================ ========= ============ ======== ================================
vimId M 1 String vim id
vimName O 1 string vim name
cloud-owner M 1 String cloud owner
cloud-region-id M 1 string cloud region id
networks 0..N List Network list
status M 1 string Network status
id M 1 string Network id
name M 1 string Network name
tenantId M 1 String Tenant UUID
segmentationId O 1 int Segmentation id
networkType O 1 string Network type
physicalNetwork O 1 string The physical network where this network should be implemented. The Networking API v2.0 does not provide a way to list available physical networks. For example, the Open vSwitch plug-in configuration file defines a symbolic name that maps to specific bridges on each compute host.
vlanTransparent O 1 boolean Whether to support VLAN pass through(1:true;0:false)
shared O 1 boolean Whether to share(1:sharing;0:private)
routerExternal O 1 boolean Indicates whether this network can provide floating IPs via a router
================ ========= ============ ======== ================================
200: ok
500: failed
::
{
"vimId": "11111",
"vimName": "111",
"networks":
[{
"status": "ACTIVE",
"id": "3c9eebdbbfd345658269340b9ea6fb73",
"name": "net1",
"tenant": "tenant1",
"networkName": "ommnet",
"shared": 1,
"vlanTransparent": 1,
"networkType": "vlan",
"segmentationId": 202,
"physicalNetwork ": "ctrl",
"routerExternal ": 0
}]
}
4.4. **Get Network**
--------------------
===================== =========================================================
IF Definition Description
===================== =========================================================
URI msb.onap.org:80/api/multicloud/v1/{cloud-owner}/{cloud-region-id}/{tenantid}/networks/{networkId}
Operation get
Direction VNFLCM,NSLCM->MULTIVIM
Description Get a network on the VIM
===================== =========================================================
4.4.1. **Request**
>>>>>>>>>>>>>>>>>>
N/A
4.4.2. **Response**
>>>>>>>>>>>>>>>>>>>
================ ========= ============ ======== ================================
Parameter Qualifier Cardinality Content Description
================ ========= ============ ======== ================================
status M 1 string Network status
id M 1 string Network id
name M 1 string Network name
tenantId M 1 String Tenant UUID
segmentationId O 1 int Segmentation id
networkType O 1 string Network type
physicalNetwork O 1 string The physical network where this network should be implemented. The Networking API v2.0 does not provide a way to list available physical networks. For example, the Open vSwitch plug-in configuration file defines a symbolic name that maps to specific bridges on each compute host.
vlanTransparent O 1 boolean Whether to support VLAN pass through(1:true;0:false)
shared O 1 boolean Whether to share(1:sharing;0:private)
routerExternal O 1 boolean Indicates whether this network can provide floating IPs via a router.
returnCode M 1 int 0: Already exist 1: Newly created
vimId M 1 String vim id
vimName O 1 string vim name
cloud-owner M 1 String cloud owner
cloud-region-id M 1 string cloud region id
================ ========= ============ ======== ================================
200: ok
500: failed
::
{
"vimId":"11111",
"vimName":"11111",
"status": "ACTIVE",
"id": "3c9eebdbbfd345658269340b9ea6fb73",
"name": "net1",
"tenant": "tenant1",
"networkName": "ommnet",
"shared": 1,
"vlanTransparent": 1,
"networkType":"vlan",
"segmentationId":202,
"physicalNetwork ":"ctrl",
"routerExternal ":0
}
5. **Subnetwork Management**
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
5.1. **Create Subnets**
-----------------------
===================== =========================================================
IF Definition Description
===================== =========================================================
URI msb.onap.org:80/api/multicloud/v1/{cloud-owner}/{cloud-region-id}/{tenantid}/subnets
Operation POST
Direction VNFLCM,NSLCM->MULTIVIM
Description Create subnet on the VIM
===================== =========================================================
5.1.1. **Request**
>>>>>>>>>>>>>>>>>>
================ ========= ============ ======== ================================
Parameter Qualifier Cardinality Content Description
================ ========= ============ ======== ================================
networkId M 1 String Network Id
name M 1 String SubnetName
cidr M 1 String Subnet cidr
ipVersion M 1 Int Ip type
4,6
enableDhcp O 1 boolean Whether to allow
1: yes;0: no
gatewayIp O 1 String Gateway ip
dnsNameservers O 1..n List List of servers
hostRoutes O 1..n List List of routes
allocationPools O 1..n list List of allocation
-->allocation
-->start O 1 String Start ip
-->end O 1 String End ip
================ ========= ============ ======== ================================
::
{
"tenant": "tenant1",
"network_id": "d32019d3-bc6e-4319-9c1d-6722fc136a22",
"subnetName": "subnet1",
"cidr": "10.43.35.0/24",
"ipVersion": 4,
"enableDhcp": 1,
"gatewayIp": "10.43.35.1",
"dnsNameservers": [],
"allocationPools": [{
"start": "192.168.199.2",
"end": "192.168.199.254"
}],
"hostRoutes": []
}
5.1.2. **Response**
>>>>>>>>>>>>>>>>>>>
================ ========= ============ ======== ================================
Parameter Qualifier Cardinality Content Description
================ ========= ============ ======== ================================
returnCode M 1 int 0: Already exist 1: Newly created
vimId M 1 String vim id
vimName O 1 string vim name
cloud-owner M 1 String cloud owner
cloud-region-id M 1 string cloud region id
status M 1 string subnetwork status
id M 1 string subNetwork id
tenantId M 1 String Tenant UUID
networkId O 1 String Network Id
networkName O 1 String Network Name
name M 1 String SubnetName
cidr M 1 String Subnet cidr
ipVersion M 1 Int Ip type
4,6
enableDhcp O 1 boolean Whether to allow
1: yes;0: no
gatewayIp O 1 String Gateway ip
dnsNameservers O 1..n List List of servers
hostRoutes O 1.. List List of routes
allocationPools O 1..n List list of allocation
-->allocation
-->start O 1 String Start ip
-->end O 1 String End ip
================ ========= ============ ======== ================================
202: accepted
500: failed
::
{
"returnCode": 0,
"vimId": "11111",
"vimName": "11111",
"status": " ACTIVE",
"id": " d62019d3-bc6e-4319-9c1d-6722fc136a23",
"tenant": "tenant1",
"network_id": "d32019d3-bc6e-4319-9c1d-6722fc136a22",
"name": "subnet1",
"cidr": "10.43.35.0/24",
"ipVersion": 4,
"enableDhcp": 1,
"gatewayIp": "10.43.35.1",
"dnsNameservers": [],
"allocationPools": [{
"start": "192.168.199.2",
"end": "192.168.199.254"
}],
"hostRoutes": []
}
5.2. **Delete Subnets**
-----------------------
===================== =========================================================
IF Definition Description
===================== =========================================================
URI msb.onap.org:80/api/multicloud/v1/{cloud-owner}/{cloud-region-id}/{tenantid}/subnets/{subnetId}
Operation Delete
Direction VNFLCM,NSLCM->MULTIVIM
Description Delete a subnet on the VIM
===================== =========================================================
5.2.1. **Request**
>>>>>>>>>>>>>>>>>>
N/A
5.2.2. **Response**
>>>>>>>>>>>>>>>>>>>
204: no content
5.3. **List Subnets**
---------------------
===================== =========================================================
IF Definition Description
===================== =========================================================
URI msb.onap.org:80/api/multicloud/v1/{cloud-owner}/{cloud-region-id}/{tenantid}/subnets
Operation Get
Direction VNFLCM,NSLCM->MULTIVIM
Description List subnets on the VIM
===================== =========================================================
5.3.1. **Query**
>>>>>>>>>>>>>>>>
msb.onap.org:80/api/multicloud/v1/{cloud-owner}/{cloud-region-id}/subnets?{……}
================ ========= ============ ======== ================================
Parameter Qualifier Cardinality Content Description
================ ========= ============ ======== ================================
name O 1 String Filters fields of the response by a name, as a string. A valid value is the name of a subnet
================ ========= ============ ======== ================================
5.3.2. **Response**
>>>>>>>>>>>>>>>>>>>
================ ========= ============ ======== ================================
Parameter Qualifier Cardinality Content Description
================ ========= ============ ======== ================================
vimId M 1 String vim id
vimName O 1 string vim name
cloud-owner M 1 String cloud owner
cloud-region-id M 1 string cloud region id
subnets M 0..N List Network list
status 1 string subnetwork status
id 1 string subNetwork id
tenantId M 1 String Tenant UUID
networkId O 1 String Network Id
networkName O 1 String Network Name
name M 1 String SubnetName
cidr M 1 String Subnet cidr
ipVersion M 1 Int Ip type
4,6
enableDhcp O 1 boolean Whether to allow
1: yes;0: no
gatewayIp O 1 String Gateway ip
dnsNameservers O 1..n List List of servers
hostRoutes O 1.. List List of routes
allocationPools O 1..n List list of allocation
-->allocation
-->start O 1 String Start ip
-->end O 1 String End ip
================ ========= ============ ======== ================================
**200: ok**
**500: failed**
::
{
"vimId": "11111",
"vimName": "11111",
"subnets": [
{
"status": " ACTIVE",
"id": " d62019d3-bc6e-4319-9c1d-6722fc136a23",
"tenant": "tenant1",
"network_id": "d32019d3-bc6e-4319-9c1d-6722fc136a22",
"name": "subnet1",
"cidr": "10.43.35.0/24",
"ipVersion": 4,
"enableDhcp": 1,
"gatewayIp": "10.43.35.1",
"dnsNameservers": [],
"allocationPools": [{
"start": "192.168.199.2",
"end": "192.168.199.254"
}],
"hostRoutes": []
}
]
}
5.4. **Get Subnets**
--------------------
===================== =========================================================
IF Definition Description
===================== =========================================================
URI msb.onap.org:80/api/multicloud/v1/{cloud-owner}/{cloud-region-id}/{tenantid}/subnets/{subnetid}
Operation GET
Direction VNFLCM,NSLCM->MULTIVIM
Description Get subnet on the VIM
===================== =========================================================
5.4.1. **Request**
>>>>>>>>>>>>>>>>>>
N/A
5.4.2. **Response**
>>>>>>>>>>>>>>>>>>>
================ ========= ============ ======== ================================
Parameter Qualifier Cardinality Content Description
================ ========= ============ ======== ================================
vimId M 1 String vim id
vimName O 1 string vim name
cloud-owner M 1 String cloud owner
cloud-region-id M 1 string cloud region id
status 1 string subnetwork status
id 1 string subNetwork id
tenantId M 1 String Tenant UUID
networkId O 1 String Network Id
networkName O 1 String Network Name
name M 1 String SubnetName
cidr M 1 String Subnet cidr
ipVersion M 1 Int Ip type
4,6
enableDhcp O 1 boolean Whether to allow
1: yes;0: no
gatewayIp O 1 String Gateway ip
dnsNameservers O 1..n List List of servers
hostRoutes O 1.. List List of routes
allocationPools O 1..n List list of allocation
-->allocation
-->start O 1 String Start ip
-->end O 1 String End ip
================ ========= ============ ======== ================================
202: accepted
500: failed
::
{
"status": " ACTIVE",
"id": " d62019d3-bc6e-4319-9c1d-6722fc136a23",
"tenant": "tenant1",
"network_id": "d32019d3-bc6e-4319-9c1d-6722fc136a22",
"name": "subnet1",
"cidr": "10.43.35.0/24",
"ipVersion": 4,
"enableDhcp": 1,
"gatewayIp": "10.43.35.1",
"dnsNameservers": [],
"allocationPools": [{
"start": "192.168.199.2",
"end": "192.168.199.254"
}],
"hostRoutes": []
}
6. **Virtual Port**
^^^^^^^^^^^^^^^^^^^
6.1. **Create Virtual Port**
----------------------------
===================== =========================================================
IF Definition Description
===================== =========================================================
URI msb.onap.org:80/api/multicloud/v1/{cloud-owner}/{cloud-region-id}/{tenantid}/ports
Operation POST
Direction VNFLCM->MULTIVIM
Description Create a vport on the VIM
===================== =========================================================
6.1.1. **Request**
>>>>>>>>>>>>>>>>>>
================ ========= ============ ======== ================================
Parameter Qualifier Cardinality Content Description
================ ========= ============ ======== ================================
networkId M 1 string Network UUID
subnetId O 1 string Subnet UUID
name M 1 string Port name
macAddress O 1 string Mac address
ip O 1 string Ip address
vnicType O 1 string Virtual network card type,
the value of three kinds of normal/direct/macvtap
securityGroups O 1 string The IDs of security groups applied to the port
================ ========= ============ ======== ================================
6.1.2. **Response**
>>>>>>>>>>>>>>>>>>>
================ ========= ============ ======== ================================
Parameter Qualifier Cardinality Content Description
================ ========= ============ ======== ================================
returnCode M 1 int 0: Already exist 1: Newly created
vimId M 1 String vim id
vimName O 1 string vim name
cloud-owner M 1 String cloud owner
cloud-region-id M 1 string cloud region id
status M 1 string status
id M 1 string Port Id
name M 1 string Port name
tenantId M 1 String Tenant UUID
networkName M 1 string Network name
networkId M 1 string Network Id
subnetName M 1 string Subnet name
subnetId M 1 string SubnetId
macAddress O 1 string Mac address
ip O 1 string Ip address
vnicType O 1 string Virtual network card type,
the value of three kinds of normal/direct/macvtap
securityGroups O 1 string List of security group names.
================ ========= ============ ======== ================================
6.2. **Delete Virtual Port**
----------------------------
===================== =========================================================
IF Definition Description
===================== =========================================================
URI msb.onap.org:80/api/multicloud/v1/{cloud-owner}/{cloud-region-id}/{tenantid}/ports/{portid}
Operation POST
Direction VNFLCM->MULTIVIM
Description Delete a vport on the VIM
===================== =========================================================
6.2.1. **Request**
>>>>>>>>>>>>>>>>>>
N/A
6.2.2. **Response**
>>>>>>>>>>>>>>>>>>>
204: no content
6.3. **List Virtual Port**
--------------------------
===================== =========================================================
IF Definition Description
===================== =========================================================
URI msb.onap.org:80/api/multicloud/v1/{cloud-owner}/{cloud-region-id}/{tenantid}/ports
Operation GET
Direction VNFLCM->MULTIVIM
Description List vports on the VIM
===================== =========================================================
6.3.1. **Query**
>>>>>>>>>>>>>>>>
================ ========= ============ ======== ================================
Parameter Qualifier Cardinality Content Description
================ ========= ============ ======== ================================
name M 1 string Port name to filter out list of virtual ports
================ ========= ============ ======== ================================
6.3.2. **Response**
>>>>>>>>>>>>>>>>>>>
================ ========= ============ ======== ================================
Parameter Qualifier Cardinality Content Description
================ ========= ============ ======== ================================
vimId M 1 String vim id
vimName O 1 string vim name
cloud-owner M 1 String cloud owner
cloud-region-id M 1 string cloud region id
tenantId M 1 String Tenant UUID
Ports M 0..N List ports
id M 1 string Port Id
name M 1 string Port name
status M 1 string status
networkName O 1 string Network name
networkId M 1 string Network Id
subnetName O 1 string Subnet name
subnetId M 1 string SubnetId
macAddress O 1 string Mac address
ip O 1 string Ip address
vnicType O 1 string Virtual network card type,
the value of three kinds of normal/direct/macvtap
securityGroups O 1 string List of security group names.
================ ========= ============ ======== ================================
**200: ok**
**500: failed**
6.4. **Get Virtual Port**
-------------------------
===================== =========================================================
IF Definition Description
===================== =========================================================
URI msb.onap.org:80/api/multicloud/v1/{cloud-owner}/{cloud-region-id}/{tenantid}/ports/{portid}
Operation GET
Direction VNFLCM->MULTIVIM
Description Get a vport on the VIM
===================== =========================================================
6.4.1. **Request**
>>>>>>>>>>>>>>>>>>
N/A
6.4.2. **Response**
>>>>>>>>>>>>>>>>>>>
=============== ========= ============ ======== =================================
Parameter Qualifier Cardinality Content Description
=============== ========= ============ ======== =================================
vimId M 1 String vim id
vimName O 1 string vim name
cloud-owner M 1 String cloud owner
cloud-region-id M 1 string cloud region id
status M 1 string status
id M 1 string Port Id
name M 1 string Port name
tenantId M 1 String Tenant UUID
networkName M 1 string Network name
networkId M 1 string Network Id
subnetName M 1 string Subnet name
subnetId M 1 string SubnetId
macAddress O 1 string Mac address
ip O 1 string Ip address
vnicType O 1 string Virtual network card type,
the value of three kinds of normal/direct/macvtap
securityGroups O 1 string List of security group names
=============== ========= ============ ======== =================================
**200: ok**
**500: failed**
7. **Server Management**
^^^^^^^^^^^^^^^^^^^^^^^^
7.1. **Create Server**
----------------------
===================== =========================================================
IF Definition Description
===================== =========================================================
URI msb.onap.org:80/api/multicloud/v1/{cloud-owner}/{cloud-region-id}/{tenantid}/servers
Operation POST
Direction VNFLCM->MULTIVIM
Description Create a vserver on the VIM
===================== =========================================================
7.1.1. **Request**
>>>>>>>>>>>>>>>>>>
================ ========= ============ ======== ================================
Parameter Qualifier Cardinality Content Description
================ ========= ============ ======== ================================
name M 1 string server name
boot M 1 String Start parameters
nicArray O 1..n List List
contextArray O 1..n list list of context
volumeArray O 1..n List List
availabilityZone O 1 string Usable field
flavorId M 1 String server Flavor id
metadata O 1 List Metadata key and value pairs. The maximum size of the metadata key and value is 255 bytes each.
userdata O 1 string Configuration information or scripts to use upon launch. Must be Base64 encoded.
NOTE: The ‘null’ value allowed in Nova legacy v2 API, but due to the strict input validation, it isn’t allowed in Nova v2.1 API.
securityGroups O 1 List One or more security groups. Specify the name of the security group in the name attribute. If you omit this attribute, the API creates the server in the default security group.
serverGroup O 1 string the ServerGroup for anti-affinity and affinity
================ ========= ============ ======== ================================
**boot**
================ ========= ============ ======== ================================
Parameter Qualifier Cardinality Content Description
================ ========= ============ ======== ================================
type M 1 int Startup mode
1. boot from the volume
2. boot from image
volumeId O 1 string Volume Id(type=1)
imageId O 1 String ImageId(type=2)
================ ========= ============ ======== ================================
**contextArray**
================ ========= ============ ======== ================================
Parameter Qualifier Cardinality Content Description
================ ========= ============ ======== ================================
fileName M 1 String Injection file name
fileData M 1 string Injection file content (injection file content inside the <mac>$MAC\_1</mac> $MAC\_1 need to be replaced by the MAC address, of which 1 is NIC index. )
================ ========= ============ ======== ================================
**volumeArray**
================ ========= ============ ======== ================================
Parameter Qualifier Cardinality Content Description
================ ========= ============ ======== ================================
volumeId M 1 String Volume Id
================ ========= ============ ======== ================================
**nicArray**
================ ========= ============ ======== ================================
Parameter Qualifier Cardinality Content Description
================ ========= ============ ======== ================================
portId M 1 String Port Id
================ ========= ============ ======== ================================
::
{
"tenant": "tenant1",
"name": "vm1",
"availabilityZone": "az1",
"flavorName": "vm_large",
"boot": {
"type": 1,
" volumeName": "volume1"
},
"flavorId": "vm_large_134213",
"contextArray": [{
"fileName": "test.yaml",
"fileData": "…."
}],
"volumeArray": [{
"volumeName": "vol1",
}],
"nicArray": [{
"portId": "port_a"
}],
"metada": {
"foo": "foo value"
},
"userdata": "abcdedf"
}
7.1.2. **Response**
>>>>>>>>>>>>>>>>>>>
================ ========= ============ ======== ================================
Parameter Qualifier Cardinality Content Description
================ ========= ============ ======== ================================
vimId M 1 String vim id
vimName O 1 string vim name
cloud-owner M 1 String cloud owner
cloud-region-id M 1 string cloud region id
returnCode 1 int 0: Already exist 1: Newly created
id M 1 string server id
name 1 string server name
tenantId M 1 String Tenant UUID
boot M 1 String Start parameters
nicArray O 1..n List List
volumeArray O 1..n List List
availabilityZone O 1 string Usable field
flavorId M 1 String server Flavor
metadata O 1 List Metadata key and value pairs. The maximum size of the metadata key and value is 255 bytes each.
securityGroups O 1 List One or more security groups. Specify the name of the security group in the name attribute. If you omit this attribute, the API creates the server in the default security group.
serverGroup O 1 string the ServerGroup for anti-affinity and affinity
status M 1 string Server status,
0:INACTIVE,1:ACTIVE,2:ERROR
================ ========= ============ ======== ================================
202: accepted
500: failed
::
{
"id": "3c9eebdbbfd345658269340b9ea6fb73",
"name": "vm1",
"returnCode": 1,
}
7.2. **Delete Server**
----------------------
===================== =========================================================
IF Definition Description
===================== =========================================================
URI msb.onap.org:80/api/multicloud/v1/{cloud-owner}/{cloud-region-id}/{tenantid}/servers/{serverid}
Operation DELETE
Direction VNFLCM,NSLCM->MULTIVIM
Description Delete a vserver on the VIM
===================== =========================================================
7.2.1. **Request**
>>>>>>>>>>>>>>>>>>
N/A
7.2.2. **Response**
>>>>>>>>>>>>>>>>>>>
204: no content
7.3. **List Server**
--------------------
===================== =========================================================
IF Definition Description
===================== =========================================================
URI msb.onap.org:80/api/multicloud/v1/{cloud-owner}/{cloud-region-id}/{tenantid}/servers
Operation GET
Direction VNFLCM,NSLCM->MULTIVIM
Description List vservers on the VIM
===================== =========================================================
7.3.1. **Request**
>>>>>>>>>>>>>>>>>>
msb.onap.org:80/api/multicloud/v1/{cloud-owner}/{cloud-region-id}/vms?{……}
================ ========= ============ ======== ================================
Parameter Qualifier Cardinality Content Description
================ ========= ============ ======== ================================
name M 1 string server name
================ ========= ============ ======== ================================
7.3.2. **Response**
>>>>>>>>>>>>>>>>>>>
================ ========= ============ ======== ================================
Parameter Qualifier Cardinality Content Description
================ ========= ============ ======== ================================
vimId M 1 String vim id
vimName O 1 string vim name
cloud-owner M 1 String cloud owner
cloud-region-id M 1 string cloud region id
servers M 1 array server list
id M 1 string server id
name M 1 string server name
tenantId M 1 String Tenant UUID
boot M 1 String Start parameters
nicArray O 1..n List List
volumeArray O 1..n List List
availabilityZone O 1 string Usable field
flavorId M 1 String server Flavor
metada O 1 keypair Metadata key and value pairs. The maximum size of the metadata key and value is 255 bytes each.
securityGroups O 1 List One or more security groups. Specify the name of the security group in the name attribute. If you omit this attribute, the API creates the server in the default security group.
serverGroup O 1 string the ServerGroup for anti-affinity and affinity
================ ========= ============ ======== ================================
200: ok
500: failed
7.4. **Get Server**
-------------------
===================== =========================================================
IF Definition Description
===================== =========================================================
URI msb.onap.org:80/api/multicloud/v1/{cloud-owner}/{cloud-region-id}/{tenantid}/servers/{serverid}
Operation GET
Direction VNFLCM,NSLCM->MULTIVIM
Description Get a vserver on the VIM
===================== =========================================================
7.4.1. **Request**
>>>>>>>>>>>>>>>>>>
N/A
7.4.2. **Response**
>>>>>>>>>>>>>>>>>>>
================ ========= ============ ======== ================================
Parameter Qualifier Cardinality Content Description
================ ========= ============ ======== ================================
vimId M 1 String vim id
vimName O 1 string vim name
cloud-owner M 1 String cloud owner
cloud-region-id M 1 string cloud region id
id M 1 string server id
name M 1 string server name
tenantId M 1 String Tenant UUID
boot M 1 String Start parameters
nicArray O 1..n List List
volumeArray O 1..n List List
availabilityZone O 1 string Usable field
flavorId M 1 String server Flavor
metadata O 1 List Metadata key and value pairs. The maximum size of the metadata key and value is 255 bytes each.
serverGroup O 1 List One or more security groups. Specify the name of the security group in the name attribute. If you omit this attribute, the API creates the server in the default security group.
serverGroup O 1 string the ServerGroup for anti-affinity and affinity
================ ========= ============ ======== ================================
200: ok
500: failed
7.5. **Heal Server**
----------------------
===================== =========================================================
IF Definition Description
===================== =========================================================
URI msb.onap.org:80/api/multicloud/v1/{cloud-owner}/{cloud-region-id}/{tenantid}/servers/{serverid}/action
Operation POST
Direction VNFLCM,NSLCM->MULTIVIM
Description Act on a vserver on the VIM
===================== =========================================================
7.5.1. **Request**
>>>>>>>>>>>>>>>>>>
================ ========= ============ ======== ================================
Parameter Qualifier Cardinality Content Description
================ ========= ============ ======== ================================
os-start M 1 none The action to start a stopped server.
os-stop M 1 none The action to stop a running server.
reboot M 1 object The action to reboot a server.
type O 1 int The type of the reboot action.
The valid values are HARD and SOFT
================ ========= ============ ======== ================================
7.5.2. **Response**
>>>>>>>>>>>>>>>>>>>
Normal response codes: 202
Error response codes: unauthorized(401), forbidden(403), itemNotFound(404), conflict(409)
8. **Flavor Management**
^^^^^^^^^^^^^^^^^^^^^^^^
8.1. **Create Flavor**
----------------------
===================== =========================================================
IF Definition Description
===================== =========================================================
URI msb.onap.org:80/api/multicloud/v1/{cloud-owner}/{cloud-region-id}/{tenantid}/flavors
Operation POST
Direction VNFLCM->MULTIVIM
Description Create a flavor on the VIM
===================== =========================================================
8.1.1. **Request**
>>>>>>>>>>>>>>>>>>
================ ========= ============ ======== ================================
Parameter Qualifier Cardinality Content Description
================ ========= ============ ======== ================================
name M 1 string Flavor Name
vcpu M 1 int Virtual CPU number
memory M 1 int Memory size
disk M 1 int The size of the root disk
ephemeral O 1 int The size of the ephemeral disk
swap O 1 int The size of the swap disk
isPublic O 1 boolean Whether the flavor is public (available to all projects) or scoped to a set of projects. Default is True if not specified.
extraSpecs O 0..N List EPA parameter
================ ========= ============ ======== ================================
8.1.2. **Response**
>>>>>>>>>>>>>>>>>>>
================ ========= ============ ======== ================================
Parameter Qualifier Cardinality Content Description
================ ========= ============ ======== ================================
id M 1 string Flavor id
name M 1 string Flavor name
returnCode M 1 int 0: Already exist 1: Newly created
tenantId M 1 String Tenant UUID
vcpu M 1 int Virtual CPU number
memory M 1 int Memory size
disk M 1 int The size of the root disk
ephemeral M 1 int The size of the ephemeral disk
swap M 1 int The size of the swap disk
isPublic M 1 boolean Whether the flavor is public (available to all projects) or scoped to a set of projects. Default is True if not specified.
extraSpecs O 0..N List EPA parameter
vimId M 1 String vim id
vimName O 1 string vim name
cloud-owner M 1 String cloud owner
cloud-region-id M 1 string cloud region id
================ ========= ============ ======== ================================
8.2. **Delete Flavor**
----------------------
===================== =========================================================
IF Definition Description
===================== =========================================================
URI msb.onap.org:80/api/multicloud/v1/{cloud-owner}/{cloud-region-id}/{tenantid}/flavors /{flavorid}
Operation DELETE
Direction VNFLCM->MULTIVIM
Description Delete a flavor on the VIM
===================== =========================================================
8.2.1. **Request**
>>>>>>>>>>>>>>>>>>
N/A
8.2.2. **Response**
>>>>>>>>>>>>>>>>>>>
204: no content
8.3. **List Flavor**
--------------------
===================== =========================================================
IF Definition Description
===================== =========================================================
URI msb.onap.org:80/api/multicloud/v1/{cloud-owner}/{cloud-region-id}/{tenantid}/flavors
Operation GET
Direction VNFLCM,NSLCM->MULTIVIM
Description List flavors on the VIM
===================== =========================================================
8.3.1. **Query**
>>>>>>>>>>>>>>>>
================ ========= ============ ======== ================================
Parameter Qualifier Cardinality Content Description
================ ========= ============ ======== ================================
name M 1 string Flavor name to filter out list
================ ========= ============ ======== ================================
8.3.2. **Response**
>>>>>>>>>>>>>>>>>>>
================ ========= ============ ======== ================================
Parameter Qualifier Cardinality Content Description
================ ========= ============ ======== ================================
flavors M 0..N list Vm list
id M 1 string Flavor id
name M 1 string Flavor Name
vcpu M 1 int Virtual CPU number
memory M 1 int Memory size
disk M 1 int The size of the root disk
ephemeral M 1 int The size of the ephemeral disk
swap M 1 int The size of the swap disk
isPublic M 1 boolean Whether the flavor is public (available to all projects) or scoped to a set of projects. Default is True if not specified.
extraSpecs O 0..N List EPA parameter
vimId M 1 String vim id
vimName O 1 string vim name
cloud-owner M 1 String cloud owner
cloud-region-id M 1 string cloud region id
tenantId M 1 String Tenant UUID
================ ========= ============ ======== ================================
200: ok
500: failed
8.4. **Get Flavor**
-------------------
===================== =========================================================
IF Definition Description
===================== =========================================================
URI msb.onap.org:80/api/multicloud/v1/{cloud-owner}/{cloud-region-id}/{tenantid}/flavors/{flavorid}
Operation GET
Direction VNFLCM->MULTIVIM
Description Get a flavor on the VIM
===================== =========================================================
8.4.1. **Request**
>>>>>>>>>>>>>>>>>>
N/A
8.4.2. **Response**
>>>>>>>>>>>>>>>>>>>
================ ========= ============ ======== ================================
Parameter Qualifier Cardinality Content Description
================ ========= ============ ======== ================================
id M 1 string Flavor id
name M 1 string Flavor Name
vcpu M 1 int Virtual CPU number
memory M 1 int Memory size
disk M 1 int The size of the root disk
ephemeral M 1 int The size of the ephemeral disk
swap M 1 int The size of the swap disk
isPublic M 1 boolean Whether the flavor is public (available to all projects) or scoped to a set of projects. Default is True if not specified.
extraSpecs O 0..N List EPA parameter
vimId M 1 String vim id
vimName O 1 string vim name
cloud-owner M 1 String cloud owner
cloud-region-id M 1 string cloud region id
tenantId M 1 String Tenant UUID
================ ========= ============ ======== ================================
200: ok
500: failed
9. **Volume Management**
^^^^^^^^^^^^^^^^^^^^^^^^
9.1. **Create Volume**
----------------------
===================== =========================================================
IF Definition Description
===================== =========================================================
URI msb.onap.org:80/api/multicloud/v1/{cloud-owner}/{cloud-region-id}/{tenantid}/volumes
Operation POST
Direction VNFLCM->MULTIVIM
Description Create volume on the VIM
===================== =========================================================
9.1.1. **Request**
>>>>>>>>>>>>>>>>>>
================ ========= ============ ======== ================================
Parameter Qualifier Cardinality Content Description
================ ========= ============ ======== ================================
name M 1 string Volume name
volumeSize M 1 int Volume size
imageId O 1 string Image UUID
volumeType O 1 string Volume type
availabilityZone O 1 string Usable field
================ ========= ============ ======== ================================
::
{
"tenant": "tenant1",
"volumeName": "volume1",
"volumeSize": 3,
"imageName": "cirros.qcow2",
"volumeType": "volumetype1",
"availabilityZone": "zone1"
}
9.1.2. **Response**
>>>>>>>>>>>>>>>>>>>
================ ========= ============ ======== ================================
Parameter Qualifier Cardinality Content Description
================ ========= ============ ======== ================================
returnCode M 1 int 0: Already exist 1: Newly created
vimId M 1 String vim id
vimName O 1 string vim name
cloud-owner M 1 String cloud owner
cloud-region-id M 1 string cloud region id
tenantId M 1 String Tenant UUID
status M 1 string Volume status
id M 1 string Volume id
name M 1 string Volume name
volumeType O 1 string Volume type
availabilityZone O 1 string Availability Zone
================ ========= ============ ======== ================================
202: accepted
500: failed
::
{
"id": "bc9eebdbbfd356458269340b9ea6fb73",
"name": "volume1",
"returnCode": 1,
}
9.2. **Delete Volume**
----------------------
===================== =========================================================
IF Definition Description
===================== =========================================================
URI msb.onap.org:80/api/multicloud/v1/{cloud-owner}/{cloud-region-id}/{tenantid}/volumes/{volumeId}
Operation DELETE
Direction VNFLCM->MULTIVIM
Description Delete volume on the VIM
===================== =========================================================
9.2.1. **Request**
>>>>>>>>>>>>>>>>>>
N/A
9.2.2. **Response**
>>>>>>>>>>>>>>>>>>>
204: no content
9.3. **List Volumes**
---------------------
===================== =========================================================
IF Definition Description
===================== =========================================================
URI msb.onap.org:80/api/multicloud/v1/{cloud-owner}/{cloud-region-id}/{tenantid}/volumes
Operation GET
Direction VNFLCM->MULTIVIM
Description List volumes on the VIM
===================== =========================================================
9.3.1. **Request**
>>>>>>>>>>>>>>>>>>
msb.onap.org:80/api/multicloud/v1/{cloud-owner}/{cloud-region-id}/volumes?{……}
================ ========= ============ ======== ================================
Parameter Qualifier Cardinality Content Description
================ ========= ============ ======== ================================
name M 1 string Volume name
================ ========= ============ ======== ================================
9.3.2. **Response**
>>>>>>>>>>>>>>>>>>>
================ ========= ============ ======== ================================
Parameter Qualifier Cardinality Content Description
================ ========= ============ ======== ================================
vimId M 1 String vim id
vimName O 1 string vim name
cloud-owner M 1 String cloud owner
cloud-region-id M 1 string cloud region id
tenantId M 1 String Tenant UUID
volumes M 1 Array
id M 1 string Volume id
name M 1 string Volume name
createTime O 1 string Create time
status M 1 string Volume status
volumeSize M 1 int Volume size
volumeType M 1 string Volume type
availabilityZone M 1 string Availability Zone
attachments M 1..n list List of additional information on the cloud disk
================ ========= ============ ======== ================================
200: ok
500: failed
::
{
"volumes": [
{
"status": "available",
"name": "test",
"attachments": [],
"createTime": "2015-12-02T07:57:23.000000",
" volumeType ": "ws",
"id": "91b39ebb-acdc-43f3-9c2e-b0da7ad0fd55",
"size": 20
},
{
"status": "in-use",
"name": "wangsong",
"attachments": [
{
"device": "/dev/vdc",
"serverId": "3030e666-528e-4954-88f5-cc21dab1262b",
"volumeId": "4bd3e9eb-cd8b-456a-8589-910836a0ab31",
"hostName": null,
"id": "4bd3e9eb-cd8b-456a-8589-910836a0ab31"
}
],
"createTime": "2015-12-02T06:39:40.000000",
" volumeType ": null,
"id": "4bd3e9eb-cd8b-456a-8589-910836a0ab31",
"size": 40
}
]
}
9.4. **Get Volumes**
--------------------
===================== =========================================================
IF Definition Description
===================== =========================================================
URI msb.onap.org:80/api/multicloud/v1/{cloud-owner}/{cloud-region-id}/{tenantid}/volumes/{volumeid}
Operation GET
Direction VNFLCM->MULTIVIM
Description Get volume on the VIM
===================== =========================================================
9.4.1. **Request**
>>>>>>>>>>>>>>>>>>
N/A
9.4.2. **Response**
>>>>>>>>>>>>>>>>>>>
================ ========= ============ ======== ================================
Parameter Qualifier Cardinality Content Description
================ ========= ============ ======== ================================
vimId M 1 String vim id
vimName O 1 string vim name
cloud-owner M 1 String cloud owner
cloud-region-id M 1 string cloud region id
tenantId M 1 String Tenant UUID
id 1 string Volume id
name 1 string Volume name
createTime 1 string Create time
status 1 string Volume status
volumeType 1 List Volume type
volumeSize 1 int Volume size
availabilityZone M 1 string Availability Zone
attachments M 1..n list List of additional information on the cloud disk
================ ========= ============ ======== ================================
**attachment:**
============== ========= ============ ======== ==================================
Parameter Qualifier Cardinality Content Description
============== ========= ============ ======== ==================================
device 1 string Device name
serverId 1 string VM id
volumeId 1 string Volume id
hostName 1 string Host name
id 1 string Device id
============== ========= ============ ======== ==================================
200: ok
500: failed
::
{
"status": "in-use",
"name": "wangsong",
"attachments": [
{
"device": "/dev/vdc",
"serverId": "3030e666-528e-4954-88f5-cc21dab1262b",
"volumeId": "4bd3e9eb-cd8b-456a-8589-910836a0ab31",
"hostName": null,
"id": "4bd3e9eb-cd8b-456a-8589-910836a0ab31"
}
],
"createTime": "2015-12-02T06:39:40.000000",
"volumeType ": null,
"id": "4bd3e9eb-cd8b-456a-8589-910836a0ab31",
"volumeSize ": 40
}
10. **Tenant Management**
^^^^^^^^^^^^^^^^^^^^^^^^^
10.1. **List tenants**
----------------------
===================== =========================================================
IF Definition Description
===================== =========================================================
URI msb.onap.org:80/api/multicloud/v1/{cloud-owner}/{cloud-region-id}/tenants
Operation GET
Direction VNFLCM->MULTIVIM
Description List tenants on the VIM
===================== =========================================================
10.1.1. **Query**
>>>>>>>>>>>>>>>>>
================= ========= ============ ======== ================================
Parameter Qualifier Cardinality Content Description
================= ========= ============ ======== ================================
name={tenantname} O 1 string Tenant name to filter output list
================= ========= ============ ======== ================================
10.1.2. **Response**
>>>>>>>>>>>>>>>>>>>>
================ ========= ============ ======== ================================
Parameter Qualifier Cardinality Content Description
================ ========= ============ ======== ================================
vimId M 1 String vim id
vimName O 1 string vim name
cloud-owner M 1 String cloud owner
cloud-region-id M 1 string cloud region id
tenants M 1 Array
id M 1 string tenant UUID
name M 1 string tenant name
================ ========= ============ ======== ================================
200: ok
500: failed
::
{
" tenants ": [
{
"id": "1",
"name": "test\_a"
}
]
}
11. **Limits**
^^^^^^^^^^^^^^
11.1. **List Limits of resouces**
---------------------------------
===================== =========================================================
IF Definition Description
===================== =========================================================
URI msb.onap.org:80/api/multicloud/v1/{cloud-owner}/{cloud-region-id}/{tenantid}/limits
Operation GET
Direction VNFLCM->MULTIVIM
Description Get limits on the VIM
===================== =========================================================
11.1.1. **Request**
>>>>>>>>>>>>>>>>>>>
N/A
11.1.2. **Response**
>>>>>>>>>>>>>>>>>>>>
======================== ========= ============ ======== ========================
Parameter Qualifier Cardinality Content Description
======================== ========= ============ ======== ========================
vimId M 1 String vim id vimName O 1 string vim name
cloud-owner M 1 String cloud owner
cloud-region-id M 1 string cloud region id tenantId M 1 string Tenant UUID maxPersonality O 1 int The number of allowed injected files for each tenant.
maxPersonalitySize O 1 int The number of allowed bytes of content for each injected file.
maxServerGroupMembers O 1 int The number of allowed members for each server group.
maxServerGroups O 1 int The number of allowed server groups for each tenant.
maxServerMeta O 1 int The number of allowed metadata items for each instance.
maxTotalCores O 1 int The number of allowed instance cores for each tenant.
maxTotalInstances O 1 int The number of allowed instances for each tenant.
maxTotalKeypairs O 1 int The number of allowed key pairs for each user.
maxTotalRAMSize O 1 int The amount of allowed instance RAM, in MB, for each tenant.
maxTotalVolumeGigabytes O 1 int The maximum total amount of volumes, in gibibytes (GiB).
maxTotalVolumes O 1 int The maximum number of volumes.
totalVolumesUsed O 1 int The total number of volumes used.
totalGigabytesUsed O 1 int The total number of gibibytes (GiB) used.
network O 1 int The number of networks allowed for each project.
subnet O 1 int The number of subnets allowed for each project.
subnetpool O 1 int The number of subnet pools allowed for each project.
security\_group\_rule O 1 int The number of security group rules allowed for each project.
security\_group O 1 int The number of security groups allowed for each project.
router O 1 int The number of routers allowed for each project.
port O 1 int The number of ports allowed for each project.
======================== ========= ============ ======== ========================
200: ok
500: failed
::
{
"maxPersonality": 5,
"maxPersonalitySize": 10240,
"maxServerMeta": 128,
"maxTotalCores": 20,
"maxTotalInstances": 10,
"maxTotalKeypairs": 100,
"maxTotalRAMSize": 51200,
"maxServerGroups": 10,
"maxServerGroupMembers": 10,
}
12. **Host Management**
^^^^^^^^^^^^^^^^^^^^^^^
12.1. **List hosts**
--------------------
===================== =========================================================
IF Definition Description
===================== =========================================================
URI msb.onap.org:80/api/multicloud/v1/{cloud-owner}/{cloud-region-id}/{tenantid}/hosts
Operation GET
Direction VNFLCM->MULTIVIM
Description list hosts on the VIM
===================== =========================================================
12.1.1. **Request**
>>>>>>>>>>>>>>>>>>>
N/A
12.1.2. **Response**
>>>>>>>>>>>>>>>>>>>>
=============== ========= ============ ======== ==================================
Parameter Qualifier Cardinality Content Description
=============== ========= ============ ======== ==================================
vimId M 1 String vim id
vimName O 1 string vim name
cloud-owner M 1 String cloud owner
cloud-region-id M 1 string cloud region id
tenantId M 1 string Tenant Name
hosts M 1 Array List of host information
service M 1 string The service running on the host
name M 1 string host name
zone O 1 string Available zone for the host
=============== ========= ============ ======== ==================================
200: ok
500: failed
::
{
"vimId": "123",
"vimName": "vimName",
"tenantId": "tenantId1"
"hosts": [
{
"name": "b6e4adbc193d428ea923899d07fb001e",
"service": "conductor",
"zone": "internal",
"vimId": "123",
"vimName": "vimName",
"tenantId": "tenantId1"
},
{
"name": "09c025b0efc64211bd23fc50fa974cdf",
"service": "compute",
"zone": "nova"
"vimId": "123",
"vimName": "vimName",
"tenantId": "tenantId1"
},
{
"name": "e73ec0bd35c64de4a1adfa8b8969a1f6",
"service": "consoleauth",
"zone": "internal"
"vimId": "123",
"vimName": "vimName",
"tenantId": "tenantId1"
},
{
"host\_name": "396a8a0a234f476eb05fb9fbc5802ba7",
"service": "network",
"zone": "internal"
"vimId": "123",
"vimName": "vimName",
"tenantId": "tenantId1"
},
{
"name": "abffda96592c4eacaf4111c28fddee17",
"service": "scheduler",
"zone": "internal"
"vimId": "123",
"vimName": "vimName",
"tenantId": "tenantId1"
}
]
}
12.2. **Get host**
------------------
===================== =========================================================
IF Definition Description
===================== =========================================================
URI msb.onap.org:80/api/multicloud/v1/{cloud-owner}/{cloud-region-id}/{tenantid}/hosts/{hostname}
Operation GET
Direction VNFLCM->MULTIVIM
Description Get a host on the VIM
===================== =========================================================
12.2.1. **Request**
>>>>>>>>>>>>>>>>>>>
12.2.2. **Response**
>>>>>>>>>>>>>>>>>>>>
=============== ========= ============ ======== ==================================
Parameter Qualifier Cardinality Content Description
=============== ========= ============ ======== ==================================
vimId M 1 String vim id
vimName O 1 string vim name
cloud-owner M 1 String cloud owner
cloud-region-id M 1 string cloud region id
tenantId M 1 string Tenant Name
host M 1 List Host resource info
resource M 1..N Object Resource description
cpu M 1 Int The cpu info on the host.
memory_mb M 1 int The memory info on the host (in MB).
name M 1 string host name
project M 1 string Value: total, used_now, used_max or specific project_id
disk_gb M 1 int The disk info on the host (in GB).
=============== ========= ============ ======== ==================================
200: ok
500: failed
::
{
"cpu": 1,
"disk\_gb": 1028,
"name": "c1a7de0ac9d94e4baceae031d05caae3",
"memory\_mb": 8192,
"vimId": "123",
"vimName": "vimName",
"tenantId": "tenantId1",
"host": [
{
"memory\_mb": 4960,
"name": " c1a7de0ac9d94e4baceae031d05caae3",
"disk\_gb": 92,
"project": "(total)",
"cpu": 4
},
{
"memory\_mb": 1536,
"name": " c1a7de0ac9d94e4baceae031d05caae3",
"disk\_gb": 2,
"project": "(used\_now)",
"cpu": 2
},
{
"memory\_mb": 1024,
"name": " c1a7de0ac9d94e4baceae031d05caae3",
"disk\_gb": 2,
"project": "(used\_max)",
"cpu": 2
},
{
"memory\_mb": 1024,
"name": " c1a7de0ac9d94e4baceae031d05caae3",
"disk\_gb": 2,
"project": "568f7ec425db472ba348251bf1e7eebd",
"cpu": 2
}
],
"vimName": "openstack\_newton",
"vimId": "dd5b6da9-5984-401f-b89f-78a9776b1a73",
"tenantId": "568f7ec425db472ba348251bf1e7eebd"
}
13. **VIM Management**
^^^^^^^^^^^^^^^^^^^^^^
13.1. **Update VIM Info**
-------------------------
===================== =========================================================
IF Definition Description
===================== =========================================================
URI msb.onap.org:80/api/multicloud/v1/{cloud-owner}/{cloud-region-id}/registry
Operation POST
Direction ESR-> MULTICLOUD
Description Register a VIM instance to ONAP
===================== =========================================================
13.1.1. **Request**
>>>>>>>>>>>>>>>>>>>
============== ========= ============ ======== ==================================
Parameter Qualifier Cardinality Content Description
============== ========= ============ ======== ==================================
defaultTenant M 1 string default tenant name
============== ========= ============ ======== ==================================
13.1.2. **Response**
>>>>>>>>>>>>>>>>>>>>
NA
202: accept
400: failed
13.2. **Get registry status**
-----------------------------
+---------------------+----------------------------------------------------------------------------------------------+
| **IF Definition** | **Description** |
+=====================+==============================================================================================+
| URI | http://msb.onap.org:80/api/multicloud/v1/{cloud-owner}/{cloud-region}/registry |
+---------------------+----------------------------------------------------------------------------------------------+
| Operation | GET |
+---------------------+----------------------------------------------------------------------------------------------+
| Direction | ESR-> MULTICLOUD |
+---------------------+----------------------------------------------------------------------------------------------+
13.2.1. **Request**
>>>>>>>>>>>>>>>>>>>
NA
13.2.2. **Response**
>>>>>>>>>>>>>>>>>>>>
NA
200: OK
404: failed
500: failed
13.3. **Unregistry VIM**
------------------------
===================== =========================================================
IF Definition Description
===================== =========================================================
URI msb.onap.org:80/api/multicloud/v1/{cloud-owner}/{cloud-region-id}
Operation DELETE
Direction ESR-> MULTICLOUD
Description Unregister a VIM instance from ONAP
===================== =========================================================
13.2.1. **Request**
>>>>>>>>>>>>>>>>>>>
NA
13.2.2. **Response**
>>>>>>>>>>>>>>>>>>>>
NA
204: No content found
400: failed
14. **infrastructure workload LCM**
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
14.1. **Instantiate infrastructure workload**
----------------------------------------------
===================== =========================================================
IF Definition Description
===================== =========================================================
URI msb.onap.org:80/api/multicloud/v1/{cloud-owner}/{cloud-region-id}/infra_workload
Operation POST
Direction SO-> MULTICLOUD
Description Instantiate infrastructure workload
===================== =========================================================
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
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": "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":{ },
"disable_rollback":true,
"parameters":{
"flavor":"m1.heat"
},
"stack_name":"teststack",
"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 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
202: Accepted
400: Bad Request
401: Unauthorized
409: Conflict
::
{
"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. **Query infrastructure workload**
---------------------------------------
===================== =========================================================
IF Definition Description
===================== =========================================================
URI msb.onap.org:80/api/multicloud/v1/{cloud-owner}/{cloud-region-id}/infra_workload/{workload-id}
Operation GET
Direction SO-> MULTICLOUD
Description Query the status of the infrastructure workload
===================== =========================================================
14.2.1. **Request**
>>>>>>>>>>>>>>>>>>>
NA
14.2.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:
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
400: Bad Request
401: Unauthorized
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": "CREATE_IN_PROGRESS",
"workload_id": "dca67f9d-37c1-4863-b5e0-0e3d3c53196e"
}
14.3. **Delete infrastructure workload**
----------------------------------------
===================== =========================================================
IF Definition Description
===================== =========================================================
URI msb.onap.org:80/api/multicloud/v1/{cloud-owner}/{cloud-region-id}/infra_workload/{workload-id}
Operation DELETE
Direction SO-> MULTICLOUD
Description DELETE the infrastructure workload
===================== =========================================================
14.3.1. **Request**
>>>>>>>>>>>>>>>>>>>
NA
14.3.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:
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.
400: Bad Request
401: Unauthorized
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"
}
}