..
 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"
           }
      }
