MultiCloud API v0 Specification

API in json swagger

MultiCloud Broker API v0

API Catalog

1. Scope

The scope of the present document is to describe the VIM Driver API specification.

2. Terms, Definitions and Abbreviations

For the purposes of the present document, the following abbreviations apply:

Abbreviation  
NFVO Network Functions Virtualization Orchestrator
VNFM Virtual Network Function Management
VIM Virtualized Infrastructure Manager
MultiVIM 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/v0/{cloud owner}_{region}/{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

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 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
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/v0/{cloud owner}_{region}/{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/v0/{cloud_owner}_{region}/{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
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/v0/{cloud owner}_{region}/{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
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/v0/{cloud owner}_{region}/{tenantid}/networks
Operation POST
Direction VNFLCM,NSLCM->MULTIVIM
Description Create network and subnetwork 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

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/v0/{cloud owner}_{region}/{tenantid}/networks/{networkId}
Operation Delete
Direction NFLCM,NSLCM->MULTIVIM
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/v0/{cloud owner}_{region}/{tenantid}/networks
Operation get
Direction NFLCM,NSLCM->MULTIVIM
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
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/v0/{cloud owner}_{region}/{tenantid}/networks/{networkId}
Operation get
Direction NFLCM,NSLCM->MULTIVIM
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

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/v0/{cloud owner}_{region}/{tenantid}/subnets
Operation POST
Direction VNFLCM,NSLCM->MULTIVIM
Description Create network and subnetwork 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 of servers List of servers
hostRoutes O 1..n List of routes List of routes
allocationPools O 1..n list of “allocation” 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
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 of servers List of servers
hostRoutes O 1..n List of routes List of routes
allocationPools O 1..n list of “allocation” 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/v0/{cloud owner}_{region}/{tenantid}/subnets/{subnetId}
Operation Delete
Direction NFLCM,NSLCM->MULTIVIM
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/v0/{cloud owner}_{region}/{tenantid}/subnets
Operation get
Direction NFLCM,NSLCM->MULTIVIM
5.3.1. Query

msb.onap.org:80/api/multicloud/v0/{cloud owner}_{region}/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
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 of servers List of servers
hostRoutes O 1..n List of routes List of routes
allocationPools O 1..n list of “allocation” 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/v0/{cloud owner}_{region}/{tenantid}/subnets/{subnetid}
Operation get
Direction NFLCM,NSLCM->MULTIVIM
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
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 of servers List of servers
hostRoutes O 1..n List of routes List of routes
allocationPools O 1..n list of “allocation” 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/v0/{cloud owner}_{region}/{tenantid}/ports
Operation POST
Direction VNFLCM->MULTIVIM
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
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/v0/{cloud owner}_{region}/{tenantid}/ports/{portid}
Operation DELETTE
Direction VNFLCM->MULTIVIM
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/v0/{cloud owner}_{region}/tenantid}/ports
Operation GET
Direction VNFLCM->MULTIVIM
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
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/v0/{cloud owner}_{region}/{tenantid}/ports/{portid}
Operation GET
Direction VNFLCM->MULTIVIM
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
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/v0/{cloud owner}_{region}/{tenantid}/servers
Operation POST
Direction VNFLCM->MULTIVIM
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 of nic List of nic
contextArray O 1..n list of context list of context
volumeArray O 1..n list of volume list of volume
availabilityZone O 1 string Usable field
flavorId M 1 String server Flavor id
metadata O 1 List of metadata 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 of names of security group 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
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 of nic List of nic
volumeArray O 1..n list of volume list of volume
availabilityZone O 1 string Usable field
flavorId M 1 String server Flavor
metadata O 1 List of metadata Metadata key and value pairs. The maximum size of the metadata key and value is 255 bytes each.
securityGroups O 1 List of name of security group

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.

[TBD]

serverGroup O 1 string

the ServerGroup for anti-affinity and affinity

[TBD]

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/v0/{cloud owner}_{region}/{tenantid}/servers/{serverid}
Operation DELETE
Direction NFLCM,NSLCM->MULTIVIM
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/v0/{cloud owner}_{region}/{tenantid}/servers
Operation get
Direction NFLCM,NSLCM->MULTIVIM
7.3.1. Request

msb.onap.org:80/api/multicloud/v0/{cloud owner}_{region}/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
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 of nic List of nic
volumeArray O 1..n list of volume list of volume
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 of names of security group

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.

[TBD]

serverGroup O 1 string

the ServerGroup for anti-affinity and affinity

[TBD]

200: ok

500: failed

7.4. Get Server

IF Definition Description
URI msb.onap.org:80/api/multicloud/v0/{cloud owner}_{region}/{tenantid}/servers/{serverid}
Operation get
Direction NFLCM,NSLCM->MULTIVIM
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
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 of nic List of nic
volumeArray O 1..n list of volume list of volume
availabilityZone O 1 string Usable field
flavorId M 1 String server Flavor
metadata O 1 List of metadata Metadata key and value pairs. The maximum size of the metadata key and value is 255 bytes each.
securityGroups O 1 List of names of security group

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.

[TBD]

serverGroup O 1 string

the ServerGroup for anti-affinity and affinity

[TBD]

200: ok

500: failed

8. Flavor Management

8.1. Create Flavor

IF Definition Description
URI msb.onap.org:80/api/multicloud/v0/{cloud owner}_{region}/{tenantid}/flavors
Operation POST
Direction VNFLCM->MULTIVIM
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 of keyname-value pairs 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 of Key-value pairs EPA parameter
vimId M 1 String vim id
vimName O 1 string vim name

8.2. Delete Flavor

IF Definition Description
URI msb.onap.org:80/api/multicloud/v0/{cloud owner}_{region}/{tenantid}/flavors /{flavorid}
Operation DELETE
Direction NFLCM,NSLCM->MULTIVIM
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/v0/{cloud owner}_{region}/{tenantid}/ flavors
Operation get
Direction NFLCM,NSLCM->MULTIVIM
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 of keyname-value pairs EPA parameter
vimId M 1 String vim id
vimName O 1 string vim name
tenantId M 1 String Tenant UUID

200: ok

500: failed

8.4. Get Flavor

IF Definition Description
URI msb.onap.org:80/api/multicloud/v0/{cloud owner}_{region}/{tenantid}/flavors/{ flavorsid }
Operation get
Direction NFLCM,NSLCM->MULTIVIM
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 of keyname-value pairs EPA parameter
vimId M 1 String vim id
vimName O 1 string vim name
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/v0/{cloud owner}_{region}/{tenantid}/volumes
Operation POST
Direction NSLCM->MULTIVIM
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
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/v0/{cloud owner}_{region}/{tenantid}/volumes/{volumeId}
Operation DELETE
Direction NSLCM->MULTIVIM
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/v0/{cloud owner}_{region}/{tenantid}/volumes
Operation GET
Direction NSLCM-> MULTIVIM
9.3.1. Request
msb.onap.org:80/api/multicloud/v0/{cloud owner}_{region}/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
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 of attachment 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/v0/{cloud owner}_{region}/{tenantid}/volumes/{volumeid}
Operation GET
Direction NSLCM-> MULTIVIM
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
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 of string Volume type
volumeSize   1 int Volume size
availabilityZone M 1 string Availability Zone
attachments M 1..n list of attachment 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/v0/{cloud owner}_{region}/tenants
Operation GET
Direction NSLCM-> MULTIVIM
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
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/v0/{cloud owner}_{region}/{tenantid}/limits
Operation GET
Direction NSLCM-> MULTIVIM
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
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/v0/{cloud owner}_{region}/{tenantid}/hosts
Operation GET
Direction NSLCM-> MULTIVIM
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
tenantId M 1 string Tenant Name
hosts M 1 Array of host 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/v0/{cloud owner}_{region}/{tenantid}/hosts/{hostname}
Operation GET
Direction NSLCM-> MULTIVIM
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
tenantId M 1 string Tenant Name
host M 1 List of resources 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 http://msb.onap.org:80/api/multicloud/v0/{cloud-owner}_{cloud-region}/registry
Operation POST
Direction ESR-> MULTICLOUD
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. Unregistry VIM

IF Definition Description
URI http://msb.onap.org:80/api/multicloud/v0/{cloud-owner}_{cloud-region}
Operation DELETE
Direction ESR-> MULTICLOUD
13.2.1. Request

NA

13.2.2. Response

NA

204: No content found

400: failed

14. Proxied OpenStack APIs

14.1. Tokens

IF Definition Description
URI http://msb.onap.org:80/api/multicloud/v0/{cloud owner}_{region}/identity/v3/auth/tokens
Operation POST
Direction NSLCM-> MULTICLOUD
14.1.1. Request
Parameter Qualifier Cardinality Content Description
auth O 1 Object Same as OpenStack Identity Tokens API
{

}
14.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/v0/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"
         }
    }