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