NFVO API - get.openbaton.orgget.openbaton.org/api/ApiDoc.pdf · 2 2.1. Getting the NFVO ... This...
Transcript of NFVO API - get.openbaton.orgget.openbaton.org/api/ApiDoc.pdf · 2 2.1. Getting the NFVO ... This...
Table of Contents1. Getting started. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1. Retrieving a token . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2. NFVO information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.1. Getting the NFVO version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.2. Getting a bash script for the Open Baton CLI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
3. Network Service Descriptor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3.2. Adding a Network Service Descriptor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3.3. Adding a Network Service Descriptor from the marketplace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.4. Retrieving all Network Service Descriptors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.5. Retrieving a Network Service Descriptor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.6. Updating a Network Service Descriptor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.7. Removing a Network Service Descriptor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.8. Removing multiple Network Service Descriptors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4. Virtual NetworkFunction Descriptor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.2. Adding a Virtual Network Function Descriptor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.3. Retrieving all Virtual Network Function Descriptors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.4. Retrieving a Virtual Network Function Descriptor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.5. Updating a Virtual Network Function Descriptor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.6. Removing a Virtual Network Function Descriptor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.7. Removing multiple Virtual Network Function Descriptors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.8. Adding a Virtual Network Function Descriptor to a NSD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.9. Retrieving all Virtual Network Function Descriptors of a NSD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.10. Retrieving a Virtual Network Function Descriptor of a NSD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.11. Updating a Virtual Network Function Descriptor of a NSD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.12. Removing a Virtual Network Function Descriptor from a NSD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
5. Network Service Record . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
5.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
5.2. Deploying a Network Service Record from an existing NSD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
5.3. Retrieving all Network Service Records . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
5.4. Retrieving a Network Service Record . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
5.5. Updating a Network Service Record . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.6. Removing a Network Service Record . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
5.7. Removing multiple Network Service Records . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
5.8. Resume a failed Network Service Records . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
6. Virtual Network Function Records . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
6.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
6.2. Retrieving all Virtual Network Function Records from a NSR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
6.3. Retrieving a Virtual Network Function Record from a NSR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
6.4. Deleting a Virtual Network Function Record from a NSR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
6.5. Retrieving a Virtual Network Function Record’s lifecycle event history . . . . . . . . . . . . . . . . . . . . . . 95
6.6. Starting a VNFCInstance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
6.7. Stopping a VNFCInstance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
7. VimInstance. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
7.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
7.2. Adding a VimInstance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
7.3. Retrieving all VimInstances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
7.4. Retrieving a VimInstance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
7.5. Updating a VimInstance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
7.6. Removing a VimInstances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
8. VNFPackage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
8.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
8.2. Adding a VNFPackage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
8.3. Adding a VNFPackage from the Open Baton marketplace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
8.4. Retrieving all VNFPackages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
8.5. Retrieving a VNFPackage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
8.6. Updating a VNFPackage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
8.7. Removing a VNFPackage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
8.8. Removing multiple VNFPackages. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
9. User . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
9.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
9.2. Adding a User . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
9.3. Retrieving all Users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
9.4. Retrieving a User . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
9.5. Retrieving the current User . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
9.6. Updating a User . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
9.7. Changing the current User’s password . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
9.8. Changing a User’s password . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
9.9. Removing a User. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
10. Project. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
10.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
10.2. Adding a Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
10.3. Retrieving all Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
10.4. Retrieving a Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
10.5. Updating a Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
10.6. Removing a Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
10.7. Removing multiple Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
11. Key. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
11.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
11.2. Importing a Key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
11.3. Retrieving all Keys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
11.4. Retrieving a Key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
11.5. Removing a Key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
11.6. Removing multiple Keys. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
12. Virtual Network Function Manager (VNFM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
12.1. Retrieving all registered VNFM endpoints. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
12.2. Retrieving a registered VNFM’s endpoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
12.3. Deleting a registered VNFM from the NFVO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
13. Other Components. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
13.1. VNFRecordDependency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
13.2. LifecycleEvent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
13.3. Virtual Network Function Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
13.4. VirtualDeploymentUnit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
Chapter 1. Getting startedThis document describes the REST API provided by the Network Function Virtualization Orchestrator(NFVO).To send REST requests to the NFVO you first have to get a token which you then have to pass in theheader of every request.
1.1. Retrieving a tokenYou can retrieve a token by executing this curl request:
curl -v -u openbatonOSClient:secret -X POST http://localhost:8080/oauth/token -H
"Accept:application/json" -d "username=admin&password=openbaton&grant_type=password"
Depending on your credentials you may have to change the username and password field in therequest and the host and port.The answer from the orchestrator will look something like this:
{"value": "b2816f07-28ad-4c28-8b03-bba9aeed0612","expiration": "Jul 20, 2016 2:24:57 AM","tokenType": "bearer","refreshToken": {"expiration": "Aug 18, 2016 2:24:57 PM","value": "572a429b-918d-497a-bb70-3e1441bd6263"},"scope": ["read","write"],"additionalInformation": {}}
The value field contains the token. In this case b2816f07-28ad-4c28-8b03-bba9aeed0612.
1
Chapter 2. NFVO information
2.1. Getting the NFVO versionGET request{host}/api/v1/main/version
2.1.1. Example request
$ curl 'http://localhost:8080/api/v1/main/version' -i -H 'Accept: text/plain' -H'Authorization: Bearer e92dfd35-4a7e-4d33-9592-5f1ac595095e'
2.1.2. Example response
HTTP/1.1 200 OKContent-Type: text/plainContent-Length: 5
3.2.0
2.2. Getting a bash script for the Open Baton CLIThis API call will return a bash script that can be executed and that will set all the requiredenvironment variables necessary to work with the Open Baton CLIGET request{host}/api/v1/main/openbaton-rc
2.2.1. Example request
$ curl 'http://localhost:8080/api/v1/main/openbaton-rc' -i -H 'Accept: application/octet-stream' -H 'Authorization: Bearer e92dfd35-4a7e-4d33-9592-5f1ac595095e' -H 'project-id:8a387f1e-9a42-43c7-bab0-3915719c6fca'
2.2.2. Example response
2
HTTP/1.1 200 OKContent-Type: text/plain;charset=ISO-8859-1Content-Length: 331
#!/bin/bash
unset OB_NFVO_IPunset OB_NFVO_PORTunset OB_PROJECT_IDunset OB_USERNAMEunset OB_PASSWORD
export OB_NFVO_IP=192.168.2.45export OB_NFVO_PORT=8080export OB_PROJECT_ID=8a387f1e-9a42-43c7-bab0-3915719c6fcaexport OB_USERNAME=usernameecho -n Insert Open Baton Password:read -s passwordexport OB_PASSWORD=$password
3
Chapter 3. Network Service Descriptor
3.1. OverviewA NSD contains the values which describe a network service like the Virtual Network FunctionDescriptors and dependencies between those.For more details see http://openbaton.github.io/documentation/ns-descriptor.
3.2. Adding a Network Service DescriptorPOST request with NSD as JSON content of the request body{host}/api/v1/ns-descriptors
3.2.1. Request structure
Path Type Description
name String The NSD’s name
vendor String The vendor of the NSD
version String The NSD’s version
vld Array An array ofVirtualLinkDescriptors
vnf_dependency Array An array of VNFDependencies
vnfd Array An array ofVirtualNetworkFunctionDescriptors
hb_version String _
enabled Boolean _
3.2.2. Example request
$ curl 'http://localhost:8080/api/v1/ns-descriptors' -i -X POST -H 'project-id: 8a387f1e-9a42-43c7-bab0-3915719c6fca' -H 'Authorization: Bearer e92dfd35-4a7e-4d33-9592-5f1ac595095e' -H 'Content-Type: application/json' -d '{ "vnfd" : [ { "lifecycle_event" : [ { "version" : 0, "event" : "INSTANTIATE", "lifecycle_events" : [ "install.sh" ] }, {
4
"version" : 0, "event" : "START", "lifecycle_events" : [ "start-server.sh" ] } ], "configurations" : { "version" : 0, "configurationParameters" : [ { "version" : 0, "description" : "Description of the configuration parameter", "confKey" : "answer", "value" : "42" } ], "name" : "config_name" }, "vdu" : [ { "version" : 0, "name" : "serverVdu1", "vm_image" : [ "name of an image" ], "scale_in_out" : 1, "vnfc" : [ { "version" : 0, "connection_point" : [ { "virtual_link_reference" : "networkA", "interfaceId" : 0, "version" : 0 } ] } ], "vimInstanceName" : [ "vim-instance" ] } ], "virtual_link" : [ { "hb_version" : 0, "name" : "networkA" } ], "deployment_flavour" : [ { "version" : 0, "flavour_key" : "m1.small", "ram" : 2048, "disk" : 5, "vcpus" : 2 } ], "type" : "server", "endpoint" : "generic", "cyclicDependency" : false, "hb_version" : 0, "name" : "iperf-server", "vendor" : "FOKUS", "version" : "1" }, {
5
"lifecycle_event" : [ { "version" : 0, "event" : "START", "lifecycle_events" : [ "server_start-client.sh" ] }, { "version" : 0, "event" : "INSTANTIATE", "lifecycle_events" : [ "install.sh" ] } ], "configurations" : { "version" : 0, "configurationParameters" : [ { "version" : 0, "description" : "Description of the configuration parameter", "confKey" : "answer", "value" : "42" } ], "name" : "config_name" }, "vdu" : [ { "version" : 0, "name" : "clientVdu1", "vm_image" : [ "name of an image" ], "scale_in_out" : 2, "vnfc" : [ { "version" : 0, "connection_point" : [ { "virtual_link_reference" : "networkA", "interfaceId" : 0, "version" : 0 } ] } ], "vimInstanceName" : [ "vim-instance" ] } ], "virtual_link" : [ { "hb_version" : 0, "name" : "networkA" } ], "deployment_flavour" : [ { "version" : 0, "flavour_key" : "m1.small", "ram" : 2048, "disk" : 5, "vcpus" : 2 } ], "type" : "client", "endpoint" : "generic", "cyclicDependency" : false,
6
"hb_version" : 0, "name" : "iperf-client", "vendor" : "FOKUS", "version" : "1" } ], "vnf_dependency" : [ ], "enabled" : false, "hb_version" : 0, "name" : "iperf-nsd", "vendor" : "FOKUS", "version" : "1", "vld" : [ ]}'
3.2.3. Example response
HTTP/1.1 201 Created
3.3. Adding a Network Service Descriptor from themarketplacePUT request with the a JSON object in the request body containing a field named link{host}/api/v1/ns-descriptors/marketdownload
3.3.1. Request structure
Path Type Description
link String The link to the NSD in the OpenBaton marketplace
3.3.2. Example request
$ curl 'http://localhost:8080/api/v1/ns-descriptors/marketdownload' -i -X POST -H'project-id: 8a387f1e-9a42-43c7-bab0-3915719c6fca' -H 'Authorization: Bearer e92dfd35-4a7e-4d33-9592-5f1ac595095e' -H 'Content-Type: application/json' -d '{ "link" : "http://marketplace.openbaton.org:8082/api/v1/nsds/fokus/Iperf/2.1.1-json/json"}'
7
3.3.3. Example response
HTTP/1.1 201 CreatedContent-Type: application/json;charset=UTF-8Content-Length: 6705
{ "id" : "573aa807-b969-4bfd-95fa-f7abbe866bad", "hb_version" : 0, "name" : "iperf-nsd", "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "vendor" : "FOKUS", "version" : "1", "vnffgd" : [ ], "vld" : [ { "id" : "129c83ce-8c04-4a24-b54f-eddb64a9dfe4", "hb_version" : 0, "extId" : "920c21da-3c04-42f3-b54f-etzb64f7dfe2", "root_requirement" : "4", "leaf_requirement" : "8", "qos" : [ ], "test_access" : [ ], "connectivity_type" : "connectivityType", "name" : "private", "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "vendor" : "FOKUS", "descriptor_version" : "0.1", "number_of_endpoints" : 0, "connection" : [ ], "vld_security" : { "id" : "965c21da-3c04-43f3-b54f-eadb34f7dda2", "version" : 1 } } ], "monitoring_parameter" : [ ], "service_deployment_flavour" : [ ], "auto_scale_policy" : [ ], "connection_point" : [ ], "vnfd" : [ { "id" : "90f6f488-ade0-4ae4-976d-9e34553603ca", "hb_version" : 1, "name" : "iperf-client", "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "vendor" : "FOKUS", "version" : "0.1", "vnffgd" : [ ], "vld" : [ ],
8
"monitoring_parameter" : [ ], "service_deployment_flavour" : [ ], "auto_scale_policy" : [ ], "connection_point" : [ ], "lifecycle_event" : [ { "id" : "5034fc1a-83ad-23f9-7403-533fed9812ad", "version" : 0, "event" : "INSTANTIATE", "lifecycle_events" : [ "install.sh" ] }, { "id" : "3add5745-d582-43f4-b643-940c06022f11", "version" : 0, "event" : "START", "lifecycle_events" : [ "server_start-client.sh" ] } ], "configurations" : { "id" : "760583a0-ff99-4754-b1c7-2a7b1cc5d7b3", "version" : 1, "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "configurationParameters" : [ { "id" : "5969df32-3199-47d6-83cd-0b4da537dd0f", "version" : 0, "description" : "Description of the configuration parameter", "confKey" : "answer", "value" : "42" } ], "name" : "config_name" }, "vdu" : [ ], "virtual_link" : [ { "id" : "b6be79b6-9f7c-494a-8543-7dec75bcfb22", "hb_version" : 0, "extId" : "a3ae6958-34dc-305b-6903-3afc54bcad32", "root_requirement" : "4", "leaf_requirement" : "8", "qos" : [ ], "test_access" : [ ], "connectivity_type" : "connectivityType", "name" : "private", "connection_points_references" : [ ] } ], "vdu_dependency" : [ ], "deployment_flavour" : [ ], "manifest_file" : "manifestFile", "manifest_file_security" : [ { "id" : "965c21da-3c04-43f3-b54f-eadb34f7dda2", "version" : 1 } ],
9
"type" : "client", "endpoint" : "generic", "vnfPackageLocation" : "b42340e7-09c1-4768-ab09-5886ec3e3444", "requires" : { "server" : { "id" : "a32340e7-45c1-4768-ab09-5826ec3e6594", "version" : 0, "parameters" : [ "private_floatingIp", "network" ] } }, "provides" : [ ] }, { "id" : "40f3f488-ade0-4re4-976d-9e34253603aa", "hb_version" : 1, "name" : "iperfserver", "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "vendor" : "fokus", "version" : "0.1", "vnffgd" : [ ], "vld" : [ ], "monitoring_parameter" : [ ], "service_deployment_flavour" : [ ], "auto_scale_policy" : [ ], "connection_point" : [ ], "lifecycle_event" : [ { "id" : "5034fc1a-83ad-23f9-7403-533fed9812ad", "version" : 0, "event" : "INSTANTIATE", "lifecycle_events" : [ "install.sh" ] }, { "id" : "556fbc91-6a32-419b-afa4-e7e93acf9977", "version" : 0, "event" : "START", "lifecycle_events" : [ "start-server.sh" ] } ], "configurations" : { "id" : "760583a0-ff99-4754-b1c7-2a7b1cc5d7b3", "version" : 1, "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "configurationParameters" : [ { "id" : "5969df32-3199-47d6-83cd-0b4da537dd0f", "version" : 0, "description" : "Description of the configuration parameter", "confKey" : "answer", "value" : "42" } ], "name" : "config_name" },
10
"vdu" : [ { "id" : "56ea7355-9261-42e0-8193-53beec9d6514", "version" : 1, "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "name" : "iperf-server", "vm_image" : [ "ubuntu-14.04-server-cloudimg-amd64-disk1" ], "parent_vdu" : "28ea7355-9261-42e0-8193-53beec9d6514", "computation_requirement" : "computationRequirement", "virtual_memory_resource_element" : "virtualMemoryResourceElement", "virtual_network_bandwidth_resource" : "virtualNetworkBandwidthResource", "lifecycle_event" : [ ], "vdu_constraint" : "vduConstraint", "high_availability" : { "resiliencyLevel" : "ACTIVE_STANDBY_STATEFUL", "geoRedundancy" : true, "redundancyScheme" : "scheme" }, "fault_management_policy" : [ ], "scale_in_out" : 2, "vnfc" : [ { "id" : "5e4cc574-4e70-415a-b209-481ad882383e", "version" : 0, "connection_point" : [ { "id" : "5f8cc194-4e70-415a-b569-481cb882383e", "version" : 0, "type" : "type", "virtual_link_reference" : "private", "floatingIp" : "random", "interfaceId" : 0 } ] } ], "vnfc_instance" : [ ], "monitoring_parameter" : [ ], "hostname" : "iperfserver-435", "vimInstanceName" : [ "vim-instance" ] } ], "virtual_link" : [ { "id" : "b6be79b6-9f7c-494a-8543-7dec75bcfb22", "hb_version" : 0, "extId" : "a3ae6958-34dc-305b-6903-3afc54bcad32", "root_requirement" : "4", "leaf_requirement" : "8", "qos" : [ ], "test_access" : [ ], "connectivity_type" : "connectivityType", "name" : "private", "connection_points_references" : [ ] } ],
11
"vdu_dependency" : [ ], "deployment_flavour" : [ ], "manifest_file" : "manifestFile", "manifest_file_security" : [ { "id" : "965c21da-3c04-43f3-b54f-eadb34f7dda2", "version" : 1 } ], "type" : "server", "endpoint" : "generic", "vnfPackageLocation" : "a32340e7-45c1-4768-ab09-5826ec3e6594", "requires" : { "server" : { "id" : "a32340e7-45c1-4768-ab09-5826ec3e6594", "version" : 0, "parameters" : [ "private_floatingIp", "network" ] } }, "provides" : [ ] } ], "vnf_dependency" : [ ], "pnfd" : [ ], "nsd_security" : { "id" : "965c21da-3c04-43f3-b54f-eadb34f7dda2", "version" : 1 }, "enabled" : false}
3.4. Retrieving all Network Service DescriptorsGET request{host}/api/v1/ns-descriptors
3.4.1. Response structure
Path Type Description
[] Object The array ofNetworkServiceDescriptors
3.4.2. Example request
$ curl 'http://localhost:8080/api/v1/ns-descriptors' -i -H 'project-id: 8a387f1e-9a42-43c7-bab0-3915719c6fca' -H 'Authorization: Bearer e92dfd35-4a7e-4d33-9592-5f1ac595095e'
12
3.4.3. Example response
HTTP/1.1 200 OKContent-Type: application/json;charset=UTF-8Content-Length: 6709
[ { "id" : "573aa807-b969-4bfd-95fa-f7abbe866bad", "hb_version" : 0, "name" : "iperf-nsd", "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "vendor" : "FOKUS", "version" : "1", "vnffgd" : [ ], "vld" : [ { "id" : "129c83ce-8c04-4a24-b54f-eddb64a9dfe4", "hb_version" : 0, "extId" : "920c21da-3c04-42f3-b54f-etzb64f7dfe2", "root_requirement" : "4", "leaf_requirement" : "8", "qos" : [ ], "test_access" : [ ], "connectivity_type" : "connectivityType", "name" : "private", "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "vendor" : "FOKUS", "descriptor_version" : "0.1", "number_of_endpoints" : 0, "connection" : [ ], "vld_security" : { "id" : "965c21da-3c04-43f3-b54f-eadb34f7dda2", "version" : 1 } } ], "monitoring_parameter" : [ ], "service_deployment_flavour" : [ ], "auto_scale_policy" : [ ], "connection_point" : [ ], "vnfd" : [ { "id" : "40f3f488-ade0-4re4-976d-9e34253603aa", "hb_version" : 1, "name" : "iperfserver", "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "vendor" : "fokus", "version" : "0.1", "vnffgd" : [ ], "vld" : [ ],
13
"monitoring_parameter" : [ ], "service_deployment_flavour" : [ ], "auto_scale_policy" : [ ], "connection_point" : [ ], "lifecycle_event" : [ { "id" : "5034fc1a-83ad-23f9-7403-533fed9812ad", "version" : 0, "event" : "INSTANTIATE", "lifecycle_events" : [ "install.sh" ] }, { "id" : "556fbc91-6a32-419b-afa4-e7e93acf9977", "version" : 0, "event" : "START", "lifecycle_events" : [ "start-server.sh" ] } ], "configurations" : { "id" : "760583a0-ff99-4754-b1c7-2a7b1cc5d7b3", "version" : 1, "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "configurationParameters" : [ { "id" : "5969df32-3199-47d6-83cd-0b4da537dd0f", "version" : 0, "description" : "Description of the configuration parameter", "confKey" : "answer", "value" : "42" } ], "name" : "config_name" }, "vdu" : [ { "id" : "56ea7355-9261-42e0-8193-53beec9d6514", "version" : 1, "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "name" : "iperf-server", "vm_image" : [ "ubuntu-14.04-server-cloudimg-amd64-disk1" ], "parent_vdu" : "28ea7355-9261-42e0-8193-53beec9d6514", "computation_requirement" : "computationRequirement", "virtual_memory_resource_element" : "virtualMemoryResourceElement", "virtual_network_bandwidth_resource" : "virtualNetworkBandwidthResource", "lifecycle_event" : [ ], "vdu_constraint" : "vduConstraint", "high_availability" : { "resiliencyLevel" : "ACTIVE_STANDBY_STATEFUL", "geoRedundancy" : true, "redundancyScheme" : "scheme" }, "fault_management_policy" : [ ], "scale_in_out" : 2, "vnfc" : [ {
14
"id" : "5e4cc574-4e70-415a-b209-481ad882383e", "version" : 0, "connection_point" : [ { "id" : "5f8cc194-4e70-415a-b569-481cb882383e", "version" : 0, "type" : "type", "virtual_link_reference" : "private", "floatingIp" : "random", "interfaceId" : 0 } ] } ], "vnfc_instance" : [ ], "monitoring_parameter" : [ ], "hostname" : "iperfserver-435", "vimInstanceName" : [ "vim-instance" ] } ], "virtual_link" : [ { "id" : "b6be79b6-9f7c-494a-8543-7dec75bcfb22", "hb_version" : 0, "extId" : "a3ae6958-34dc-305b-6903-3afc54bcad32", "root_requirement" : "4", "leaf_requirement" : "8", "qos" : [ ], "test_access" : [ ], "connectivity_type" : "connectivityType", "name" : "private", "connection_points_references" : [ ] } ], "vdu_dependency" : [ ], "deployment_flavour" : [ ], "manifest_file" : "manifestFile", "manifest_file_security" : [ { "id" : "965c21da-3c04-43f3-b54f-eadb34f7dda2", "version" : 1 } ], "type" : "server", "endpoint" : "generic", "vnfPackageLocation" : "a32340e7-45c1-4768-ab09-5826ec3e6594", "requires" : { "server" : { "id" : "a32340e7-45c1-4768-ab09-5826ec3e6594", "version" : 0, "parameters" : [ "private_floatingIp", "network" ] } }, "provides" : [ ] }, { "id" : "90f6f488-ade0-4ae4-976d-9e34553603ca",
15
"hb_version" : 1, "name" : "iperf-client", "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "vendor" : "FOKUS", "version" : "0.1", "vnffgd" : [ ], "vld" : [ ], "monitoring_parameter" : [ ], "service_deployment_flavour" : [ ], "auto_scale_policy" : [ ], "connection_point" : [ ], "lifecycle_event" : [ { "id" : "3add5745-d582-43f4-b643-940c06022f11", "version" : 0, "event" : "START", "lifecycle_events" : [ "server_start-client.sh" ] }, { "id" : "5034fc1a-83ad-23f9-7403-533fed9812ad", "version" : 0, "event" : "INSTANTIATE", "lifecycle_events" : [ "install.sh" ] } ], "configurations" : { "id" : "760583a0-ff99-4754-b1c7-2a7b1cc5d7b3", "version" : 1, "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "configurationParameters" : [ { "id" : "5969df32-3199-47d6-83cd-0b4da537dd0f", "version" : 0, "description" : "Description of the configuration parameter", "confKey" : "answer", "value" : "42" } ], "name" : "config_name" }, "vdu" : [ ], "virtual_link" : [ { "id" : "b6be79b6-9f7c-494a-8543-7dec75bcfb22", "hb_version" : 0, "extId" : "a3ae6958-34dc-305b-6903-3afc54bcad32", "root_requirement" : "4", "leaf_requirement" : "8", "qos" : [ ], "test_access" : [ ], "connectivity_type" : "connectivityType", "name" : "private", "connection_points_references" : [ ] } ],
16
"vdu_dependency" : [ ], "deployment_flavour" : [ ], "manifest_file" : "manifestFile", "manifest_file_security" : [ { "id" : "965c21da-3c04-43f3-b54f-eadb34f7dda2", "version" : 1 } ], "type" : "client", "endpoint" : "generic", "vnfPackageLocation" : "b42340e7-09c1-4768-ab09-5886ec3e3444", "requires" : { "server" : { "id" : "a32340e7-45c1-4768-ab09-5826ec3e6594", "version" : 0, "parameters" : [ "private_floatingIp", "network" ] } }, "provides" : [ ] } ], "vnf_dependency" : [ ], "pnfd" : [ ], "nsd_security" : { "id" : "965c21da-3c04-43f3-b54f-eadb34f7dda2", "version" : 1 }, "enabled" : false} ]
3.5. Retrieving a Network Service DescriptorGET requestthe id used in the url belongs to the NSD{host}/api/v1/ns-descriptors/{nsdId}
3.5.1. Response structure
Path Type Description
auto_scale_policy Array _
connection_point Array _
enabled Boolean _
hb_version Number _
id String The NSD’s id
17
Path Type Description
monitoring_parameter Array Used for fault management
name String The NSD’s name
nsd_security Object _
pnfd Array _
projectId String The id of the project to whichthis NSD belongs
service_deployment_flavour Array _
vendor String The vendor of the NSD
version String The NSD’s version
vld Array An array ofVirtualLinkDescriptors
vnf_dependency Array An array of VNFDependencies
vnfd Array An array ofVirtualNetworkFunctionDescriptors
vnffgd Array _
3.5.2. Example request
$ curl 'http://localhost:8080/api/v1/ns-descriptors/55555c52-f952-430c-b093-45acb2bbf50e'-i -H 'project-id: 8a387f1e-9a42-43c7-bab0-3915719c6fca' -H 'Authorization: Bearere92dfd35-4a7e-4d33-9592-5f1ac595095e'
3.5.3. Example response
HTTP/1.1 200 OKContent-Type: application/json;charset=UTF-8Content-Length: 6705
{ "id" : "573aa807-b969-4bfd-95fa-f7abbe866bad", "hb_version" : 0, "name" : "iperf-nsd", "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "vendor" : "FOKUS", "version" : "1", "vnffgd" : [ ],
18
"vld" : [ { "id" : "129c83ce-8c04-4a24-b54f-eddb64a9dfe4", "hb_version" : 0, "extId" : "920c21da-3c04-42f3-b54f-etzb64f7dfe2", "root_requirement" : "4", "leaf_requirement" : "8", "qos" : [ ], "test_access" : [ ], "connectivity_type" : "connectivityType", "name" : "private", "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "vendor" : "FOKUS", "descriptor_version" : "0.1", "number_of_endpoints" : 0, "connection" : [ ], "vld_security" : { "id" : "965c21da-3c04-43f3-b54f-eadb34f7dda2", "version" : 1 } } ], "monitoring_parameter" : [ ], "service_deployment_flavour" : [ ], "auto_scale_policy" : [ ], "connection_point" : [ ], "vnfd" : [ { "id" : "90f6f488-ade0-4ae4-976d-9e34553603ca", "hb_version" : 1, "name" : "iperf-client", "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "vendor" : "FOKUS", "version" : "0.1", "vnffgd" : [ ], "vld" : [ ], "monitoring_parameter" : [ ], "service_deployment_flavour" : [ ], "auto_scale_policy" : [ ], "connection_point" : [ ], "lifecycle_event" : [ { "id" : "5034fc1a-83ad-23f9-7403-533fed9812ad", "version" : 0, "event" : "INSTANTIATE", "lifecycle_events" : [ "install.sh" ] }, { "id" : "3add5745-d582-43f4-b643-940c06022f11", "version" : 0, "event" : "START", "lifecycle_events" : [ "server_start-client.sh" ] } ],
19
"configurations" : { "id" : "760583a0-ff99-4754-b1c7-2a7b1cc5d7b3", "version" : 1, "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "configurationParameters" : [ { "id" : "5969df32-3199-47d6-83cd-0b4da537dd0f", "version" : 0, "description" : "Description of the configuration parameter", "confKey" : "answer", "value" : "42" } ], "name" : "config_name" }, "vdu" : [ ], "virtual_link" : [ { "id" : "b6be79b6-9f7c-494a-8543-7dec75bcfb22", "hb_version" : 0, "extId" : "a3ae6958-34dc-305b-6903-3afc54bcad32", "root_requirement" : "4", "leaf_requirement" : "8", "qos" : [ ], "test_access" : [ ], "connectivity_type" : "connectivityType", "name" : "private", "connection_points_references" : [ ] } ], "vdu_dependency" : [ ], "deployment_flavour" : [ ], "manifest_file" : "manifestFile", "manifest_file_security" : [ { "id" : "965c21da-3c04-43f3-b54f-eadb34f7dda2", "version" : 1 } ], "type" : "client", "endpoint" : "generic", "vnfPackageLocation" : "b42340e7-09c1-4768-ab09-5886ec3e3444", "requires" : { "server" : { "id" : "a32340e7-45c1-4768-ab09-5826ec3e6594", "version" : 0, "parameters" : [ "private_floatingIp", "network" ] } }, "provides" : [ ] }, { "id" : "40f3f488-ade0-4re4-976d-9e34253603aa", "hb_version" : 1, "name" : "iperfserver",
20
"projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "vendor" : "fokus", "version" : "0.1", "vnffgd" : [ ], "vld" : [ ], "monitoring_parameter" : [ ], "service_deployment_flavour" : [ ], "auto_scale_policy" : [ ], "connection_point" : [ ], "lifecycle_event" : [ { "id" : "5034fc1a-83ad-23f9-7403-533fed9812ad", "version" : 0, "event" : "INSTANTIATE", "lifecycle_events" : [ "install.sh" ] }, { "id" : "556fbc91-6a32-419b-afa4-e7e93acf9977", "version" : 0, "event" : "START", "lifecycle_events" : [ "start-server.sh" ] } ], "configurations" : { "id" : "760583a0-ff99-4754-b1c7-2a7b1cc5d7b3", "version" : 1, "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "configurationParameters" : [ { "id" : "5969df32-3199-47d6-83cd-0b4da537dd0f", "version" : 0, "description" : "Description of the configuration parameter", "confKey" : "answer", "value" : "42" } ], "name" : "config_name" }, "vdu" : [ { "id" : "56ea7355-9261-42e0-8193-53beec9d6514", "version" : 1, "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "name" : "iperf-server", "vm_image" : [ "ubuntu-14.04-server-cloudimg-amd64-disk1" ], "parent_vdu" : "28ea7355-9261-42e0-8193-53beec9d6514", "computation_requirement" : "computationRequirement", "virtual_memory_resource_element" : "virtualMemoryResourceElement", "virtual_network_bandwidth_resource" : "virtualNetworkBandwidthResource", "lifecycle_event" : [ ], "vdu_constraint" : "vduConstraint", "high_availability" : { "resiliencyLevel" : "ACTIVE_STANDBY_STATEFUL", "geoRedundancy" : true,
21
"redundancyScheme" : "scheme" }, "fault_management_policy" : [ ], "scale_in_out" : 2, "vnfc" : [ { "id" : "5e4cc574-4e70-415a-b209-481ad882383e", "version" : 0, "connection_point" : [ { "id" : "5f8cc194-4e70-415a-b569-481cb882383e", "version" : 0, "type" : "type", "virtual_link_reference" : "private", "floatingIp" : "random", "interfaceId" : 0 } ] } ], "vnfc_instance" : [ ], "monitoring_parameter" : [ ], "hostname" : "iperfserver-435", "vimInstanceName" : [ "vim-instance" ] } ], "virtual_link" : [ { "id" : "b6be79b6-9f7c-494a-8543-7dec75bcfb22", "hb_version" : 0, "extId" : "a3ae6958-34dc-305b-6903-3afc54bcad32", "root_requirement" : "4", "leaf_requirement" : "8", "qos" : [ ], "test_access" : [ ], "connectivity_type" : "connectivityType", "name" : "private", "connection_points_references" : [ ] } ], "vdu_dependency" : [ ], "deployment_flavour" : [ ], "manifest_file" : "manifestFile", "manifest_file_security" : [ { "id" : "965c21da-3c04-43f3-b54f-eadb34f7dda2", "version" : 1 } ], "type" : "server", "endpoint" : "generic", "vnfPackageLocation" : "a32340e7-45c1-4768-ab09-5826ec3e6594", "requires" : { "server" : { "id" : "a32340e7-45c1-4768-ab09-5826ec3e6594", "version" : 0, "parameters" : [ "private_floatingIp", "network" ]
22
} }, "provides" : [ ] } ], "vnf_dependency" : [ ], "pnfd" : [ ], "nsd_security" : { "id" : "965c21da-3c04-43f3-b54f-eadb34f7dda2", "version" : 1 }, "enabled" : false}
3.6. Updating a Network Service DescriptorPUT request with updated NSD as JSON content in request bodythe id in the url belongs to the NSD to update{host}/api/v1/ns-descriptors/{nsdId}
3.6.1. Request structure
Path Type Description
enabled Boolean _
hb_version Number _
name String The NSD’s name
vendor String The vendor of the NSD
version String The NSD’s version
vld Array An array ofVirtualLinkDescriptors
vnf_dependency Array An array of VNFDependencies
vnfd Array An array ofVirtualNetworkFunctionDescriptors
3.6.2. Example request
$ curl 'http://localhost:8080/api/v1/ns-descriptors/55555c52-f952-430c-b093-45acb2bbf50e'-i -X PUT -H 'project-id: 8a387f1e-9a42-43c7-bab0-3915719c6fca' -H 'Authorization: Bearere92dfd35-4a7e-4d33-9592-5f1ac595095e' -H 'Content-Type: application/json' -d '{ "vnfd" : [ {
23
"lifecycle_event" : [ { "version" : 0, "event" : "START", "lifecycle_events" : [ "server_start-client.sh" ] }, { "version" : 0, "event" : "INSTANTIATE", "lifecycle_events" : [ "install.sh" ] } ], "configurations" : { "version" : 0, "configurationParameters" : [ { "version" : 0, "description" : "Description of the configuration parameter", "confKey" : "answer", "value" : "42" } ], "name" : "config_name" }, "vdu" : [ { "version" : 0, "name" : "clientVdu1", "vm_image" : [ "name of an image" ], "scale_in_out" : 2, "vnfc" : [ { "version" : 0, "connection_point" : [ { "virtual_link_reference" : "networkA", "interfaceId" : 0, "version" : 0 } ] } ], "vimInstanceName" : [ "vim-instance" ] } ], "virtual_link" : [ { "hb_version" : 0, "name" : "networkA" } ], "deployment_flavour" : [ { "version" : 0, "flavour_key" : "m1.small", "ram" : 2048, "disk" : 5, "vcpus" : 2 } ], "type" : "client", "endpoint" : "generic", "cyclicDependency" : false,
24
"hb_version" : 0, "name" : "iperf-client", "vendor" : "FOKUS", "version" : "1" }, { "lifecycle_event" : [ { "version" : 0, "event" : "INSTANTIATE", "lifecycle_events" : [ "install.sh" ] }, { "version" : 0, "event" : "START", "lifecycle_events" : [ "start-server.sh" ] } ], "configurations" : { "version" : 0, "configurationParameters" : [ { "version" : 0, "description" : "Description of the configuration parameter", "confKey" : "answer", "value" : "42" } ], "name" : "config_name" }, "vdu" : [ { "version" : 0, "name" : "serverVdu1", "vm_image" : [ "name of an image" ], "scale_in_out" : 1, "vnfc" : [ { "version" : 0, "connection_point" : [ { "virtual_link_reference" : "networkA", "interfaceId" : 0, "version" : 0 } ] } ], "vimInstanceName" : [ "vim-instance" ] } ], "virtual_link" : [ { "hb_version" : 0, "name" : "networkA" } ], "deployment_flavour" : [ { "version" : 0, "flavour_key" : "m1.small", "ram" : 2048, "disk" : 5,
25
"vcpus" : 2 } ], "type" : "server", "endpoint" : "generic", "cyclicDependency" : false, "hb_version" : 0, "name" : "iperf-server", "vendor" : "FOKUS", "version" : "1" } ], "vnf_dependency" : [ ], "enabled" : false, "hb_version" : 0, "name" : "iperf-nsd", "vendor" : "FOKUS", "version" : "1", "vld" : [ ]}'
3.6.3. Example response
HTTP/1.1 202 AcceptedContent-Type: application/jsonContent-Length: 6705
{ "id" : "573aa807-b969-4bfd-95fa-f7abbe866bad", "hb_version" : 0, "name" : "iperf-nsd", "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "vendor" : "FOKUS", "version" : "1", "vnffgd" : [ ], "vld" : [ { "id" : "129c83ce-8c04-4a24-b54f-eddb64a9dfe4", "hb_version" : 0, "extId" : "920c21da-3c04-42f3-b54f-etzb64f7dfe2", "root_requirement" : "4", "leaf_requirement" : "8", "qos" : [ ], "test_access" : [ ], "connectivity_type" : "connectivityType", "name" : "private", "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "vendor" : "FOKUS", "descriptor_version" : "0.1",
26
"number_of_endpoints" : 0, "connection" : [ ], "vld_security" : { "id" : "965c21da-3c04-43f3-b54f-eadb34f7dda2", "version" : 1 } } ], "monitoring_parameter" : [ ], "service_deployment_flavour" : [ ], "auto_scale_policy" : [ ], "connection_point" : [ ], "vnfd" : [ { "id" : "90f6f488-ade0-4ae4-976d-9e34553603ca", "hb_version" : 1, "name" : "iperf-client", "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "vendor" : "FOKUS", "version" : "0.1", "vnffgd" : [ ], "vld" : [ ], "monitoring_parameter" : [ ], "service_deployment_flavour" : [ ], "auto_scale_policy" : [ ], "connection_point" : [ ], "lifecycle_event" : [ { "id" : "5034fc1a-83ad-23f9-7403-533fed9812ad", "version" : 0, "event" : "INSTANTIATE", "lifecycle_events" : [ "install.sh" ] }, { "id" : "3add5745-d582-43f4-b643-940c06022f11", "version" : 0, "event" : "START", "lifecycle_events" : [ "server_start-client.sh" ] } ], "configurations" : { "id" : "760583a0-ff99-4754-b1c7-2a7b1cc5d7b3", "version" : 1, "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "configurationParameters" : [ { "id" : "5969df32-3199-47d6-83cd-0b4da537dd0f", "version" : 0, "description" : "Description of the configuration parameter", "confKey" : "answer", "value" : "42" } ], "name" : "config_name" },
27
"vdu" : [ ], "virtual_link" : [ { "id" : "b6be79b6-9f7c-494a-8543-7dec75bcfb22", "hb_version" : 0, "extId" : "a3ae6958-34dc-305b-6903-3afc54bcad32", "root_requirement" : "4", "leaf_requirement" : "8", "qos" : [ ], "test_access" : [ ], "connectivity_type" : "connectivityType", "name" : "private", "connection_points_references" : [ ] } ], "vdu_dependency" : [ ], "deployment_flavour" : [ ], "manifest_file" : "manifestFile", "manifest_file_security" : [ { "id" : "965c21da-3c04-43f3-b54f-eadb34f7dda2", "version" : 1 } ], "type" : "client", "endpoint" : "generic", "vnfPackageLocation" : "b42340e7-09c1-4768-ab09-5886ec3e3444", "requires" : { "server" : { "id" : "a32340e7-45c1-4768-ab09-5826ec3e6594", "version" : 0, "parameters" : [ "private_floatingIp", "network" ] } }, "provides" : [ ] }, { "id" : "40f3f488-ade0-4re4-976d-9e34253603aa", "hb_version" : 1, "name" : "iperfserver", "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "vendor" : "fokus", "version" : "0.1", "vnffgd" : [ ], "vld" : [ ], "monitoring_parameter" : [ ], "service_deployment_flavour" : [ ], "auto_scale_policy" : [ ], "connection_point" : [ ], "lifecycle_event" : [ { "id" : "556fbc91-6a32-419b-afa4-e7e93acf9977", "version" : 0, "event" : "START",
28
"lifecycle_events" : [ "start-server.sh" ] }, { "id" : "5034fc1a-83ad-23f9-7403-533fed9812ad", "version" : 0, "event" : "INSTANTIATE", "lifecycle_events" : [ "install.sh" ] } ], "configurations" : { "id" : "760583a0-ff99-4754-b1c7-2a7b1cc5d7b3", "version" : 1, "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "configurationParameters" : [ { "id" : "5969df32-3199-47d6-83cd-0b4da537dd0f", "version" : 0, "description" : "Description of the configuration parameter", "confKey" : "answer", "value" : "42" } ], "name" : "config_name" }, "vdu" : [ { "id" : "56ea7355-9261-42e0-8193-53beec9d6514", "version" : 1, "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "name" : "iperf-server", "vm_image" : [ "ubuntu-14.04-server-cloudimg-amd64-disk1" ], "parent_vdu" : "28ea7355-9261-42e0-8193-53beec9d6514", "computation_requirement" : "computationRequirement", "virtual_memory_resource_element" : "virtualMemoryResourceElement", "virtual_network_bandwidth_resource" : "virtualNetworkBandwidthResource", "lifecycle_event" : [ ], "vdu_constraint" : "vduConstraint", "high_availability" : { "resiliencyLevel" : "ACTIVE_STANDBY_STATEFUL", "geoRedundancy" : true, "redundancyScheme" : "scheme" }, "fault_management_policy" : [ ], "scale_in_out" : 2, "vnfc" : [ { "id" : "5e4cc574-4e70-415a-b209-481ad882383e", "version" : 0, "connection_point" : [ { "id" : "5f8cc194-4e70-415a-b569-481cb882383e", "version" : 0, "type" : "type", "virtual_link_reference" : "private", "floatingIp" : "random",
29
"interfaceId" : 0 } ] } ], "vnfc_instance" : [ ], "monitoring_parameter" : [ ], "hostname" : "iperfserver-435", "vimInstanceName" : [ "vim-instance" ] } ], "virtual_link" : [ { "id" : "b6be79b6-9f7c-494a-8543-7dec75bcfb22", "hb_version" : 0, "extId" : "a3ae6958-34dc-305b-6903-3afc54bcad32", "root_requirement" : "4", "leaf_requirement" : "8", "qos" : [ ], "test_access" : [ ], "connectivity_type" : "connectivityType", "name" : "private", "connection_points_references" : [ ] } ], "vdu_dependency" : [ ], "deployment_flavour" : [ ], "manifest_file" : "manifestFile", "manifest_file_security" : [ { "id" : "965c21da-3c04-43f3-b54f-eadb34f7dda2", "version" : 1 } ], "type" : "server", "endpoint" : "generic", "vnfPackageLocation" : "a32340e7-45c1-4768-ab09-5826ec3e6594", "requires" : { "server" : { "id" : "a32340e7-45c1-4768-ab09-5826ec3e6594", "version" : 0, "parameters" : [ "private_floatingIp", "network" ] } }, "provides" : [ ] } ], "vnf_dependency" : [ ], "pnfd" : [ ], "nsd_security" : { "id" : "965c21da-3c04-43f3-b54f-eadb34f7dda2", "version" : 1 }, "enabled" : false}
30
3.7. Removing a Network Service DescriptorDELETE requestthe id in the url belongs to the NSD to delete{host}/api/v1/ns-descriptors/{nsdId}
3.7.1. Example request
$ curl 'http://localhost:8080/api/v1/ns-descriptors/55555c52-f952-430c-b093-45acb2bbf50e'-i -X DELETE -H 'project-id: 8a387f1e-9a42-43c7-bab0-3915719c6fca' -H 'Authorization:Bearer e92dfd35-4a7e-4d33-9592-5f1ac595095e'
3.7.2. Example response
HTTP/1.1 204 No Content
3.8. Removing multiple Network Service DescriptorsDELETE requestthe ids in the request body specify the NSDs to delete{host}/api/v1/ns-descriptors/multipledelete
3.8.1. Example request
$ curl 'http://localhost:8080/api/v1/ns-descriptors/multipledelete' -i -X DELETE -H'project-id: 8a387f1e-9a42-43c7-bab0-3915719c6fca' -H 'Authorization: Bearer e92dfd35-4a7e-4d33-9592-5f1ac595095e' -d '[ "55555c52-f952-430c-b093-45acb2bbf50e", "5c357f1e-9a42-c4a5-bab0-3916248c6fca" ]'
3.8.2. Example response
HTTP/1.1 204 No Content
31
Chapter 4. Virtual NetworkFunctionDescriptor
4.1. OverviewA VNF Descriptor (VNFD) is a deployment template which describes a VNF in terms of deployment andoperational behaviour requirements. The VNFD also contains connectivity and interface requirementsthat can be used to establish appropriate Virtual Links between the Virtual Network FunctionComponents of the VNF or from the VNF to another one.See also http://openbaton.github.io/documentation/vnf-descriptor.
4.2. Adding a Virtual Network Function DescriptorPOST request with VNFD as JSON content of the request body{host}/api/v1/vnf-descriptors/
4.2.1. Request structure
Path Type Description
configurations Object Configuration object to provideparameters to the NetworkService
cyclicDependency Boolean _
deployment_flavour Array The deployment flavour of thisVNFD
endpoint String The type of Vnfm in charge ofmanaging this VNF
hb_version Number _
lifecycle_event Array The lifecycle events that shouldbe executed on the VNFtriggered by the vnfm
name String The name of the VNFD
type String The type of the VNFD
vdu Array An aray ofVirtualDeploymentUnits
vendor String The vendor of the VNFD
32
Path Type Description
virtual_link Array Array of VirtualLinks, thatrepresent the type of networkconnectivity mandated by theVNF vendor between two ormore ConnectionPoints
version String The version of the VNFD
4.2.2. Example request
$ curl 'http://localhost:8080/api/v1/vnf-descriptors' -i -X POST -H 'project-id:8a387f1e-9a42-43c7-bab0-3915719c6fca' -H 'Authorization: Bearer e92dfd35-4a7e-4d33-9592-5f1ac595095e' -H 'Content-Type: application/json' -d '{ "lifecycle_event" : [ { "version" : 0, "event" : "INSTANTIATE", "lifecycle_events" : [ "install.sh" ] }, { "version" : 0, "event" : "START", "lifecycle_events" : [ "server_start-client.sh" ] } ], "configurations" : { "version" : 0, "configurationParameters" : [ { "version" : 0, "description" : "Description of the configuration parameter", "confKey" : "answer", "value" : "42" } ], "name" : "config_name" }, "vdu" : [ { "version" : 0, "name" : "clientVdu1", "vm_image" : [ "name of an image" ], "scale_in_out" : 2, "vnfc" : [ { "version" : 0, "connection_point" : [ { "virtual_link_reference" : "networkA", "interfaceId" : 0, "version" : 0 } ] } ],
33
"vimInstanceName" : [ "vim-instance" ] } ], "virtual_link" : [ { "hb_version" : 0, "name" : "networkA" } ], "deployment_flavour" : [ { "version" : 0, "flavour_key" : "m1.small", "ram" : 2048, "disk" : 5, "vcpus" : 2 } ], "type" : "client", "endpoint" : "generic", "cyclicDependency" : false, "hb_version" : 0, "name" : "iperf-client", "vendor" : "FOKUS", "version" : "1"}'
4.2.3. Example response
HTTP/1.1 201 Created
4.3. Retrieving all Virtual Network Function DescriptorsGET request{host}/api/v1/vnf-descriptors/
4.3.1. Response structure
Path Type Description
[] Object The array containing everyVNFD
4.3.2. Example request
$ curl 'http://localhost:8080/api/v1/vnf-descriptors' -i -H 'project-id: 8a387f1e-9a42-43c7-bab0-3915719c6fca' -H 'Authorization: Bearer e92dfd35-4a7e-4d33-9592-5f1ac595095e'
34
4.3.3. Example response
HTTP/1.1 200 OKContent-Type: application/json;charset=UTF-8Content-Length: 5262
[ { "id" : "90f6f488-ade0-4ae4-976d-9e34553603ca", "hb_version" : 1, "name" : "iperf-client", "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "vendor" : "FOKUS", "version" : "0.1", "vnffgd" : [ ], "vld" : [ ], "monitoring_parameter" : [ ], "service_deployment_flavour" : [ ], "auto_scale_policy" : [ ], "connection_point" : [ ], "lifecycle_event" : [ { "id" : "5034fc1a-83ad-23f9-7403-533fed9812ad", "version" : 0, "event" : "INSTANTIATE", "lifecycle_events" : [ "install.sh" ] }, { "id" : "3add5745-d582-43f4-b643-940c06022f11", "version" : 0, "event" : "START", "lifecycle_events" : [ "server_start-client.sh" ] } ], "configurations" : { "id" : "760583a0-ff99-4754-b1c7-2a7b1cc5d7b3", "version" : 1, "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "configurationParameters" : [ { "id" : "5969df32-3199-47d6-83cd-0b4da537dd0f", "version" : 0, "description" : "Description of the configuration parameter", "confKey" : "answer", "value" : "42" } ], "name" : "config_name" }, "vdu" : [ ], "virtual_link" : [ { "id" : "b6be79b6-9f7c-494a-8543-7dec75bcfb22", "hb_version" : 0,
35
"extId" : "a3ae6958-34dc-305b-6903-3afc54bcad32", "root_requirement" : "4", "leaf_requirement" : "8", "qos" : [ ], "test_access" : [ ], "connectivity_type" : "connectivityType", "name" : "private", "connection_points_references" : [ ] } ], "vdu_dependency" : [ ], "deployment_flavour" : [ ], "manifest_file" : "manifestFile", "manifest_file_security" : [ { "id" : "965c21da-3c04-43f3-b54f-eadb34f7dda2", "version" : 1 } ], "type" : "client", "endpoint" : "generic", "vnfPackageLocation" : "b42340e7-09c1-4768-ab09-5886ec3e3444", "requires" : { "server" : { "id" : "a32340e7-45c1-4768-ab09-5826ec3e6594", "version" : 0, "parameters" : [ "private_floatingIp", "network" ] } }, "provides" : [ ]}, { "id" : "40f3f488-ade0-4re4-976d-9e34253603aa", "hb_version" : 1, "name" : "iperfserver", "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "vendor" : "fokus", "version" : "0.1", "vnffgd" : [ ], "vld" : [ ], "monitoring_parameter" : [ ], "service_deployment_flavour" : [ ], "auto_scale_policy" : [ ], "connection_point" : [ ], "lifecycle_event" : [ { "id" : "5034fc1a-83ad-23f9-7403-533fed9812ad", "version" : 0, "event" : "INSTANTIATE", "lifecycle_events" : [ "install.sh" ] }, { "id" : "556fbc91-6a32-419b-afa4-e7e93acf9977", "version" : 0,
36
"event" : "START", "lifecycle_events" : [ "start-server.sh" ] } ], "configurations" : { "id" : "760583a0-ff99-4754-b1c7-2a7b1cc5d7b3", "version" : 1, "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "configurationParameters" : [ { "id" : "5969df32-3199-47d6-83cd-0b4da537dd0f", "version" : 0, "description" : "Description of the configuration parameter", "confKey" : "answer", "value" : "42" } ], "name" : "config_name" }, "vdu" : [ { "id" : "56ea7355-9261-42e0-8193-53beec9d6514", "version" : 1, "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "name" : "iperf-server", "vm_image" : [ "ubuntu-14.04-server-cloudimg-amd64-disk1" ], "parent_vdu" : "28ea7355-9261-42e0-8193-53beec9d6514", "computation_requirement" : "computationRequirement", "virtual_memory_resource_element" : "virtualMemoryResourceElement", "virtual_network_bandwidth_resource" : "virtualNetworkBandwidthResource", "lifecycle_event" : [ ], "vdu_constraint" : "vduConstraint", "high_availability" : { "resiliencyLevel" : "ACTIVE_STANDBY_STATEFUL", "geoRedundancy" : true, "redundancyScheme" : "scheme" }, "fault_management_policy" : [ ], "scale_in_out" : 2, "vnfc" : [ { "id" : "5e4cc574-4e70-415a-b209-481ad882383e", "version" : 0, "connection_point" : [ { "id" : "5f8cc194-4e70-415a-b569-481cb882383e", "version" : 0, "type" : "type", "virtual_link_reference" : "private", "floatingIp" : "random", "interfaceId" : 0 } ] } ], "vnfc_instance" : [ ],
37
"monitoring_parameter" : [ ], "hostname" : "iperfserver-435", "vimInstanceName" : [ "vim-instance" ] } ], "virtual_link" : [ { "id" : "b6be79b6-9f7c-494a-8543-7dec75bcfb22", "hb_version" : 0, "extId" : "a3ae6958-34dc-305b-6903-3afc54bcad32", "root_requirement" : "4", "leaf_requirement" : "8", "qos" : [ ], "test_access" : [ ], "connectivity_type" : "connectivityType", "name" : "private", "connection_points_references" : [ ] } ], "vdu_dependency" : [ ], "deployment_flavour" : [ ], "manifest_file" : "manifestFile", "manifest_file_security" : [ { "id" : "965c21da-3c04-43f3-b54f-eadb34f7dda2", "version" : 1 } ], "type" : "server", "endpoint" : "generic", "vnfPackageLocation" : "a32340e7-45c1-4768-ab09-5826ec3e6594", "requires" : { "server" : { "id" : "a32340e7-45c1-4768-ab09-5826ec3e6594", "version" : 0, "parameters" : [ "private_floatingIp", "network" ] } }, "provides" : [ ]} ]
4.4. Retrieving a Virtual Network Function DescriptorGET requestthe id in the url belongs to the requested VNFD{host}/api/v1/vnf-descriptors/{vnfdId}
4.4.1. Response structure
38
Path Type Description
auto_scale_policy Array _
configurations Object Configuration object to provideparameters to the NetworkService
connection_point Array _
deployment_flavour Array The deployment flavour of thisVNFD
endpoint String The type of the Vnfm in chargeof managing this VNF
hb_version Number _
id String The VNFD’s id
lifecycle_event Array The lifecycle events that shouldbe executed on the VNFtriggered by the vnfm
manifest_file String _
manifest_file_security Array _
monitoring_parameter Array Used for fault management
name String The VNFD’s name
projectId String The id of the project to whichthis VNFD belongs
provides Array _
requires Object _
service_deployment_flavour Array _
type String The type of the VNFD
vendor String The vendor of the VNFD
version String The VNFD’s version
virtual_link Array Array of VirtualLinks, thatrepresent the type of networkconnectivity mandated by theVNF vendor between two ormore ConnectionPoints
vld Array An array ofVirtualLinkDescriptors
vnffgd Array _
39
Path Type Description
vnfPackageLocation String The url where the scripts for thelifecycle events are stored
vdu Array An aray ofVirtualDeploymentUnits
vdu_dependency Array _
4.4.2. Example request
$ curl 'http://localhost:8080/api/v1/vnf-descriptors/55553c52-f952-430c-b693-45aab2bbf58e' -i -H 'project-id: 8a387f1e-9a42-43c7-bab0-3915719c6fca' -H 'Authorization:Bearer e92dfd35-4a7e-4d33-9592-5f1ac595095e'
4.4.3. Example response
HTTP/1.1 200 OKContent-Type: application/json;charset=UTF-8Content-Length: 1998
{ "id" : "90f6f488-ade0-4ae4-976d-9e34553603ca", "hb_version" : 1, "name" : "iperf-client", "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "vendor" : "FOKUS", "version" : "0.1", "vnffgd" : [ ], "vld" : [ ], "monitoring_parameter" : [ ], "service_deployment_flavour" : [ ], "auto_scale_policy" : [ ], "connection_point" : [ ], "lifecycle_event" : [ { "id" : "5034fc1a-83ad-23f9-7403-533fed9812ad", "version" : 0, "event" : "INSTANTIATE", "lifecycle_events" : [ "install.sh" ] }, { "id" : "3add5745-d582-43f4-b643-940c06022f11", "version" : 0, "event" : "START", "lifecycle_events" : [ "server_start-client.sh" ] } ],
40
"configurations" : { "id" : "760583a0-ff99-4754-b1c7-2a7b1cc5d7b3", "version" : 1, "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "configurationParameters" : [ { "id" : "5969df32-3199-47d6-83cd-0b4da537dd0f", "version" : 0, "description" : "Description of the configuration parameter", "confKey" : "answer", "value" : "42" } ], "name" : "config_name" }, "vdu" : [ ], "virtual_link" : [ { "id" : "b6be79b6-9f7c-494a-8543-7dec75bcfb22", "hb_version" : 0, "extId" : "a3ae6958-34dc-305b-6903-3afc54bcad32", "root_requirement" : "4", "leaf_requirement" : "8", "qos" : [ ], "test_access" : [ ], "connectivity_type" : "connectivityType", "name" : "private", "connection_points_references" : [ ] } ], "vdu_dependency" : [ ], "deployment_flavour" : [ ], "manifest_file" : "manifestFile", "manifest_file_security" : [ { "id" : "965c21da-3c04-43f3-b54f-eadb34f7dda2", "version" : 1 } ], "type" : "client", "endpoint" : "generic", "vnfPackageLocation" : "b42340e7-09c1-4768-ab09-5886ec3e3444", "requires" : { "server" : { "id" : "a32340e7-45c1-4768-ab09-5826ec3e6594", "version" : 0, "parameters" : [ "private_floatingIp", "network" ] } }, "provides" : [ ]}
41
4.5. Updating a Virtual Network Function DescriptorPUT request with updated VNFD as JSON content in request bodythe id in the url belongs to the VNFD that shall be updated{host}/api/v1/vnf-descriptors/{vnfdId}
4.5.1. Request structure
Path Type Description
configurations Object Configuration object to provideparameters to the NetworkService
deployment_flavour Array The deployment flavour of thisVNFD
cyclicDependency Boolean _
endpoint String The type of the Vnfm in chargeof managing this VNF
hb_version Number _
lifecycle_event Array The lifecycle events that shouldbe executed on the VNFtriggered by the vnfm
name String The name of the VNFD
type String The type of the VNFD
vdu Array An aray ofVirtualDeploymentUnits
vendor String The vendor of the VNFD
version String The version of the VNFD
virtual_link Array Array of VirtualLinks, thatrepresent the type of networkconnectivity mandated by theVNF vendor between two ormore ConnectionPoints
4.5.2. Example request
$ curl 'http://localhost:8080/api/v1/vnf-descriptors/faba910d-449d-4146-b4ea-7373c515aebc' -i -X PUT -H 'project-id: 8a387f1e-9a42-43c7-bab0-3915719c6fca' -H'Authorization: Bearer e92dfd35-4a7e-4d33-9592-5f1ac595095e' -H 'Content-Type:application/json' -d '{
42
"lifecycle_event" : [ { "version" : 0, "event" : "INSTANTIATE", "lifecycle_events" : [ "install.sh" ] }, { "version" : 0, "event" : "START", "lifecycle_events" : [ "server_start-client.sh" ] } ], "configurations" : { "version" : 0, "configurationParameters" : [ { "version" : 0, "description" : "Description of the configuration parameter", "confKey" : "answer", "value" : "42" } ], "name" : "config_name" }, "vdu" : [ { "version" : 0, "name" : "clientVdu1", "vm_image" : [ "name of an image" ], "scale_in_out" : 2, "vnfc" : [ { "version" : 0, "connection_point" : [ { "virtual_link_reference" : "networkA", "interfaceId" : 0, "version" : 0 } ] } ], "vimInstanceName" : [ "vim-instance" ] } ], "virtual_link" : [ { "hb_version" : 0, "name" : "networkA" } ], "deployment_flavour" : [ { "version" : 0, "flavour_key" : "m1.small", "ram" : 2048, "disk" : 5, "vcpus" : 2 } ], "type" : "client", "endpoint" : "generic", "cyclicDependency" : false,
43
"hb_version" : 0, "name" : "iperf-client", "vendor" : "FOKUS", "version" : "1"}'
4.5.3. Example response
HTTP/1.1 202 AcceptedContent-Type: application/jsonContent-Length: 1998
{ "id" : "90f6f488-ade0-4ae4-976d-9e34553603ca", "hb_version" : 1, "name" : "iperf-client", "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "vendor" : "FOKUS", "version" : "0.1", "vnffgd" : [ ], "vld" : [ ], "monitoring_parameter" : [ ], "service_deployment_flavour" : [ ], "auto_scale_policy" : [ ], "connection_point" : [ ], "lifecycle_event" : [ { "id" : "3add5745-d582-43f4-b643-940c06022f11", "version" : 0, "event" : "START", "lifecycle_events" : [ "server_start-client.sh" ] }, { "id" : "5034fc1a-83ad-23f9-7403-533fed9812ad", "version" : 0, "event" : "INSTANTIATE", "lifecycle_events" : [ "install.sh" ] } ], "configurations" : { "id" : "760583a0-ff99-4754-b1c7-2a7b1cc5d7b3", "version" : 1, "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "configurationParameters" : [ { "id" : "5969df32-3199-47d6-83cd-0b4da537dd0f", "version" : 0, "description" : "Description of the configuration parameter", "confKey" : "answer", "value" : "42"
44
} ], "name" : "config_name" }, "vdu" : [ ], "virtual_link" : [ { "id" : "b6be79b6-9f7c-494a-8543-7dec75bcfb22", "hb_version" : 0, "extId" : "a3ae6958-34dc-305b-6903-3afc54bcad32", "root_requirement" : "4", "leaf_requirement" : "8", "qos" : [ ], "test_access" : [ ], "connectivity_type" : "connectivityType", "name" : "private", "connection_points_references" : [ ] } ], "vdu_dependency" : [ ], "deployment_flavour" : [ ], "manifest_file" : "manifestFile", "manifest_file_security" : [ { "id" : "965c21da-3c04-43f3-b54f-eadb34f7dda2", "version" : 1 } ], "type" : "client", "endpoint" : "generic", "vnfPackageLocation" : "b42340e7-09c1-4768-ab09-5886ec3e3444", "requires" : { "server" : { "id" : "a32340e7-45c1-4768-ab09-5826ec3e6594", "version" : 0, "parameters" : [ "private_floatingIp", "network" ] } }, "provides" : [ ]}
4.6. Removing a Virtual Network Function DescriptorDELETE requestthe id in the url belongs to the VNFD to be deleted{host}/api/v1/vnf-descriptors/{vnfdId}
4.6.1. Example request
45
$ curl 'http://localhost:8080/api/v1/vnf-descriptors/faba910d-449d-4146-b4ea-7373c515aebc' -i -X DELETE -H 'project-id: 8a387f1e-9a42-43c7-bab0-3915719c6fca' -H'Authorization: Bearer e92dfd35-4a7e-4d33-9592-5f1ac595095e'
4.6.2. Example response
HTTP/1.1 204 No Content
4.7. Removing multiple Virtual Network FunctionDescriptorsDELETE requestthe ids in the request body specify the VNFDs to delete{host}/api/v1/vnf-descriptors/multipledelete
4.7.1. Example request
$ curl 'http://localhost:8080/api/v1/vnf-descriptors/multipledelete' -i -X DELETE -H'project-id: 8a387f1e-9a42-43c7-bab0-3915719c6fca' -H 'Authorization: Bearer e92dfd35-4a7e-4d33-9592-5f1ac595095e' -d '[ "55555c52-f952-430c-b093-45acb2bbf50e", "5c357f1e-9a42-c4a5-bab0-3916248c6fca" ]'
4.7.2. Example response
HTTP/1.1 204 No Content
4.8. Adding a Virtual Network Function Descriptor to aNSDPOST request with VNFD as JSON content of the request bodythe id in the url belongs to the NSD to which the VNFD shall be added{host}/api/v1/ns-descriptors{nsdId}/vnfdescriptors/
4.8.1. Request structure
46
Path Type Description
configurations Object Configuration object to provideparameters to the NetworkService
cyclicDependency Boolean _
deployment_flavour Array The deployment flavour of thisVNFD
endpoint String The type of Vnfm in charge ofmanaging this VNF
hb_version Number _
lifecycle_event Array The lifecycle events that shouldbe executed on the VNFtriggered by the vnfm
name String The name of the VNFD
type String The type of the VNFD
vdu Array An aray ofVirtualDeploymentUnits
vendor String The vendor of the VNFD
virtual_link Array Array of VirtualLinks, thatrepresent the type of networkconnectivity mandated by theVNF vendor between two ormore ConnectionPoints
version String The version of the VNFD
4.8.2. Example request
$ curl 'http://localhost:8080/api/v1/ns-descriptors/55555c52-f952-430c-b093-45acb2bbf50e/vnfdescriptors/' -i -X POST -H 'project-id: 8a387f1e-9a42-43c7-bab0-3915719c6fca' -H 'Authorization: Bearer e92dfd35-4a7e-4d33-9592-5f1ac595095e' -H'Content-Type: application/json' -d '{ "lifecycle_event" : [ { "version" : 0, "event" : "INSTANTIATE", "lifecycle_events" : [ "install.sh" ] }, { "version" : 0, "event" : "START", "lifecycle_events" : [ "start-server.sh" ] } ],
47
"configurations" : { "version" : 0, "configurationParameters" : [ { "version" : 0, "description" : "Description of the configuration parameter", "confKey" : "answer", "value" : "42" } ], "name" : "config_name" }, "vdu" : [ { "version" : 0, "name" : "serverVdu1", "vm_image" : [ "name of an image" ], "scale_in_out" : 1, "vnfc" : [ { "version" : 0, "connection_point" : [ { "virtual_link_reference" : "networkA", "interfaceId" : 0, "version" : 0 } ] } ], "vimInstanceName" : [ "vim-instance" ] } ], "virtual_link" : [ { "hb_version" : 0, "name" : "networkA" } ], "deployment_flavour" : [ { "version" : 0, "flavour_key" : "m1.small", "ram" : 2048, "disk" : 5, "vcpus" : 2 } ], "type" : "server", "endpoint" : "generic", "cyclicDependency" : false, "hb_version" : 0, "name" : "iperf-server", "vendor" : "FOKUS", "version" : "1"}'
48
4.8.3. Example response
HTTP/1.1 201 CreatedContent-Type: application/jsonContent-Length: 3258
{ "id" : "40f3f488-ade0-4re4-976d-9e34253603aa", "hb_version" : 1, "name" : "iperfserver", "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "vendor" : "fokus", "version" : "0.1", "vnffgd" : [ ], "vld" : [ ], "monitoring_parameter" : [ ], "service_deployment_flavour" : [ ], "auto_scale_policy" : [ ], "connection_point" : [ ], "lifecycle_event" : [ { "id" : "556fbc91-6a32-419b-afa4-e7e93acf9977", "version" : 0, "event" : "START", "lifecycle_events" : [ "start-server.sh" ] }, { "id" : "5034fc1a-83ad-23f9-7403-533fed9812ad", "version" : 0, "event" : "INSTANTIATE", "lifecycle_events" : [ "install.sh" ] } ], "configurations" : { "id" : "760583a0-ff99-4754-b1c7-2a7b1cc5d7b3", "version" : 1, "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "configurationParameters" : [ { "id" : "5969df32-3199-47d6-83cd-0b4da537dd0f", "version" : 0, "description" : "Description of the configuration parameter", "confKey" : "answer", "value" : "42" } ], "name" : "config_name" }, "vdu" : [ { "id" : "56ea7355-9261-42e0-8193-53beec9d6514", "version" : 1, "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca",
49
"name" : "iperf-server", "vm_image" : [ "ubuntu-14.04-server-cloudimg-amd64-disk1" ], "parent_vdu" : "28ea7355-9261-42e0-8193-53beec9d6514", "computation_requirement" : "computationRequirement", "virtual_memory_resource_element" : "virtualMemoryResourceElement", "virtual_network_bandwidth_resource" : "virtualNetworkBandwidthResource", "lifecycle_event" : [ ], "vdu_constraint" : "vduConstraint", "high_availability" : { "resiliencyLevel" : "ACTIVE_STANDBY_STATEFUL", "geoRedundancy" : true, "redundancyScheme" : "scheme" }, "fault_management_policy" : [ ], "scale_in_out" : 2, "vnfc" : [ { "id" : "5e4cc574-4e70-415a-b209-481ad882383e", "version" : 0, "connection_point" : [ { "id" : "5f8cc194-4e70-415a-b569-481cb882383e", "version" : 0, "type" : "type", "virtual_link_reference" : "private", "floatingIp" : "random", "interfaceId" : 0 } ] } ], "vnfc_instance" : [ ], "monitoring_parameter" : [ ], "hostname" : "iperfserver-435", "vimInstanceName" : [ "vim-instance" ] } ], "virtual_link" : [ { "id" : "b6be79b6-9f7c-494a-8543-7dec75bcfb22", "hb_version" : 0, "extId" : "a3ae6958-34dc-305b-6903-3afc54bcad32", "root_requirement" : "4", "leaf_requirement" : "8", "qos" : [ ], "test_access" : [ ], "connectivity_type" : "connectivityType", "name" : "private", "connection_points_references" : [ ] } ], "vdu_dependency" : [ ], "deployment_flavour" : [ ], "manifest_file" : "manifestFile", "manifest_file_security" : [ {
50
"id" : "965c21da-3c04-43f3-b54f-eadb34f7dda2", "version" : 1 } ], "type" : "server", "endpoint" : "generic", "vnfPackageLocation" : "a32340e7-45c1-4768-ab09-5826ec3e6594", "requires" : { "server" : { "id" : "a32340e7-45c1-4768-ab09-5826ec3e6594", "version" : 0, "parameters" : [ "private_floatingIp", "network" ] } }, "provides" : [ ]}
4.9. Retrieving all Virtual Network Function Descriptorsof a NSDGET requestthe id in the url belongs to the NSD from which the VNFDs shall be retrieved{host}/api/v1/ns-descriptors/{nsdId}/vnfdescriptors/
4.9.1. Response structure
Path Type Description
[] Object The array containing the VNFDsof the NSD with the specified id
4.9.2. Example request
$ curl 'http://localhost:8080/api/v1/ns-descriptors/55555c52-f952-430c-b093-45acb2bbf50e/vnfdescriptors' -i -H 'project-id: 8a387f1e-9a42-43c7-bab0-3915719c6fca' -H'Authorization: Bearer e92dfd35-4a7e-4d33-9592-5f1ac595095e'
4.9.3. Example response
HTTP/1.1 200 OKContent-Type: application/jsonContent-Length: 5262
[ {
51
"id" : "90f6f488-ade0-4ae4-976d-9e34553603ca", "hb_version" : 1, "name" : "iperf-client", "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "vendor" : "FOKUS", "version" : "0.1", "vnffgd" : [ ], "vld" : [ ], "monitoring_parameter" : [ ], "service_deployment_flavour" : [ ], "auto_scale_policy" : [ ], "connection_point" : [ ], "lifecycle_event" : [ { "id" : "5034fc1a-83ad-23f9-7403-533fed9812ad", "version" : 0, "event" : "INSTANTIATE", "lifecycle_events" : [ "install.sh" ] }, { "id" : "3add5745-d582-43f4-b643-940c06022f11", "version" : 0, "event" : "START", "lifecycle_events" : [ "server_start-client.sh" ] } ], "configurations" : { "id" : "760583a0-ff99-4754-b1c7-2a7b1cc5d7b3", "version" : 1, "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "configurationParameters" : [ { "id" : "5969df32-3199-47d6-83cd-0b4da537dd0f", "version" : 0, "description" : "Description of the configuration parameter", "confKey" : "answer", "value" : "42" } ], "name" : "config_name" }, "vdu" : [ ], "virtual_link" : [ { "id" : "b6be79b6-9f7c-494a-8543-7dec75bcfb22", "hb_version" : 0, "extId" : "a3ae6958-34dc-305b-6903-3afc54bcad32", "root_requirement" : "4", "leaf_requirement" : "8", "qos" : [ ], "test_access" : [ ], "connectivity_type" : "connectivityType", "name" : "private", "connection_points_references" : [ ]
52
} ], "vdu_dependency" : [ ], "deployment_flavour" : [ ], "manifest_file" : "manifestFile", "manifest_file_security" : [ { "id" : "965c21da-3c04-43f3-b54f-eadb34f7dda2", "version" : 1 } ], "type" : "client", "endpoint" : "generic", "vnfPackageLocation" : "b42340e7-09c1-4768-ab09-5886ec3e3444", "requires" : { "server" : { "id" : "a32340e7-45c1-4768-ab09-5826ec3e6594", "version" : 0, "parameters" : [ "private_floatingIp", "network" ] } }, "provides" : [ ]}, { "id" : "40f3f488-ade0-4re4-976d-9e34253603aa", "hb_version" : 1, "name" : "iperfserver", "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "vendor" : "fokus", "version" : "0.1", "vnffgd" : [ ], "vld" : [ ], "monitoring_parameter" : [ ], "service_deployment_flavour" : [ ], "auto_scale_policy" : [ ], "connection_point" : [ ], "lifecycle_event" : [ { "id" : "5034fc1a-83ad-23f9-7403-533fed9812ad", "version" : 0, "event" : "INSTANTIATE", "lifecycle_events" : [ "install.sh" ] }, { "id" : "556fbc91-6a32-419b-afa4-e7e93acf9977", "version" : 0, "event" : "START", "lifecycle_events" : [ "start-server.sh" ] } ], "configurations" : { "id" : "760583a0-ff99-4754-b1c7-2a7b1cc5d7b3", "version" : 1, "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "configurationParameters" : [ {
53
"id" : "5969df32-3199-47d6-83cd-0b4da537dd0f", "version" : 0, "description" : "Description of the configuration parameter", "confKey" : "answer", "value" : "42" } ], "name" : "config_name" }, "vdu" : [ { "id" : "56ea7355-9261-42e0-8193-53beec9d6514", "version" : 1, "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "name" : "iperf-server", "vm_image" : [ "ubuntu-14.04-server-cloudimg-amd64-disk1" ], "parent_vdu" : "28ea7355-9261-42e0-8193-53beec9d6514", "computation_requirement" : "computationRequirement", "virtual_memory_resource_element" : "virtualMemoryResourceElement", "virtual_network_bandwidth_resource" : "virtualNetworkBandwidthResource", "lifecycle_event" : [ ], "vdu_constraint" : "vduConstraint", "high_availability" : { "resiliencyLevel" : "ACTIVE_STANDBY_STATEFUL", "geoRedundancy" : true, "redundancyScheme" : "scheme" }, "fault_management_policy" : [ ], "scale_in_out" : 2, "vnfc" : [ { "id" : "5e4cc574-4e70-415a-b209-481ad882383e", "version" : 0, "connection_point" : [ { "id" : "5f8cc194-4e70-415a-b569-481cb882383e", "version" : 0, "type" : "type", "virtual_link_reference" : "private", "floatingIp" : "random", "interfaceId" : 0 } ] } ], "vnfc_instance" : [ ], "monitoring_parameter" : [ ], "hostname" : "iperfserver-435", "vimInstanceName" : [ "vim-instance" ] } ], "virtual_link" : [ { "id" : "b6be79b6-9f7c-494a-8543-7dec75bcfb22", "hb_version" : 0, "extId" : "a3ae6958-34dc-305b-6903-3afc54bcad32",
54
"root_requirement" : "4", "leaf_requirement" : "8", "qos" : [ ], "test_access" : [ ], "connectivity_type" : "connectivityType", "name" : "private", "connection_points_references" : [ ] } ], "vdu_dependency" : [ ], "deployment_flavour" : [ ], "manifest_file" : "manifestFile", "manifest_file_security" : [ { "id" : "965c21da-3c04-43f3-b54f-eadb34f7dda2", "version" : 1 } ], "type" : "server", "endpoint" : "generic", "vnfPackageLocation" : "a32340e7-45c1-4768-ab09-5826ec3e6594", "requires" : { "server" : { "id" : "a32340e7-45c1-4768-ab09-5826ec3e6594", "version" : 0, "parameters" : [ "private_floatingIp", "network" ] } }, "provides" : [ ]} ]
4.10. Retrieving a Virtual Network Function Descriptorof a NSDGET requestthe first id in the url belongs to the NSD that contains the VNFDthe second id in the url belongs to the requested VNFD{host}/api/v1/ns-descriptors/{nsdId}/vnfdescriptors/{vnfdId}
4.10.1. Response structure
Path Type Description
auto_scale_policy Array _
configurations Object Configuration object to provideparameters to the NetworkService
55
Path Type Description
connection_point Array _
deployment_flavour Array The deployment flavour of thisVNFD
endpoint String The type of the Vnfm in chargeof managing this VNF
hb_version Number _
id String The VNFD’s id
lifecycle_event Array The lifecycle events that shouldbe executed on the VNFtriggered by the vnfm
manifest_file String _
manifest_file_security Array _
monitoring_parameter Array Used for fault management
name String The VNFD’s name
projectId String The id of the project to whichthis VNFD belongs
provides Array _
requires Object Describes dependencies to otherVNFD
service_deployment_flavour Array _
type String The type of the VNFD
vendor String The vendor of the VNFD
version String The VNFD’s version
virtual_link Array Array of VirtualLinks, thatrepresent the type of networkconnectivity mandated by theVNF vendor between two ormore ConnectionPoints
vld Array An array ofVirtualLinkDescriptors
vnffgd Array _
vnfPackageLocation String The url where the scripts for thelifecycle events are stored
56
Path Type Description
vdu Array An aray ofVirtualDeploymentUnits
vdu_dependency Array _
4.10.2. Example request
$ curl 'http://localhost:8080/api/v1/ns-descriptors/55555c52-f952-430c-b093-45acb2bbf50e/vnfdescriptors/faaa910d-457d-4148-b4ea-7373b515febc' -i -H 'project-id:8a387f1e-9a42-43c7-bab0-3915719c6fca' -H 'Authorization: Bearer e92dfd35-4a7e-4d33-9592-5f1ac595095e'
4.10.3. Example response
HTTP/1.1 200 OKContent-Type: application/jsonContent-Length: 3258
{ "id" : "40f3f488-ade0-4re4-976d-9e34253603aa", "hb_version" : 1, "name" : "iperfserver", "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "vendor" : "fokus", "version" : "0.1", "vnffgd" : [ ], "vld" : [ ], "monitoring_parameter" : [ ], "service_deployment_flavour" : [ ], "auto_scale_policy" : [ ], "connection_point" : [ ], "lifecycle_event" : [ { "id" : "556fbc91-6a32-419b-afa4-e7e93acf9977", "version" : 0, "event" : "START", "lifecycle_events" : [ "start-server.sh" ] }, { "id" : "5034fc1a-83ad-23f9-7403-533fed9812ad", "version" : 0, "event" : "INSTANTIATE", "lifecycle_events" : [ "install.sh" ] } ], "configurations" : { "id" : "760583a0-ff99-4754-b1c7-2a7b1cc5d7b3",
57
"version" : 1, "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "configurationParameters" : [ { "id" : "5969df32-3199-47d6-83cd-0b4da537dd0f", "version" : 0, "description" : "Description of the configuration parameter", "confKey" : "answer", "value" : "42" } ], "name" : "config_name" }, "vdu" : [ { "id" : "56ea7355-9261-42e0-8193-53beec9d6514", "version" : 1, "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "name" : "iperf-server", "vm_image" : [ "ubuntu-14.04-server-cloudimg-amd64-disk1" ], "parent_vdu" : "28ea7355-9261-42e0-8193-53beec9d6514", "computation_requirement" : "computationRequirement", "virtual_memory_resource_element" : "virtualMemoryResourceElement", "virtual_network_bandwidth_resource" : "virtualNetworkBandwidthResource", "lifecycle_event" : [ ], "vdu_constraint" : "vduConstraint", "high_availability" : { "resiliencyLevel" : "ACTIVE_STANDBY_STATEFUL", "geoRedundancy" : true, "redundancyScheme" : "scheme" }, "fault_management_policy" : [ ], "scale_in_out" : 2, "vnfc" : [ { "id" : "5e4cc574-4e70-415a-b209-481ad882383e", "version" : 0, "connection_point" : [ { "id" : "5f8cc194-4e70-415a-b569-481cb882383e", "version" : 0, "type" : "type", "virtual_link_reference" : "private", "floatingIp" : "random", "interfaceId" : 0 } ] } ], "vnfc_instance" : [ ], "monitoring_parameter" : [ ], "hostname" : "iperfserver-435", "vimInstanceName" : [ "vim-instance" ] } ], "virtual_link" : [ {
58
"id" : "b6be79b6-9f7c-494a-8543-7dec75bcfb22", "hb_version" : 0, "extId" : "a3ae6958-34dc-305b-6903-3afc54bcad32", "root_requirement" : "4", "leaf_requirement" : "8", "qos" : [ ], "test_access" : [ ], "connectivity_type" : "connectivityType", "name" : "private", "connection_points_references" : [ ] } ], "vdu_dependency" : [ ], "deployment_flavour" : [ ], "manifest_file" : "manifestFile", "manifest_file_security" : [ { "id" : "965c21da-3c04-43f3-b54f-eadb34f7dda2", "version" : 1 } ], "type" : "server", "endpoint" : "generic", "vnfPackageLocation" : "a32340e7-45c1-4768-ab09-5826ec3e6594", "requires" : { "server" : { "id" : "a32340e7-45c1-4768-ab09-5826ec3e6594", "version" : 0, "parameters" : [ "private_floatingIp", "network" ] } }, "provides" : [ ]}
4.11. Updating a Virtual Network Function Descriptor ofa NSDPUT request with updated VNFD as JSON content in request bodythe first id in the url belongs to the nsd containing the VNFDthe second id in the url belongs to the VNFD that shall be updated{host}/api/v1/ns-descriptors/{nsdId}/vnfdescriptors/{vnfdId}
4.11.1. Request structure
59
Path Type Description
configurations Object Configuration object to provideparameters to the NetworkService
deployment_flavour Array The deployment flavour of thisVNFD
cyclicDependency Boolean _
endpoint String The type of the Vnfm in chargeof managing this VNF
hb_version Number _
lifecycle_event Array The lifecycle events that shouldbe executed on the VNFtriggered by the vnfm
name String The name of the VNFD
type String The type of the VNFD
vdu Array An aray ofVirtualDeploymentUnits
vendor String The vendor of the VNFD
version String The version of the VNFD
virtual_link Array Array of VirtualLinks, thatrepresent the type of networkconnectivity mandated by theVNF vendor between two ormore ConnectionPoints
4.11.2. Example request
$ curl 'http://localhost:8080/api/v1/ns-descriptors/55555c52-f952-430c-b093-45acb2bbf50e/vnfdescriptors/faaa910d-457d-4148-b4ea-7373b515febc' -i -X PUT -H 'project-id: 8a387f1e-9a42-43c7-bab0-3915719c6fca' -H 'Authorization: Bearer e92dfd35-4a7e-4d33-9592-5f1ac595095e' -H 'Content-Type: application/json' -d '{ "lifecycle_event" : [ { "version" : 0, "event" : "START", "lifecycle_events" : [ "start-server.sh" ] }, { "version" : 0, "event" : "INSTANTIATE", "lifecycle_events" : [ "install.sh" ] } ],
60
"configurations" : { "version" : 0, "configurationParameters" : [ { "version" : 0, "description" : "Description of the configuration parameter", "confKey" : "answer", "value" : "42" } ], "name" : "config_name" }, "vdu" : [ { "version" : 0, "name" : "serverVdu1", "vm_image" : [ "name of an image" ], "scale_in_out" : 1, "vnfc" : [ { "version" : 0, "connection_point" : [ { "virtual_link_reference" : "networkA", "interfaceId" : 0, "version" : 0 } ] } ], "vimInstanceName" : [ "vim-instance" ] } ], "virtual_link" : [ { "hb_version" : 0, "name" : "networkA" } ], "deployment_flavour" : [ { "version" : 0, "flavour_key" : "m1.small", "ram" : 2048, "disk" : 5, "vcpus" : 2 } ], "type" : "server", "endpoint" : "generic", "cyclicDependency" : false, "hb_version" : 0, "name" : "iperf-server", "vendor" : "FOKUS", "version" : "1"}'
61
4.11.3. Example response
HTTP/1.1 202 AcceptedContent-Type: application/jsonContent-Length: 3258
{ "id" : "40f3f488-ade0-4re4-976d-9e34253603aa", "hb_version" : 1, "name" : "iperfserver", "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "vendor" : "fokus", "version" : "0.1", "vnffgd" : [ ], "vld" : [ ], "monitoring_parameter" : [ ], "service_deployment_flavour" : [ ], "auto_scale_policy" : [ ], "connection_point" : [ ], "lifecycle_event" : [ { "id" : "556fbc91-6a32-419b-afa4-e7e93acf9977", "version" : 0, "event" : "START", "lifecycle_events" : [ "start-server.sh" ] }, { "id" : "5034fc1a-83ad-23f9-7403-533fed9812ad", "version" : 0, "event" : "INSTANTIATE", "lifecycle_events" : [ "install.sh" ] } ], "configurations" : { "id" : "760583a0-ff99-4754-b1c7-2a7b1cc5d7b3", "version" : 1, "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "configurationParameters" : [ { "id" : "5969df32-3199-47d6-83cd-0b4da537dd0f", "version" : 0, "description" : "Description of the configuration parameter", "confKey" : "answer", "value" : "42" } ], "name" : "config_name" }, "vdu" : [ { "id" : "56ea7355-9261-42e0-8193-53beec9d6514", "version" : 1, "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca",
62
"name" : "iperf-server", "vm_image" : [ "ubuntu-14.04-server-cloudimg-amd64-disk1" ], "parent_vdu" : "28ea7355-9261-42e0-8193-53beec9d6514", "computation_requirement" : "computationRequirement", "virtual_memory_resource_element" : "virtualMemoryResourceElement", "virtual_network_bandwidth_resource" : "virtualNetworkBandwidthResource", "lifecycle_event" : [ ], "vdu_constraint" : "vduConstraint", "high_availability" : { "resiliencyLevel" : "ACTIVE_STANDBY_STATEFUL", "geoRedundancy" : true, "redundancyScheme" : "scheme" }, "fault_management_policy" : [ ], "scale_in_out" : 2, "vnfc" : [ { "id" : "5e4cc574-4e70-415a-b209-481ad882383e", "version" : 0, "connection_point" : [ { "id" : "5f8cc194-4e70-415a-b569-481cb882383e", "version" : 0, "type" : "type", "virtual_link_reference" : "private", "floatingIp" : "random", "interfaceId" : 0 } ] } ], "vnfc_instance" : [ ], "monitoring_parameter" : [ ], "hostname" : "iperfserver-435", "vimInstanceName" : [ "vim-instance" ] } ], "virtual_link" : [ { "id" : "b6be79b6-9f7c-494a-8543-7dec75bcfb22", "hb_version" : 0, "extId" : "a3ae6958-34dc-305b-6903-3afc54bcad32", "root_requirement" : "4", "leaf_requirement" : "8", "qos" : [ ], "test_access" : [ ], "connectivity_type" : "connectivityType", "name" : "private", "connection_points_references" : [ ] } ], "vdu_dependency" : [ ], "deployment_flavour" : [ ], "manifest_file" : "manifestFile", "manifest_file_security" : [ {
63
"id" : "965c21da-3c04-43f3-b54f-eadb34f7dda2", "version" : 1 } ], "type" : "server", "endpoint" : "generic", "vnfPackageLocation" : "a32340e7-45c1-4768-ab09-5826ec3e6594", "requires" : { "server" : { "id" : "a32340e7-45c1-4768-ab09-5826ec3e6594", "version" : 0, "parameters" : [ "private_floatingIp", "network" ] } }, "provides" : [ ]}
4.12. Removing a Virtual Network Function Descriptorfrom a NSDDELETE requestthe first id in the url belongs to the NSD that contains the VNFDthe secind id belongs to the VNFD to be deleted{host}/api/v1/ns-descriptors/{nsdId}/vnfdescriptors/{vnfdId}
4.12.1. Example request
$ curl 'http://localhost:8080/api/v1/ns-descriptors/55555c52-f952-430c-b093-45acb2bbf50e/vnfdescriptors/faaa910d-457d-4148-b4ea-7373b515febc' -i -X DELETE -H'project-id: 8a387f1e-9a42-43c7-bab0-3915719c6fca' -H 'Authorization: Bearer e92dfd35-4a7e-4d33-9592-5f1ac595095e'
4.12.2. Example response
HTTP/1.1 204 No Content
64
Chapter 5. Network Service Record
5.1. OverviewA Network Service Record is deployed from a NSD.
5.2. Deploying a Network Service Record from anexisting NSDPOST requestthe id in the url belongs to the NSD from which the NSR should be created{host}/api/v1/ns-records/{nsdId}
5.2.1. Example request
$ curl 'http://localhost:8080/api/v1/ns-records/c60ec37a-654a-4605-93fb-5a1932db6ecf' -i-X POST -H 'project-id: 8a387f1e-9a42-43c7-bab0-3915719c6fca' -H 'Authorization: Bearere92dfd35-4a7e-4d33-9592-5f1ac595095e' -H 'Content-Type: application/json' -d '{ "keys" : [ "keypair1", "keypair2", "keypair3" ], "configurations" : { "iperfserver" : { "version" : 0, "configurationParameters" : [ { "version" : 0, "description" : "Description of the configuration parameter", "confKey" : "answer", "value" : "42" } ], "name" : "config_name" } }, "vduVimInstances" : { "clientVdu1" : [ "vim-instance" ], "serverVdu1" : [ "vim-instance" ] }}'
5.2.2. Example response
HTTP/1.1 201 CreatedContent-Type: application/jsonContent-Length: 6352
65
{ "id" : "66046d77-aade-4f14-ad39-f2976532e5f2", "auto_scale_policy" : [ ], "connection_point" : [ ], "monitoring_parameter" : [ ], "service_deployment_flavour" : { "id" : "5927dc9a-93cd-28de-2947-d382d8fc3840", "version" : 0, "flavour_key" : "flavourKey", "extId" : "1", "ram" : 512, "disk" : 1, "vcpus" : 1, "constituent_vnf" : [ { "id" : "492da364-25d7-7654-da74-128d8caf4721", "vnf_reference" : "485139cd-74dc-af3d-7593-12d78c51af12", "vnf_flavour_id_reference" : "5927dc9a-93cd-28de-2947-d382d8fc3840", "redundancy_model" : "ACTIVE", "affinity" : "affinity", "capability" : "capability", "number_of_instances" : 2 } ] }, "vendor" : "FOKUS", "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "task" : "Onboarding", "version" : "1.0", "vlr" : [ ], "vnfr" : [ { "id" : "293e6a52-c6df-40c0-8f8a-58911bb9319b", "hb_version" : 4, "auto_scale_policy" : [ ], "connection_point" : [ ], "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "deployment_flavour_key" : "m1.small", "configurations" : { "id" : "760583a0-ff99-4754-b1c7-2a7b1cc5d7b3", "version" : 1, "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "configurationParameters" : [ { "id" : "5969df32-3199-47d6-83cd-0b4da537dd0f", "version" : 0, "description" : "Description of the configuration parameter", "confKey" : "answer", "value" : "42" } ], "name" : "config_name"
66
}, "lifecycle_event" : [ { "id" : "556fbc91-6a32-419b-afa4-e7e93acf9977", "version" : 0, "event" : "START", "lifecycle_events" : [ "start-server.sh" ] }, { "id" : "5034fc1a-83ad-23f9-7403-533fed9812ad", "version" : 0, "event" : "INSTANTIATE", "lifecycle_events" : [ "install.sh" ] } ], "lifecycle_event_history" : [ { "id" : "07c1ac29-0e2e-4d9f-b8a2-2cc1f3684328", "event" : "GRANTED", "description" : "All the resources that are contained in this VNFR were granted tobe deployed in the chosen vim(s)", "executedAt" : "2016.11.08-22:29:59:417-CET" } ], "localization" : "berlin", "monitoring_parameter" : [ ], "vdu" : [ { "id" : "56ea7355-9261-42e0-8193-53beec9d6514", "version" : 1, "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "name" : "iperf-server", "vm_image" : [ "ubuntu-14.04-server-cloudimg-amd64-disk1" ], "parent_vdu" : "28ea7355-9261-42e0-8193-53beec9d6514", "computation_requirement" : "computationRequirement", "virtual_memory_resource_element" : "virtualMemoryResourceElement", "virtual_network_bandwidth_resource" : "virtualNetworkBandwidthResource", "lifecycle_event" : [ ], "vdu_constraint" : "vduConstraint", "high_availability" : { "resiliencyLevel" : "ACTIVE_STANDBY_STATEFUL", "geoRedundancy" : true, "redundancyScheme" : "scheme" }, "fault_management_policy" : [ ], "scale_in_out" : 2, "vnfc" : [ { "id" : "5e4cc574-4e70-415a-b209-481ad882383e", "version" : 0, "connection_point" : [ { "id" : "5f8cc194-4e70-415a-b569-481cb882383e", "version" : 0, "type" : "type", "virtual_link_reference" : "private",
67
"floatingIp" : "random", "interfaceId" : 0 } ] } ], "vnfc_instance" : [ ], "monitoring_parameter" : [ ], "hostname" : "iperfserver-435", "vimInstanceName" : [ "vim-instance" ] } ], "vendor" : "FOKUS", "version" : "0.1", "virtual_link" : [ { "id" : "b6be79b6-9f7c-494a-8543-7dec75bcfb22", "hb_version" : 0, "extId" : "a3ae6958-34dc-305b-6903-3afc54bcad32", "root_requirement" : "4", "leaf_requirement" : "8", "qos" : [ ], "test_access" : [ ], "connectivity_type" : "connectivityType", "name" : "private", "connection_points_references" : [ ] } ], "parent_ns_id" : "f9ba54f2-a825-47b0-9c3e-e00275faf169", "descriptor_reference" : "0a60d551-5498-40cc-a0ef-279a10e72228", "vnfm_id" : "46046d37-aade-4f14-ad39-f2976532e4d8", "connected_external_virtual_link" : [ ], "vnf_address" : [ "10.253.4.7" ], "status" : "ACTIVE", "notification" : [ ], "audit_log" : "auditLog", "runtime_policy_info" : [ ], "name" : "iperfserver", "type" : "server", "endpoint" : "generic", "task" : "start", "requires" : { "id" : "fe0c2cb2-e251-415a-b894-d04ddf8970dc", "version" : 0, "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "configurationParameters" : [ ], "name" : "requires" }, "provides" : { "id" : "5b36d727-0a95-4be0-958e-7c94857d5c70", "version" : 0, "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "configurationParameters" : [ ],
68
"name" : "provides" }, "packageId" : "fcaa8993-b9d0-46c7-a258-85dd847c901f" } ], "vnf_dependency" : [ { "id" : "46046d37-aade-4f14-ad39-f2976532e4d8", "version" : 1, "target" : "iperfclient", "parameters" : { "server" : { "id" : "76046e27-aade-4f14-ad39-f2976532e5f2", "version" : 6, "parameters" : { "private" : "10.231.5.1" } } }, "vnfcParameters" : { "server" : { "vnfcId" : "66046d77-aade-4f14-ad39-f2976532e5f2", "id" : "01456d77-aade-4f14-ad39-f2976532e5e2", "version" : 4, "parameters" : { "51e0f1a0-46f1-4fd2-8737-4dd51d4b57ed" : { "id" : "77e44026-b609-41fb-8d24-7acf652c6488", "version" : 6, "parameters" : { } } } } }, "idType" : { "iperfserver" : "server" } } ], "lifecycle_event" : [ ], "vnffgr" : [ ], "pnfr" : [ ], "faultManagementPolicy" : [ ], "descriptor_reference" : "c60ec37a-654a-4605-93fb-5a1932db6ecf", "resource_reservation" : "resourceReservation", "runtime_policy_info" : "runtimePolicyInfo", "status" : "ACTIVE", "notification" : "notification", "lifecycle_event_history" : [ ], "audit_log" : "auditLog", "createdAt" : "2016.08.15 at 14:22:26 CEST", "keyNames" : [ "keyPair1", "keyPair2" ],
69
"name" : "An example NSR"}
5.3. Retrieving all Network Service RecordsGET request{host}/api/v1/ns-records/
5.3.1. Response structure
Path Type Description
[] Object The array of NSRs
5.3.2. Example request
$ curl 'http://localhost:8080/api/v1/ns-records/' -i -H 'project-id: 8a387f1e-9a42-43c7-bab0-3915719c6fca' -H 'Authorization: Bearer e92dfd35-4a7e-4d33-9592-5f1ac595095e'
5.3.3. Example response
HTTP/1.1 200 OKContent-Type: application/json;charset=UTF-8Content-Length: 6356
[ { "id" : "66046d77-aade-4f14-ad39-f2976532e5f2", "auto_scale_policy" : [ ], "connection_point" : [ ], "monitoring_parameter" : [ ], "service_deployment_flavour" : { "id" : "5927dc9a-93cd-28de-2947-d382d8fc3840", "version" : 0, "flavour_key" : "flavourKey", "extId" : "1", "ram" : 512, "disk" : 1, "vcpus" : 1, "constituent_vnf" : [ { "id" : "492da364-25d7-7654-da74-128d8caf4721", "vnf_reference" : "485139cd-74dc-af3d-7593-12d78c51af12", "vnf_flavour_id_reference" : "5927dc9a-93cd-28de-2947-d382d8fc3840", "redundancy_model" : "ACTIVE", "affinity" : "affinity",
70
"capability" : "capability", "number_of_instances" : 2 } ] }, "vendor" : "FOKUS", "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "task" : "Onboarding", "version" : "1.0", "vlr" : [ ], "vnfr" : [ { "id" : "293e6a52-c6df-40c0-8f8a-58911bb9319b", "hb_version" : 4, "auto_scale_policy" : [ ], "connection_point" : [ ], "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "deployment_flavour_key" : "m1.small", "configurations" : { "id" : "760583a0-ff99-4754-b1c7-2a7b1cc5d7b3", "version" : 1, "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "configurationParameters" : [ { "id" : "5969df32-3199-47d6-83cd-0b4da537dd0f", "version" : 0, "description" : "Description of the configuration parameter", "confKey" : "answer", "value" : "42" } ], "name" : "config_name" }, "lifecycle_event" : [ { "id" : "556fbc91-6a32-419b-afa4-e7e93acf9977", "version" : 0, "event" : "START", "lifecycle_events" : [ "start-server.sh" ] }, { "id" : "5034fc1a-83ad-23f9-7403-533fed9812ad", "version" : 0, "event" : "INSTANTIATE", "lifecycle_events" : [ "install.sh" ] } ], "lifecycle_event_history" : [ { "id" : "07c1ac29-0e2e-4d9f-b8a2-2cc1f3684328", "event" : "GRANTED", "description" : "All the resources that are contained in this VNFR were granted tobe deployed in the chosen vim(s)", "executedAt" : "2016.11.08-22:29:59:417-CET" } ], "localization" : "berlin",
71
"monitoring_parameter" : [ ], "vdu" : [ { "id" : "56ea7355-9261-42e0-8193-53beec9d6514", "version" : 1, "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "name" : "iperf-server", "vm_image" : [ "ubuntu-14.04-server-cloudimg-amd64-disk1" ], "parent_vdu" : "28ea7355-9261-42e0-8193-53beec9d6514", "computation_requirement" : "computationRequirement", "virtual_memory_resource_element" : "virtualMemoryResourceElement", "virtual_network_bandwidth_resource" : "virtualNetworkBandwidthResource", "lifecycle_event" : [ ], "vdu_constraint" : "vduConstraint", "high_availability" : { "resiliencyLevel" : "ACTIVE_STANDBY_STATEFUL", "geoRedundancy" : true, "redundancyScheme" : "scheme" }, "fault_management_policy" : [ ], "scale_in_out" : 2, "vnfc" : [ { "id" : "5e4cc574-4e70-415a-b209-481ad882383e", "version" : 0, "connection_point" : [ { "id" : "5f8cc194-4e70-415a-b569-481cb882383e", "version" : 0, "type" : "type", "virtual_link_reference" : "private", "floatingIp" : "random", "interfaceId" : 0 } ] } ], "vnfc_instance" : [ ], "monitoring_parameter" : [ ], "hostname" : "iperfserver-435", "vimInstanceName" : [ "vim-instance" ] } ], "vendor" : "FOKUS", "version" : "0.1", "virtual_link" : [ { "id" : "b6be79b6-9f7c-494a-8543-7dec75bcfb22", "hb_version" : 0, "extId" : "a3ae6958-34dc-305b-6903-3afc54bcad32", "root_requirement" : "4", "leaf_requirement" : "8", "qos" : [ ], "test_access" : [ ], "connectivity_type" : "connectivityType",
72
"name" : "private", "connection_points_references" : [ ] } ], "parent_ns_id" : "f9ba54f2-a825-47b0-9c3e-e00275faf169", "descriptor_reference" : "0a60d551-5498-40cc-a0ef-279a10e72228", "vnfm_id" : "46046d37-aade-4f14-ad39-f2976532e4d8", "connected_external_virtual_link" : [ ], "vnf_address" : [ "10.253.4.7" ], "status" : "ACTIVE", "notification" : [ ], "audit_log" : "auditLog", "runtime_policy_info" : [ ], "name" : "iperfserver", "type" : "server", "endpoint" : "generic", "task" : "start", "requires" : { "id" : "fe0c2cb2-e251-415a-b894-d04ddf8970dc", "version" : 0, "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "configurationParameters" : [ ], "name" : "requires" }, "provides" : { "id" : "5b36d727-0a95-4be0-958e-7c94857d5c70", "version" : 0, "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "configurationParameters" : [ ], "name" : "provides" }, "packageId" : "fcaa8993-b9d0-46c7-a258-85dd847c901f" } ], "vnf_dependency" : [ { "id" : "46046d37-aade-4f14-ad39-f2976532e4d8", "version" : 1, "target" : "iperfclient", "parameters" : { "server" : { "id" : "76046e27-aade-4f14-ad39-f2976532e5f2", "version" : 6, "parameters" : { "private" : "10.231.5.1" } } }, "vnfcParameters" : { "server" : { "vnfcId" : "66046d77-aade-4f14-ad39-f2976532e5f2",
73
"id" : "01456d77-aade-4f14-ad39-f2976532e5e2", "version" : 4, "parameters" : { "51e0f1a0-46f1-4fd2-8737-4dd51d4b57ed" : { "id" : "77e44026-b609-41fb-8d24-7acf652c6488", "version" : 6, "parameters" : { } } } } }, "idType" : { "iperfserver" : "server" } } ], "lifecycle_event" : [ ], "vnffgr" : [ ], "pnfr" : [ ], "faultManagementPolicy" : [ ], "descriptor_reference" : "c60ec37a-654a-4605-93fb-5a1932db6ecf", "resource_reservation" : "resourceReservation", "runtime_policy_info" : "runtimePolicyInfo", "status" : "ACTIVE", "notification" : "notification", "lifecycle_event_history" : [ ], "audit_log" : "auditLog", "createdAt" : "2016.08.15 at 14:22:26 CEST", "keyNames" : [ "keyPair1", "keyPair2" ], "name" : "An example NSR"} ]
5.4. Retrieving a Network Service RecordGET requestthe id in the url belongs to the NSR that should be retrieved{host}/api/v1/ns-records/{nsrId}
5.4.1. Response structure
Path Type Description
audit_log String _
auto_scale_policy Array _
connection_point Array _
74
Path Type Description
createdAt String The date when the NSR wascreated
descriptor_reference String The reference to the NetworkService Descriptor used toinstantiate this Network Service.
faultManagementPolicy String Used for fault management
id String The id of the NSR
keyNames Array TODO
lifecycle_event Array _
lifecycle_event_history Object _
monitoring_parameter Array Used for fault management
name String The name of the NSR
notification String _
pnfr Array _
projectId String The id of the project to whichthis NSR belongs
resource_reservation String _
runtime_policy_info String _
service_deployment_flavour Object _
status Object The status of the NSR
task String The task currently executed bythe NSR
vendor String The vendor of the NSR
version String The version of the NSR
vlr Array Array of VirtualLinkRecords thatrecord resources used toimplement a virtual link
vnf_dependency Array Array ofVNFRecordDependencies
vnffgr Array _
vnfr Array An array ofVirtualNetworkFunctionRecords
75
5.4.2. Example request
$ curl 'http://localhost:8080/api/v1/ns-records/66046d77-aade-4f14-ad39-f2976532e5f2' -i-H 'project-id: 8a387f1e-9a42-43c7-bab0-3915719c6fca' -H 'Authorization: Bearer e92dfd35-4a7e-4d33-9592-5f1ac595095e'
5.4.3. Example response
HTTP/1.1 200 OKContent-Type: application/json;charset=UTF-8Content-Length: 6352
{ "id" : "66046d77-aade-4f14-ad39-f2976532e5f2", "auto_scale_policy" : [ ], "connection_point" : [ ], "monitoring_parameter" : [ ], "service_deployment_flavour" : { "id" : "5927dc9a-93cd-28de-2947-d382d8fc3840", "version" : 0, "flavour_key" : "flavourKey", "extId" : "1", "ram" : 512, "disk" : 1, "vcpus" : 1, "constituent_vnf" : [ { "id" : "492da364-25d7-7654-da74-128d8caf4721", "vnf_reference" : "485139cd-74dc-af3d-7593-12d78c51af12", "vnf_flavour_id_reference" : "5927dc9a-93cd-28de-2947-d382d8fc3840", "redundancy_model" : "ACTIVE", "affinity" : "affinity", "capability" : "capability", "number_of_instances" : 2 } ] }, "vendor" : "FOKUS", "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "task" : "Onboarding", "version" : "1.0", "vlr" : [ ], "vnfr" : [ { "id" : "293e6a52-c6df-40c0-8f8a-58911bb9319b", "hb_version" : 4, "auto_scale_policy" : [ ], "connection_point" : [ ],
76
"projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "deployment_flavour_key" : "m1.small", "configurations" : { "id" : "760583a0-ff99-4754-b1c7-2a7b1cc5d7b3", "version" : 1, "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "configurationParameters" : [ { "id" : "5969df32-3199-47d6-83cd-0b4da537dd0f", "version" : 0, "description" : "Description of the configuration parameter", "confKey" : "answer", "value" : "42" } ], "name" : "config_name" }, "lifecycle_event" : [ { "id" : "556fbc91-6a32-419b-afa4-e7e93acf9977", "version" : 0, "event" : "START", "lifecycle_events" : [ "start-server.sh" ] }, { "id" : "5034fc1a-83ad-23f9-7403-533fed9812ad", "version" : 0, "event" : "INSTANTIATE", "lifecycle_events" : [ "install.sh" ] } ], "lifecycle_event_history" : [ { "id" : "07c1ac29-0e2e-4d9f-b8a2-2cc1f3684328", "event" : "GRANTED", "description" : "All the resources that are contained in this VNFR were granted tobe deployed in the chosen vim(s)", "executedAt" : "2016.11.08-22:29:59:417-CET" } ], "localization" : "berlin", "monitoring_parameter" : [ ], "vdu" : [ { "id" : "56ea7355-9261-42e0-8193-53beec9d6514", "version" : 1, "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "name" : "iperf-server", "vm_image" : [ "ubuntu-14.04-server-cloudimg-amd64-disk1" ], "parent_vdu" : "28ea7355-9261-42e0-8193-53beec9d6514", "computation_requirement" : "computationRequirement", "virtual_memory_resource_element" : "virtualMemoryResourceElement", "virtual_network_bandwidth_resource" : "virtualNetworkBandwidthResource", "lifecycle_event" : [ ], "vdu_constraint" : "vduConstraint", "high_availability" : {
77
"resiliencyLevel" : "ACTIVE_STANDBY_STATEFUL", "geoRedundancy" : true, "redundancyScheme" : "scheme" }, "fault_management_policy" : [ ], "scale_in_out" : 2, "vnfc" : [ { "id" : "5e4cc574-4e70-415a-b209-481ad882383e", "version" : 0, "connection_point" : [ { "id" : "5f8cc194-4e70-415a-b569-481cb882383e", "version" : 0, "type" : "type", "virtual_link_reference" : "private", "floatingIp" : "random", "interfaceId" : 0 } ] } ], "vnfc_instance" : [ ], "monitoring_parameter" : [ ], "hostname" : "iperfserver-435", "vimInstanceName" : [ "vim-instance" ] } ], "vendor" : "FOKUS", "version" : "0.1", "virtual_link" : [ { "id" : "b6be79b6-9f7c-494a-8543-7dec75bcfb22", "hb_version" : 0, "extId" : "a3ae6958-34dc-305b-6903-3afc54bcad32", "root_requirement" : "4", "leaf_requirement" : "8", "qos" : [ ], "test_access" : [ ], "connectivity_type" : "connectivityType", "name" : "private", "connection_points_references" : [ ] } ], "parent_ns_id" : "f9ba54f2-a825-47b0-9c3e-e00275faf169", "descriptor_reference" : "0a60d551-5498-40cc-a0ef-279a10e72228", "vnfm_id" : "46046d37-aade-4f14-ad39-f2976532e4d8", "connected_external_virtual_link" : [ ], "vnf_address" : [ "10.253.4.7" ], "status" : "ACTIVE", "notification" : [ ], "audit_log" : "auditLog", "runtime_policy_info" : [ ], "name" : "iperfserver", "type" : "server",
78
"endpoint" : "generic", "task" : "start", "requires" : { "id" : "fe0c2cb2-e251-415a-b894-d04ddf8970dc", "version" : 0, "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "configurationParameters" : [ ], "name" : "requires" }, "provides" : { "id" : "5b36d727-0a95-4be0-958e-7c94857d5c70", "version" : 0, "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "configurationParameters" : [ ], "name" : "provides" }, "packageId" : "fcaa8993-b9d0-46c7-a258-85dd847c901f" } ], "vnf_dependency" : [ { "id" : "46046d37-aade-4f14-ad39-f2976532e4d8", "version" : 1, "target" : "iperfclient", "parameters" : { "server" : { "id" : "76046e27-aade-4f14-ad39-f2976532e5f2", "version" : 6, "parameters" : { "private" : "10.231.5.1" } } }, "vnfcParameters" : { "server" : { "vnfcId" : "66046d77-aade-4f14-ad39-f2976532e5f2", "id" : "01456d77-aade-4f14-ad39-f2976532e5e2", "version" : 4, "parameters" : { "51e0f1a0-46f1-4fd2-8737-4dd51d4b57ed" : { "id" : "77e44026-b609-41fb-8d24-7acf652c6488", "version" : 6, "parameters" : { } } } } }, "idType" : { "iperfserver" : "server" }
79
} ], "lifecycle_event" : [ ], "vnffgr" : [ ], "pnfr" : [ ], "faultManagementPolicy" : [ ], "descriptor_reference" : "c60ec37a-654a-4605-93fb-5a1932db6ecf", "resource_reservation" : "resourceReservation", "runtime_policy_info" : "runtimePolicyInfo", "status" : "ACTIVE", "notification" : "notification", "lifecycle_event_history" : [ ], "audit_log" : "auditLog", "createdAt" : "2016.08.15 at 14:22:26 CEST", "keyNames" : [ "keyPair1", "keyPair2" ], "name" : "An example NSR"}
5.5. Updating a Network Service RecordPUT request with the updated NSR as JSON content in the request bodythe id in the url belongs to the NSR that shall be updated{host}/api/v1/ns-records/{nsrId}
5.5.1. Request structure
Path Type Description
descriptor_reference String The reference to the NetworkService Descriptor used toinstantiate this Network Service.
name String The name of the NSR
status String The status of the NSR
vendor String The vendor of the NSR
version String The version of the NSR
vlr Array A record of the resources used toimplement a virtual networklink
vnf_dependency Array An array ofVNFRecordDependencies
vnfr Array An array ofVirtualNetworkFunctionRecords
80
5.5.2. Example request
$ curl 'http://localhost:8080/api/v1/ns-records/66046d77-aade-4f14-ad39-f2976532e5f2' -i-X PUT -H 'project-id: 8a387f1e-9a42-43c7-bab0-3915719c6fca' -H 'Authorization: Bearere92dfd35-4a7e-4d33-9592-5f1ac595095e' -H 'Content-Type: application/json' -d '{ "vendor" : "FOKUS", "version" : "1.0", "vlr" : [ ], "vnfr" : [ ], "vnf_dependency" : [ ], "descriptor_reference" : "c60ec37a-654a-4605-93fb-5a1932db6ecf", "status" : "ACTIVE", "name" : "An example NSR"}'
5.5.3. Example response
HTTP/1.1 202 AcceptedContent-Type: application/jsonContent-Length: 6352
{ "id" : "66046d77-aade-4f14-ad39-f2976532e5f2", "auto_scale_policy" : [ ], "connection_point" : [ ], "monitoring_parameter" : [ ], "service_deployment_flavour" : { "id" : "5927dc9a-93cd-28de-2947-d382d8fc3840", "version" : 0, "flavour_key" : "flavourKey", "extId" : "1", "ram" : 512, "disk" : 1, "vcpus" : 1, "constituent_vnf" : [ { "id" : "492da364-25d7-7654-da74-128d8caf4721", "vnf_reference" : "485139cd-74dc-af3d-7593-12d78c51af12", "vnf_flavour_id_reference" : "5927dc9a-93cd-28de-2947-d382d8fc3840", "redundancy_model" : "ACTIVE", "affinity" : "affinity", "capability" : "capability", "number_of_instances" : 2 } ] }, "vendor" : "FOKUS",
81
"projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "task" : "Onboarding", "version" : "1.0", "vlr" : [ ], "vnfr" : [ { "id" : "293e6a52-c6df-40c0-8f8a-58911bb9319b", "hb_version" : 4, "auto_scale_policy" : [ ], "connection_point" : [ ], "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "deployment_flavour_key" : "m1.small", "configurations" : { "id" : "760583a0-ff99-4754-b1c7-2a7b1cc5d7b3", "version" : 1, "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "configurationParameters" : [ { "id" : "5969df32-3199-47d6-83cd-0b4da537dd0f", "version" : 0, "description" : "Description of the configuration parameter", "confKey" : "answer", "value" : "42" } ], "name" : "config_name" }, "lifecycle_event" : [ { "id" : "5034fc1a-83ad-23f9-7403-533fed9812ad", "version" : 0, "event" : "INSTANTIATE", "lifecycle_events" : [ "install.sh" ] }, { "id" : "556fbc91-6a32-419b-afa4-e7e93acf9977", "version" : 0, "event" : "START", "lifecycle_events" : [ "start-server.sh" ] } ], "lifecycle_event_history" : [ { "id" : "07c1ac29-0e2e-4d9f-b8a2-2cc1f3684328", "event" : "GRANTED", "description" : "All the resources that are contained in this VNFR were granted tobe deployed in the chosen vim(s)", "executedAt" : "2016.11.08-22:29:59:417-CET" } ], "localization" : "berlin", "monitoring_parameter" : [ ], "vdu" : [ { "id" : "56ea7355-9261-42e0-8193-53beec9d6514", "version" : 1, "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca",
82
"name" : "iperf-server", "vm_image" : [ "ubuntu-14.04-server-cloudimg-amd64-disk1" ], "parent_vdu" : "28ea7355-9261-42e0-8193-53beec9d6514", "computation_requirement" : "computationRequirement", "virtual_memory_resource_element" : "virtualMemoryResourceElement", "virtual_network_bandwidth_resource" : "virtualNetworkBandwidthResource", "lifecycle_event" : [ ], "vdu_constraint" : "vduConstraint", "high_availability" : { "resiliencyLevel" : "ACTIVE_STANDBY_STATEFUL", "geoRedundancy" : true, "redundancyScheme" : "scheme" }, "fault_management_policy" : [ ], "scale_in_out" : 2, "vnfc" : [ { "id" : "5e4cc574-4e70-415a-b209-481ad882383e", "version" : 0, "connection_point" : [ { "id" : "5f8cc194-4e70-415a-b569-481cb882383e", "version" : 0, "type" : "type", "virtual_link_reference" : "private", "floatingIp" : "random", "interfaceId" : 0 } ] } ], "vnfc_instance" : [ ], "monitoring_parameter" : [ ], "hostname" : "iperfserver-435", "vimInstanceName" : [ "vim-instance" ] } ], "vendor" : "FOKUS", "version" : "0.1", "virtual_link" : [ { "id" : "b6be79b6-9f7c-494a-8543-7dec75bcfb22", "hb_version" : 0, "extId" : "a3ae6958-34dc-305b-6903-3afc54bcad32", "root_requirement" : "4", "leaf_requirement" : "8", "qos" : [ ], "test_access" : [ ], "connectivity_type" : "connectivityType", "name" : "private", "connection_points_references" : [ ] } ], "parent_ns_id" : "f9ba54f2-a825-47b0-9c3e-e00275faf169", "descriptor_reference" : "0a60d551-5498-40cc-a0ef-279a10e72228",
83
"vnfm_id" : "46046d37-aade-4f14-ad39-f2976532e4d8", "connected_external_virtual_link" : [ ], "vnf_address" : [ "10.253.4.7" ], "status" : "ACTIVE", "notification" : [ ], "audit_log" : "auditLog", "runtime_policy_info" : [ ], "name" : "iperfserver", "type" : "server", "endpoint" : "generic", "task" : "start", "requires" : { "id" : "fe0c2cb2-e251-415a-b894-d04ddf8970dc", "version" : 0, "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "configurationParameters" : [ ], "name" : "requires" }, "provides" : { "id" : "5b36d727-0a95-4be0-958e-7c94857d5c70", "version" : 0, "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "configurationParameters" : [ ], "name" : "provides" }, "packageId" : "fcaa8993-b9d0-46c7-a258-85dd847c901f" } ], "vnf_dependency" : [ { "id" : "46046d37-aade-4f14-ad39-f2976532e4d8", "version" : 1, "target" : "iperfclient", "parameters" : { "server" : { "id" : "76046e27-aade-4f14-ad39-f2976532e5f2", "version" : 6, "parameters" : { "private" : "10.231.5.1" } } }, "vnfcParameters" : { "server" : { "vnfcId" : "66046d77-aade-4f14-ad39-f2976532e5f2", "id" : "01456d77-aade-4f14-ad39-f2976532e5e2", "version" : 4, "parameters" : { "51e0f1a0-46f1-4fd2-8737-4dd51d4b57ed" : { "id" : "77e44026-b609-41fb-8d24-7acf652c6488",
84
"version" : 6, "parameters" : { } } } } }, "idType" : { "iperfserver" : "server" } } ], "lifecycle_event" : [ ], "vnffgr" : [ ], "pnfr" : [ ], "faultManagementPolicy" : [ ], "descriptor_reference" : "c60ec37a-654a-4605-93fb-5a1932db6ecf", "resource_reservation" : "resourceReservation", "runtime_policy_info" : "runtimePolicyInfo", "status" : "ACTIVE", "notification" : "notification", "lifecycle_event_history" : [ ], "audit_log" : "auditLog", "createdAt" : "2016.08.15 at 14:22:26 CEST", "keyNames" : [ "keyPair1", "keyPair2" ], "name" : "An example NSR"}
5.6. Removing a Network Service RecordA NSR can just be removed, if its state is ACTIVE or ERROR.
DELETE requestthe id in the url belongs to the NSR that shall be deleted{host}/api/v1/ns-records/{nsrId}
5.6.1. Example request
$ curl 'http://localhost:8080/api/v1/ns-records/66046d77-aade-4f14-ad39-f2976532e5f2' -i-X DELETE -H 'project-id: 8a387f1e-9a42-43c7-bab0-3915719c6fca' -H 'Authorization: Bearere92dfd35-4a7e-4d33-9592-5f1ac595095e'
5.6.2. Example response
HTTP/1.1 204 No Content
85
5.7. Removing multiple Network Service RecordsDELETE requestthe ids in the request body specify the NSRs to delete{host}/api/v1/ns-records/multipledelete
5.7.1. Example request
$ curl 'http://localhost:8080/api/v1/ns-records/multipledelete' -i -X DELETE -H 'project-id: 8a387f1e-9a42-43c7-bab0-3915719c6fca' -H 'Authorization: Bearer e92dfd35-4a7e-4d33-9592-5f1ac595095e' -d '[ "55555c52-f952-430c-b093-45acb2bbf50e", "5c357f1e-9a42-c4a5-bab0-3916248c6fca" ]'
5.7.2. Example response
HTTP/1.1 204 No Content
5.8. Resume a failed Network Service RecordsPOST requestthe id in the url specifies the NSR{host}/api/v1/ns-records/{nsrId}
5.8.1. Example request
$ curl 'http://localhost:8080/api/v1/ns-records/66046d77-aade-4f14-ad39-f2976532e5f2' -i-X POST -H 'project-id: 8a387f1e-9a42-43c7-bab0-3915719c6fca' -H 'Authorization: Bearere92dfd35-4a7e-4d33-9592-5f1ac595095e'
5.8.2. Example response
HTTP/1.1 204 No Content
86
Chapter 6. Virtual Network Function Records
6.1. OverviewFollowing instantiation, a Virtualised Network Function Record will be created to index the virtualisedresources allocated to each VNF instance.
6.2. Retrieving all Virtual Network Function Recordsfrom a NSRGET requestthe id in the url belongs to the NSR from which the VNFRs shall be retrieved{host}/api/v1/ns-records/{nsrId}/vnfrecords
6.2.1. Response structure
Path Type Description
[] Object The array of NSRs
6.2.2. Example request
$ curl 'http://localhost:8080/api/v1/ns-records/5e074545-0a81-4de8-8494-eb67173ec565/vnfrecords/' -i -H 'project-id: 8a387f1e-9a42-43c7-bab0-3915719c6fca' -H'Authorization: Bearer e92dfd35-4a7e-4d33-9592-5f1ac595095e'
6.2.3. Example response
HTTP/1.1 200 OKContent-Type: application/jsonContent-Length: 3950
[ { "id" : "293e6a52-c6df-40c0-8f8a-58911bb9319b", "hb_version" : 4, "auto_scale_policy" : [ ], "connection_point" : [ ], "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "deployment_flavour_key" : "m1.small", "configurations" : { "id" : "760583a0-ff99-4754-b1c7-2a7b1cc5d7b3", "version" : 1,
87
"projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "configurationParameters" : [ { "id" : "5969df32-3199-47d6-83cd-0b4da537dd0f", "version" : 0, "description" : "Description of the configuration parameter", "confKey" : "answer", "value" : "42" } ], "name" : "config_name" }, "lifecycle_event" : [ { "id" : "5034fc1a-83ad-23f9-7403-533fed9812ad", "version" : 0, "event" : "INSTANTIATE", "lifecycle_events" : [ "install.sh" ] }, { "id" : "556fbc91-6a32-419b-afa4-e7e93acf9977", "version" : 0, "event" : "START", "lifecycle_events" : [ "start-server.sh" ] } ], "lifecycle_event_history" : [ { "id" : "07c1ac29-0e2e-4d9f-b8a2-2cc1f3684328", "event" : "GRANTED", "description" : "All the resources that are contained in this VNFR were granted to bedeployed in the chosen vim(s)", "executedAt" : "2016.11.08-22:29:59:417-CET" } ], "localization" : "berlin", "monitoring_parameter" : [ ], "vdu" : [ { "id" : "56ea7355-9261-42e0-8193-53beec9d6514", "version" : 1, "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "name" : "iperf-server", "vm_image" : [ "ubuntu-14.04-server-cloudimg-amd64-disk1" ], "parent_vdu" : "28ea7355-9261-42e0-8193-53beec9d6514", "computation_requirement" : "computationRequirement", "virtual_memory_resource_element" : "virtualMemoryResourceElement", "virtual_network_bandwidth_resource" : "virtualNetworkBandwidthResource", "lifecycle_event" : [ ], "vdu_constraint" : "vduConstraint", "high_availability" : { "resiliencyLevel" : "ACTIVE_STANDBY_STATEFUL", "geoRedundancy" : true, "redundancyScheme" : "scheme" }, "fault_management_policy" : [ ],
88
"scale_in_out" : 2, "vnfc" : [ { "id" : "5e4cc574-4e70-415a-b209-481ad882383e", "version" : 0, "connection_point" : [ { "id" : "5f8cc194-4e70-415a-b569-481cb882383e", "version" : 0, "type" : "type", "virtual_link_reference" : "private", "floatingIp" : "random", "interfaceId" : 0 } ] } ], "vnfc_instance" : [ ], "monitoring_parameter" : [ ], "hostname" : "iperfserver-435", "vimInstanceName" : [ "vim-instance" ] } ], "vendor" : "FOKUS", "version" : "0.1", "virtual_link" : [ { "id" : "b6be79b6-9f7c-494a-8543-7dec75bcfb22", "hb_version" : 0, "extId" : "a3ae6958-34dc-305b-6903-3afc54bcad32", "root_requirement" : "4", "leaf_requirement" : "8", "qos" : [ ], "test_access" : [ ], "connectivity_type" : "connectivityType", "name" : "private", "connection_points_references" : [ ] } ], "parent_ns_id" : "f9ba54f2-a825-47b0-9c3e-e00275faf169", "descriptor_reference" : "0a60d551-5498-40cc-a0ef-279a10e72228", "vnfm_id" : "46046d37-aade-4f14-ad39-f2976532e4d8", "connected_external_virtual_link" : [ ], "vnf_address" : [ "10.253.4.7" ], "status" : "ACTIVE", "notification" : [ ], "audit_log" : "auditLog", "runtime_policy_info" : [ ], "name" : "iperfserver", "type" : "server", "endpoint" : "generic", "task" : "start", "requires" : { "id" : "fe0c2cb2-e251-415a-b894-d04ddf8970dc", "version" : 0,
89
"projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "configurationParameters" : [ ], "name" : "requires" }, "provides" : { "id" : "5b36d727-0a95-4be0-958e-7c94857d5c70", "version" : 0, "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "configurationParameters" : [ ], "name" : "provides" }, "packageId" : "fcaa8993-b9d0-46c7-a258-85dd847c901f"} ]
6.3. Retrieving a Virtual Network Function Record froma NSRGET requestthe first id in the url belongs to the NSR from which the VNFR shall be retrievedthe second id in the url specifies the wanted VNFR{host}/api/v1/ns-records/{nsrId}/vnfrecords/{vnfrId}
6.3.1. Response structure
Path Type Description
audit_log String _
auto_scale_policy Array _
configurations Object Configuration object to provideparameters to the NetworkService
connected_external_virtual_link Array _
connection_point Array _
descriptor_reference String The reference to the VNFD usedto instantiate this VNF
deployment_flavour_key String The key representing thedeployment flavour
endpoint String The type of the Vnfm in chargeof managing this VNF
hb_version Number _
90
Path Type Description
id String The id of the VNFR
lifecycle_event Array The lifecycle events that shouldbe executed on the VNFtriggered by the vnfm
lifecycle_event_history Array _
localization String _
monitoring_parameter Array Used for fault management
name String The name of the VNFR
notification String _
parent_ns_id String Reference to the NSRs that thisVNFR is part of
packageId String The ID of the VNFPackage usedto deploy this VNFR
projectId String The id of the project to whichthis VNFR belongs
provides Object _
requires Object _
runtime_policy_info String _
status Object The status of the VNFR
task String _
type String The type of the VNFR
vdu Array An aray ofVirtualDeploymentUnits
vendor String The vendor of the VNFR
version String The version of the VNFR
virtual_link Array Internal Virtual Link instancesused in this VNF
vnf_address Array An array of addresses (e.g.VLAN, IP) configured for themanagement access or otherinternal and external connectioninterface on this VNF
vnfm_id String The identification of the VNFMentity managing this VNF
91
6.3.2. Example request
$ curl 'http://localhost:8080/api/v1/ns-records/5e074545-0a81-4de8-8494-eb67173ec565/vnfrecords/2135f315-1772-4ad8-85c8-caa209400ef0' -i -H 'project-id:8a387f1e-9a42-43c7-bab0-3915719c6fca' -H 'Authorization: Bearer e92dfd35-4a7e-4d33-9592-5f1ac595095e'
6.3.3. Example response
HTTP/1.1 200 OKContent-Type: application/jsonContent-Length: 3946
{ "id" : "293e6a52-c6df-40c0-8f8a-58911bb9319b", "hb_version" : 4, "auto_scale_policy" : [ ], "connection_point" : [ ], "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "deployment_flavour_key" : "m1.small", "configurations" : { "id" : "760583a0-ff99-4754-b1c7-2a7b1cc5d7b3", "version" : 1, "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "configurationParameters" : [ { "id" : "5969df32-3199-47d6-83cd-0b4da537dd0f", "version" : 0, "description" : "Description of the configuration parameter", "confKey" : "answer", "value" : "42" } ], "name" : "config_name" }, "lifecycle_event" : [ { "id" : "556fbc91-6a32-419b-afa4-e7e93acf9977", "version" : 0, "event" : "START", "lifecycle_events" : [ "start-server.sh" ] }, { "id" : "5034fc1a-83ad-23f9-7403-533fed9812ad", "version" : 0, "event" : "INSTANTIATE", "lifecycle_events" : [ "install.sh" ] } ], "lifecycle_event_history" : [ {
92
"id" : "07c1ac29-0e2e-4d9f-b8a2-2cc1f3684328", "event" : "GRANTED", "description" : "All the resources that are contained in this VNFR were granted to bedeployed in the chosen vim(s)", "executedAt" : "2016.11.08-22:29:59:417-CET" } ], "localization" : "berlin", "monitoring_parameter" : [ ], "vdu" : [ { "id" : "56ea7355-9261-42e0-8193-53beec9d6514", "version" : 1, "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "name" : "iperf-server", "vm_image" : [ "ubuntu-14.04-server-cloudimg-amd64-disk1" ], "parent_vdu" : "28ea7355-9261-42e0-8193-53beec9d6514", "computation_requirement" : "computationRequirement", "virtual_memory_resource_element" : "virtualMemoryResourceElement", "virtual_network_bandwidth_resource" : "virtualNetworkBandwidthResource", "lifecycle_event" : [ ], "vdu_constraint" : "vduConstraint", "high_availability" : { "resiliencyLevel" : "ACTIVE_STANDBY_STATEFUL", "geoRedundancy" : true, "redundancyScheme" : "scheme" }, "fault_management_policy" : [ ], "scale_in_out" : 2, "vnfc" : [ { "id" : "5e4cc574-4e70-415a-b209-481ad882383e", "version" : 0, "connection_point" : [ { "id" : "5f8cc194-4e70-415a-b569-481cb882383e", "version" : 0, "type" : "type", "virtual_link_reference" : "private", "floatingIp" : "random", "interfaceId" : 0 } ] } ], "vnfc_instance" : [ ], "monitoring_parameter" : [ ], "hostname" : "iperfserver-435", "vimInstanceName" : [ "vim-instance" ] } ], "vendor" : "FOKUS", "version" : "0.1", "virtual_link" : [ { "id" : "b6be79b6-9f7c-494a-8543-7dec75bcfb22",
93
"hb_version" : 0, "extId" : "a3ae6958-34dc-305b-6903-3afc54bcad32", "root_requirement" : "4", "leaf_requirement" : "8", "qos" : [ ], "test_access" : [ ], "connectivity_type" : "connectivityType", "name" : "private", "connection_points_references" : [ ] } ], "parent_ns_id" : "f9ba54f2-a825-47b0-9c3e-e00275faf169", "descriptor_reference" : "0a60d551-5498-40cc-a0ef-279a10e72228", "vnfm_id" : "46046d37-aade-4f14-ad39-f2976532e4d8", "connected_external_virtual_link" : [ ], "vnf_address" : [ "10.253.4.7" ], "status" : "ACTIVE", "notification" : [ ], "audit_log" : "auditLog", "runtime_policy_info" : [ ], "name" : "iperfserver", "type" : "server", "endpoint" : "generic", "task" : "start", "requires" : { "id" : "fe0c2cb2-e251-415a-b894-d04ddf8970dc", "version" : 0, "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "configurationParameters" : [ ], "name" : "requires" }, "provides" : { "id" : "5b36d727-0a95-4be0-958e-7c94857d5c70", "version" : 0, "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "configurationParameters" : [ ], "name" : "provides" }, "packageId" : "fcaa8993-b9d0-46c7-a258-85dd847c901f"}
6.4. Deleting a Virtual Network Function Record from aNSRDELETE requestthe first id in the url belongs to the NSR from which the VNFR shall be deleted
94
the second id in the url speciefies the VNFR that shall be deleted{host}/api/v1/ns-records/{nsrId}/vnfrecords/{vnfrId}
6.4.1. Example request
$ curl 'http://localhost:8080/api/v1/ns-records/5e074545-0a81-4de8-8494-eb67173ec565/vnfrecords/2135f315-1772-4ad8-85c8-caa209400ef0' -i -X DELETE -H 'project-id: 8a387f1e-9a42-43c7-bab0-3915719c6fca' -H 'Authorization: Bearer e92dfd35-4a7e-4d33-9592-5f1ac595095e'
6.4.2. Example response
HTTP/1.1 204 No Content
6.5. Retrieving a Virtual Network Function Record’slifecycle event historyGET requestthe first id in the url belongs to the NSR that comprises the VNFRthe second id in the url belongs to the VNFR whose history shall be retrieved{host}/api/v1/ns-records/[nsrId}/vnfrecords/{vnfrId}/history
6.5.1. Response structure
Path Type Description
[] Array An array of lifecycle events thatwere executed on this VNFR
6.5.2. Example request
$ curl 'http://localhost:8080/api/v1/ns-records/66046d77-aade-4f14-ad39-f2976532e5f2/vnfrecords/293e6a52-c6df-40c0-8f8a-58911bb9319b/history' -i -H 'project-id:8a387f1e-9a42-43c7-bab0-3915719c6fca' -H 'Authorization: Bearer e92dfd35-4a7e-4d33-9592-5f1ac595095e'
6.5.3. Example response
95
HTTP/1.1 202 AcceptedContent-Type: application/jsonContent-Length: 246
[ { "id" : "07c1ac29-0e2e-4d9f-b8a2-2cc1f3684328", "event" : "GRANTED", "description" : "All the resources that are contained in this VNFR were granted to bedeployed in the chosen vim(s)", "executedAt" : "2016.11.08-22:29:59:417-CET"} ]
6.6. Starting a VNFCInstanceVirtualNetworkFunctionRecords contain VDUs which themselves contain VNFCInstances.This API request starts a VNFCInstance.POST request{host}/api/v1/ns-records/{id}/vnfrecords/{idVnf}/vdunits/{idVdu}/vnfcinstances/{idVNFCI}/start
6.6.1. Example request
$ curl 'http://localhost:8080/api/v1/ns-records/5e074545-0a81-4de8-8494-eb67173ec565/vnfrecords/2135f315-1772-4ad8-85c8-caa209400ef0/vdunits/07241c3b-9d50-44ba-a495-9d3b96c226bd/vnfcinstances/eb671c3b-9d50-44ba-0745-9d3b96c24ad8/start' -i -X POST -H'project-id: 8a387f1e-9a42-43c7-bab0-3915719c6fca' -H 'Authorization: Bearer e92dfd35-4a7e-4d33-9592-5f1ac595095e' -H 'Content-Type: application/json'
6.6.2. Example response
HTTP/1.1 201 Created
6.7. Stopping a VNFCInstanceVirtualNetworkFunctionRecords contain VDUs which themselves contain VNFCInstances.This API request stops a VNFCInstance.POST request{host}/api/v1/ns-records/{id}/vnfrecords/{idVnf}/vdunits/{idVdu}/vnfcinstances/{idVNFCI}/stop
6.7.1. Example request
96
$ curl 'http://localhost:8080/api/v1/ns-records/5e074545-0a81-4de8-8494-eb67173ec565/vnfrecords/2135f315-1772-4ad8-85c8-caa209400ef0/vdunits/07241c3b-9d50-44ba-a495-9d3b96c226bd/vnfcinstances/eb671c3b-9d50-44ba-0745-9d3b96c24ad8/stop' -i -X POST -H'project-id: 8a387f1e-9a42-43c7-bab0-3915719c6fca' -H 'Authorization: Bearer e92dfd35-4a7e-4d33-9592-5f1ac595095e' -H 'Content-Type: application/json'
6.7.2. Example response
HTTP/1.1 201 Created
97
Chapter 7. VimInstance
7.1. OverviewA Vim Instance is needed to grant access to for example openstack.
7.2. Adding a VimInstancePOST request with a VimInstance as JSON content in the request body{host}/api/v1/datacenters
7.2.1. Request structure
Path Type Description
active Boolean True if the VimInstance is active
authUrl String The key authorisation URL ofthis PoP
keyPair String Open Stack key pair forproviding SSH access to virtualmachines
location Object The location of the data Center
name String The name of the VimInstance
password String The password
tenant String The tenant is a string to refer toa group of users
type String The type of the Vim Instancethat will start the correspondingplugin
username String The user
version Number The version of the VimInstance
7.2.2. Example request
98
$ curl 'http://localhost:8080/api/v1/datacenters' -i -X POST -H 'project-id: 8a387f1e-9a42-43c7-bab0-3915719c6fca' -H 'Authorization: Bearer e92dfd35-4a7e-4d33-9592-5f1ac595095e' -H 'Content-Type: application/json' -d '{ "version" : 0, "name" : "An example of a VimInstance", "authUrl" : "A Url", "tenant" : "demo", "username" : "User", "password" : "12345", "keyPair" : "key", "location" : { "version" : 0, "name" : "Berlin", "latitude" : "52.525876", "longitude" : "13.314400" }, "type" : "openstack", "active" : false}'
7.2.3. Example response
HTTP/1.1 201 CreatedContent-Type: application/jsonContent-Length: 1676
{ "id" : "07241c3b-9d50-44ba-a495-9d3b96c226bd", "version" : 0, "name" : "An example of a VimInstance", "authUrl" : "A Url", "tenant" : "demo", "username" : "User", "password" : "12345", "keyPair" : "test-key-pair", "location" : { "id" : "68374c3b-9d50-44bc-a435-9d3b96c226db", "version" : 0, "name" : "Berlin", "latitude" : "52.525876", "longitude" : "13.314400" }, "securityGroups" : [ ], "flavours" : [ { "id" : "de00be44-6bac-4e69-8e24-77d82d4b63ce",
99
"version" : 0, "flavour_key" : "m1.tiny", "extId" : "1", "ram" : 512, "disk" : 1, "vcpus" : 1 } ], "type" : "openstack", "images" : [ { "id" : "ab90ae11-267e-4ee6-b623-0d3d42f910ec", "version" : 0, "extId" : "30ecc9a1-53bb-451a-a9f3-adf460d4cb94", "name" : "ImageName", "minRam" : 0, "minDiskSpace" : 0, "minCPU" : "0", "diskFormat" : "OPTIONAL.OF(QCOW2)", "containerFormat" : "OPTIONAL.OF(BARE)", "created" : 1488201198771, "updated" : 1488201198771, "public" : false } ], "networks" : [ { "id" : "3b772bbb-45fe-4f06-a0e5-c21b9bbe0367", "version" : 0, "name" : "private1", "extId" : "26e791ac-5215-4663-b393-3303e310c42e", "external" : false, "shared" : false, "subnets" : [ { "id" : "49920742-992c-4097-aa78-0592498b1d40", "version" : 0, "name" : "private_subnet", "extId" : "fa3a5781-dee1-4b96-8aa9-01488a60acaa", "networkId" : "26e791ac-5215-4663-b393-3303e310c42e", "cidr" : "192.168.216.0/24", "gatewayIp" : "192.168.216.1" } ] } ], "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "active" : false}
7.3. Retrieving all VimInstancesGET request
100
{host}/api/v1/datacenters
7.3.1. Response structure
Path Type Description
[] Object The array of VimInstances
7.3.2. Example request
$ curl 'http://localhost:8080/api/v1/datacenters' -i -H 'project-id: 8a387f1e-9a42-43c7-bab0-3915719c6fca' -H 'Authorization: Bearer e92dfd35-4a7e-4d33-9592-5f1ac595095e'
7.3.3. Example response
HTTP/1.1 200 OKContent-Type: application/json;charset=UTF-8Content-Length: 1685
[ { "id" : "07241c3b-9d50-44ba-a495-9d3b96c226bd", "version" : 0, "name" : "An example of a VimInstance", "authUrl" : "A Url", "tenant" : "demo", "username" : "User", "password" : "**********", "keyPair" : "test-key-pair", "location" : { "id" : "68374c3b-9d50-44bc-a435-9d3b96c226db", "version" : 0, "name" : "Berlin", "latitude" : "52.525876", "longitude" : "13.314400" }, "securityGroups" : [ ], "flavours" : [ { "id" : "de00be44-6bac-4e69-8e24-77d82d4b63ce", "version" : 0, "flavour_key" : "m1.tiny", "extId" : "1", "ram" : 512, "disk" : 1, "vcpus" : 1 } ],
101
"type" : "openstack", "images" : [ { "id" : "ab90ae11-267e-4ee6-b623-0d3d42f910ec", "version" : 0, "extId" : "30ecc9a1-53bb-451a-a9f3-adf460d4cb94", "name" : "ImageName", "minRam" : 0, "minDiskSpace" : 0, "minCPU" : "0", "diskFormat" : "OPTIONAL.OF(QCOW2)", "containerFormat" : "OPTIONAL.OF(BARE)", "created" : 1488201197588, "updated" : 1488201197588, "public" : false } ], "networks" : [ { "id" : "3b772bbb-45fe-4f06-a0e5-c21b9bbe0367", "version" : 0, "name" : "private1", "extId" : "26e791ac-5215-4663-b393-3303e310c42e", "external" : false, "shared" : false, "subnets" : [ { "id" : "49920742-992c-4097-aa78-0592498b1d40", "version" : 0, "name" : "private_subnet", "extId" : "fa3a5781-dee1-4b96-8aa9-01488a60acaa", "networkId" : "26e791ac-5215-4663-b393-3303e310c42e", "cidr" : "192.168.216.0/24", "gatewayIp" : "192.168.216.1" } ] } ], "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "active" : false} ]
7.4. Retrieving a VimInstanceGET requestthe id in the url belongs to the VimInstance {host}/api/v1/datacenters/{vId}
7.4.1. Response structure
Path Type Description
active Boolean True if the VimInstance is active
102
Path Type Description
authUrl String The key authorisation URL ofthis PoP
flavours Array _
id String The id of the VimInstance
images Array _
keyPair String OpenStack key pair whichprovides SSH access to thevirtual machines
location Object The location of the data Center
name String The name of the VimInstance
networks Array _
password String The password
projectId String The id of the project to whichthis VimInstance belongs
securityGroups Array _
tenant String The tenant is a string to refer toa group of users
type String The type of the Vim Instancethat will start the correspondingplugin
username String The username
version Number The version of the VimInstance
7.4.2. Example Request
$ curl 'http://localhost:8080/api/v1/datacenters/07241c3b-9d50-44ba-a495-9d3b96c226bd' -i-H 'project-id: 8a387f1e-9a42-43c7-bab0-3915719c6fca' -H 'Authorization: Bearer e92dfd35-4a7e-4d33-9592-5f1ac595095e'
7.4.3. Example response
HTTP/1.1 200 OKContent-Type: application/json;charset=UTF-8Content-Length: 1681
103
{ "id" : "07241c3b-9d50-44ba-a495-9d3b96c226bd", "version" : 0, "name" : "An example of a VimInstance", "authUrl" : "A Url", "tenant" : "demo", "username" : "User", "password" : "**********", "keyPair" : "test-key-pair", "location" : { "id" : "68374c3b-9d50-44bc-a435-9d3b96c226db", "version" : 0, "name" : "Berlin", "latitude" : "52.525876", "longitude" : "13.314400" }, "securityGroups" : [ ], "flavours" : [ { "id" : "de00be44-6bac-4e69-8e24-77d82d4b63ce", "version" : 0, "flavour_key" : "m1.tiny", "extId" : "1", "ram" : 512, "disk" : 1, "vcpus" : 1 } ], "type" : "openstack", "images" : [ { "id" : "ab90ae11-267e-4ee6-b623-0d3d42f910ec", "version" : 0, "extId" : "30ecc9a1-53bb-451a-a9f3-adf460d4cb94", "name" : "ImageName", "minRam" : 0, "minDiskSpace" : 0, "minCPU" : "0", "diskFormat" : "OPTIONAL.OF(QCOW2)", "containerFormat" : "OPTIONAL.OF(BARE)", "created" : 1488201198966, "updated" : 1488201198966, "public" : false } ], "networks" : [ { "id" : "3b772bbb-45fe-4f06-a0e5-c21b9bbe0367", "version" : 0, "name" : "private1", "extId" : "26e791ac-5215-4663-b393-3303e310c42e", "external" : false, "shared" : false,
104
"subnets" : [ { "id" : "49920742-992c-4097-aa78-0592498b1d40", "version" : 0, "name" : "private_subnet", "extId" : "fa3a5781-dee1-4b96-8aa9-01488a60acaa", "networkId" : "26e791ac-5215-4663-b393-3303e310c42e", "cidr" : "192.168.216.0/24", "gatewayIp" : "192.168.216.1" } ] } ], "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "active" : false}
7.5. Updating a VimInstancePUT request with an updated VimInstance as JSON content in the request bodythe id in the url belongs to the VimInstance to update {host}/api/v1/datacenters/{vId}
7.5.1. Request structure
Path Type Description
active Boolean True if the VimInstance is active
authUrl String The key authorisation URL ofthis PoP
location Object The location of the data Center
name String The name of the VimInstance
password String The password
tenant String The tenant is a string to refer toa group of users
type String The type of the Vim Instancethat will start the correspondingplugin
username String The username
version Number The version of the VimInstance
7.5.2. Example request
105
$ curl 'http://localhost:8080/api/v1/datacenters/07241c3b-9d50-44ba-a495-9d3b96c226bd' -i-X PUT -H 'project-id: 8a387f1e-9a42-43c7-bab0-3915719c6fca' -H 'Authorization: Bearere92dfd35-4a7e-4d33-9592-5f1ac595095e' -H 'Content-Type: application/json' -d '{ "version" : 0, "name" : "An updated VimInstance", "authUrl" : "A Url", "tenant" : "demo", "username" : "User", "password" : "123456789", "location" : { "version" : 0, "name" : "Berlin", "latitude" : "52.525876", "longitude" : "13.314400" }, "type" : "Type2", "active" : false}'
7.5.3. Example response
HTTP/1.1 202 AcceptedContent-Type: application/jsonContent-Length: 1671
{ "id" : "07241c3b-9d50-44ba-a495-9d3b96c226bd", "version" : 0, "name" : "An updated VimInstance", "authUrl" : "A Url", "tenant" : "demo", "username" : "User", "password" : "123456789", "keyPair" : "test-key-pair", "location" : { "id" : "68374c3b-9d50-44bc-a435-9d3b96c226db", "version" : 0, "name" : "Berlin", "latitude" : "52.525876", "longitude" : "13.314400" }, "securityGroups" : [ ], "flavours" : [ { "id" : "de00be44-6bac-4e69-8e24-77d82d4b63ce", "version" : 0,
106
"flavour_key" : "m1.tiny", "extId" : "1", "ram" : 512, "disk" : 1, "vcpus" : 1 } ], "type" : "Type2", "images" : [ { "id" : "ab90ae11-267e-4ee6-b623-0d3d42f910ec", "version" : 0, "extId" : "30ecc9a1-53bb-451a-a9f3-adf460d4cb94", "name" : "ImageName", "minRam" : 0, "minDiskSpace" : 0, "minCPU" : "0", "diskFormat" : "OPTIONAL.OF(QCOW2)", "containerFormat" : "OPTIONAL.OF(BARE)", "created" : 1488201198992, "updated" : 1488201198992, "public" : false } ], "networks" : [ { "id" : "3b772bbb-45fe-4f06-a0e5-c21b9bbe0367", "version" : 0, "name" : "private1", "extId" : "26e791ac-5215-4663-b393-3303e310c42e", "external" : false, "shared" : false, "subnets" : [ { "id" : "49920742-992c-4097-aa78-0592498b1d40", "version" : 0, "name" : "private_subnet", "extId" : "fa3a5781-dee1-4b96-8aa9-01488a60acaa", "networkId" : "26e791ac-5215-4663-b393-3303e310c42e", "cidr" : "192.168.216.0/24", "gatewayIp" : "192.168.216.1" } ] } ], "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "active" : false}
7.6. Removing a VimInstancesDELETE requestthe id in the url belongs to the VimInstance that shall be deleted
107
{host}/api/v1/datacenters/{vId}
7.6.1. Example request
$ curl 'http://localhost:8080/api/v1/datacenters/07241c3b-9d50-44ba-a495-9d3b96c226bd' -i-X DELETE -H 'project-id: 8a387f1e-9a42-43c7-bab0-3915719c6fca' -H 'Authorization: Bearere92dfd35-4a7e-4d33-9592-5f1ac595095e'
7.6.2. Example response
HTTP/1.1 204 No Content
108
Chapter 8. VNFPackage
8.1. OverviewA VNFPackage may contain a VNFD, the scripts to be executed, the image file to be used to instantiateVMs or at least links to the places where they can be retrieved.Please look at the documentatoin at http://openbaton.github.io/documentation/vnfpackage/.
8.2. Adding a VNFPackagePOST requestthe request parameter 'file' specifies an archive which is needed to instantiate a VNFPackage from itTo get information about how this archive has to look like please read the documentation about theVNFPackage mentioned in the overview{host}/api/v1/vnf-packages?file=@{archive}
8.3. Adding a VNFPackage from the Open BatonmarketplacePOST request with the a JSON object in the request body containing a field named link{host}/api/v1/vnf-packages/marketdownload
8.3.1. Request structure
Path Type Description
link String The link to the VNFPackage inthe Open Baton marketplace
8.3.2. Example Request
$ curl 'http://localhost:8080/api/v1/vnf-packages/marketdownload' -i -X POST -H 'project-id: 8a387f1e-9a42-43c7-bab0-3915719c6fca' -H 'Authorization: Bearer e92dfd35-4a7e-4d33-9592-5f1ac595095e' -H 'Content-Type: application/json' -d '{ "link" : "http://marketplace.openbaton.org:8082/api/v1/vnf-packages/fokus/iperfserver/0.1-tar/tar/"}'
8.3.3. Example response
109
HTTP/1.1 200 OKContent-Type: text/plain;charset=ISO-8859-1Content-Length: 51
{ "id" : "a32340e7-45c1-4768-ab09-5826ec3e6594"}
8.4. Retrieving all VNFPackagesGET request{host}/api/v1/vnf-packages
8.4.1. response structure
Path Type Description
[] Object The Array containing theVNFPackages
8.4.2. Example request
$ curl 'http://localhost:8080/api/v1/vnf-packages' -i -H 'project-id: 8a387f1e-9a42-43c7-bab0-3915719c6fca' -H 'Authorization: Bearer e92dfd35-4a7e-4d33-9592-5f1ac595095e'
8.4.3. Example response
110
HTTP/1.1 200 OKContent-Type: application/json;charset=UTF-8Content-Length: 863
[ { "id" : "61a40e7c-a424-4d47-8413-532217ddcf4f", "version" : 2, "name" : "An updated VNFPackage", "nfvo_version" : "3.1.0", "vimTypes" : [ "vim-instance" ], "imageLink" : "URL to the image file", "scriptsLink" : "URL to the place where the scripts can be downloaded", "image" : { "id" : "ab90ae11-267e-4ee6-b623-0d3d42f910ec", "version" : 0, "extId" : "30ecc9a1-53bb-451a-a9f3-adf460d4cb94", "name" : "ImageName", "minRam" : 0, "minDiskSpace" : 0, "minCPU" : "0", "diskFormat" : "OPTIONAL.OF(QCOW2)", "containerFormat" : "OPTIONAL.OF(BARE)", "created" : 1488201196735, "updated" : 1488201196735, "public" : false }, "scripts" : [ { "id" : "5034fc1a-83ad-23f9-7403-533fed9812ad", "version" : 0, "name" : "install.sh" } ], "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca"} ]
8.5. Retrieving a VNFPackageGET requestthe id in the request belongs to the VNFPackage{host}/api/v1/vnf-packages/{vnfpId}
8.5.1. Response structure
Path Type Description
id String The id of the VNFPackage
111
Path Type Description
image Object The image in the VNFPackageused for instantiating the VMs
imageLink String A link to an image that shall beused for instantiating the VMs
name String The name of the VNFPackage
nfvo_version String The NFVO version that supportsthis VNFPackage
projectId String The id of the project to whichthis VNFPackage belongs
scripts Array The scripts that are stored in theVNFPackage
scriptsLink String A link to a git repository, fromwhich the script files can bedownloaded
version Number The version of the VNFPackage
vimTypes Array The types of VIM Instances forthis VNFPackage to use
8.5.2. Example request
$ curl 'http://localhost:8080/api/v1/vnf-packages/61a40e7c-a424-4d47-8413-532217ddcf4f'-i -H 'project-id: 8a387f1e-9a42-43c7-bab0-3915719c6fca' -H 'Authorization: Bearere92dfd35-4a7e-4d33-9592-5f1ac595095e'
8.5.3. Example response
112
HTTP/1.1 200 OKContent-Type: application/json;charset=UTF-8Content-Length: 859
{ "id" : "61a40e7c-a424-4d47-8413-532217ddcf4f", "version" : 2, "name" : "An updated VNFPackage", "nfvo_version" : "3.1.0", "vimTypes" : [ "vim-instance" ], "imageLink" : "URL to the image file", "scriptsLink" : "URL to the place where the scripts can be downloaded", "image" : { "id" : "ab90ae11-267e-4ee6-b623-0d3d42f910ec", "version" : 0, "extId" : "30ecc9a1-53bb-451a-a9f3-adf460d4cb94", "name" : "ImageName", "minRam" : 0, "minDiskSpace" : 0, "minCPU" : "0", "diskFormat" : "OPTIONAL.OF(QCOW2)", "containerFormat" : "OPTIONAL.OF(BARE)", "created" : 1488201197731, "updated" : 1488201197731, "public" : false }, "scripts" : [ { "id" : "5034fc1a-83ad-23f9-7403-533fed9812ad", "version" : 0, "name" : "install.sh" } ], "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca"}
8.6. Updating a VNFPackagePUT request with the updated VNFPackage as a JSON object in the request bodythe id in the request belongs to the VNFPackage{host}/api/v1/vnf-packages/{vnfpId}
8.6.1. Request structure
113
Path Type Description
image Object The image in the VNFPackageused for instantiating the VMs
imageLink String A link to an image that shall beused for instantiating the VMs
name String The name of the VNFPackage
nfvo_version String The NFVO version that supportsthis VNFPackage
scriptsLink String A link to a git repository, fromwhich the script files can bedownloaded
version Number The version of the VNFPackage
vimTypes Array The types of VIM Instances forthis VNFPackage to use
8.6.2. Example Request
$ curl 'http://localhost:8080/api/v1/vnf-packages/61a40e7c-a424-4d47-8413-532217ddcf4f'-i -X PUT -H 'project-id: 8a387f1e-9a42-43c7-bab0-3915719c6fca' -H 'Authorization: Bearere92dfd35-4a7e-4d33-9592-5f1ac595095e' -H 'Content-Type: application/json' -d '{ "version" : 2, "name" : "An updated VNFPackage", "nfvo_version" : "3.1.0", "vimTypes" : [ "vim-instance" ], "imageLink" : "URL to the image file", "scriptsLink" : "URL to the place where the scripts can be downloaded", "image" : { "version" : 0, "name" : "ubuntu_server_image", "minRam" : 0, "minDiskSpace" : 0, "isPublic" : false }}'
8.6.3. Example response
114
HTTP/1.1 202 AcceptedContent-Type: application/jsonContent-Length: 859
{ "id" : "61a40e7c-a424-4d47-8413-532217ddcf4f", "version" : 2, "name" : "An updated VNFPackage", "nfvo_version" : "3.1.0", "vimTypes" : [ "vim-instance" ], "imageLink" : "URL to the image file", "scriptsLink" : "URL to the place where the scripts can be downloaded", "image" : { "id" : "ab90ae11-267e-4ee6-b623-0d3d42f910ec", "version" : 0, "extId" : "30ecc9a1-53bb-451a-a9f3-adf460d4cb94", "name" : "ImageName", "minRam" : 0, "minDiskSpace" : 0, "minCPU" : "0", "diskFormat" : "OPTIONAL.OF(QCOW2)", "containerFormat" : "OPTIONAL.OF(BARE)", "created" : 1488201198885, "updated" : 1488201198885, "public" : false }, "scripts" : [ { "id" : "5034fc1a-83ad-23f9-7403-533fed9812ad", "version" : 0, "name" : "install.sh" } ], "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca"}
8.7. Removing a VNFPackageDELETE requestthe id in the request belongs to the VNFPackage that shall be deleted{host}/api/v1/vnf-packages/{vnfpId}
8.7.1. Example request
115
$ curl 'http://localhost:8080/api/v1/vnf-packages/61a40e7c-a424-4d47-8413-532217ddcf4f'-i -X DELETE -H 'project-id: 8a387f1e-9a42-43c7-bab0-3915719c6fca' -H 'Authorization:Bearer e92dfd35-4a7e-4d33-9592-5f1ac595095e'
8.7.2. Example response
HTTP/1.1 204 No Content
8.8. Removing multiple VNFPackagesDELETE requestthe ids in the request body specify the VNFPackages to delete{host}/api/v1/vnf-packages/multipledelete
8.8.1. Example request
$ curl 'http://localhost:8080/api/v1/vnf-packages/multipledelete' -i -X DELETE -H'project-id: 8a387f1e-9a42-43c7-bab0-3915719c6fca' -H 'Authorization: Bearer e92dfd35-4a7e-4d33-9592-5f1ac595095e' -d '[ "55555c52-f952-430c-b093-45acb2bbf50e", "5c357f1e-9a42-c4a5-bab0-3916248c6fca" ]'
8.8.2. Example response
HTTP/1.1 204 No Content
116
Chapter 9. User
9.1. OverviewTo work with the NFVO you have to log in as a user. A user can be assigned to different projects towhich he has access. A user can have the role of an ADMIN, USER or GUEST each of one has differentpermissions.
9.2. Adding a UserPOST request with a User as JSON content in the request body{host}/api/v1/users
9.2.1. Request structure
Path Type Description
email String The user’s email address
enabled Boolean The user can access his accountjust if enabled is true
password String The user’s password
roles Object The user’s roles in projects
username String The user’s name
9.2.2. Example request
$ curl 'http://localhost:8080/api/v1/users' -i -X POST -H 'Authorization: Bearere92dfd35-4a7e-4d33-9592-5f1ac595095e' -H 'Content-Type: application/json' -d'{"username":"username","password":"supersafe","enabled":true,"email":"[email protected]","roles":[{"role":"ADMIN","project":"MyProject"},{"role":"GUEST","project":"AnotherProject"}]}'
9.2.3. Example response
117
HTTP/1.1 201 CreatedContent-Type: application/jsonContent-Length: 310
{"id":"7a327f1e-5a42-a4a5-aab0-9516248c6fca","username":"username","password":"supersafe","enabled":true,"email":"[email protected]","roles":[{"id":"f9382f4e-9a42-43c7-bab0-3915719c6fca","role":"ADMIN","project":"MyProject"},{"id":"2135f315-1772-4ad8-85c8-caa209400ef0","role":"GUEST","project":"AnotherProject"}]}
9.3. Retrieving all UsersGET request{host}/api/v1/users
9.3.1. response structure
Path Type Description
[] Object The array containing the users
9.3.2. Example request
$ curl 'http://localhost:8080/api/v1/users' -i -H 'Authorization: Bearer e92dfd35-4a7e-4d33-9592-5f1ac595095e'
9.3.3. Example response
118
HTTP/1.1 200 OKContent-Type: application/json;charset=UTF-8Content-Length: 396
[ { "id" : "7a327f1e-5a42-a4a5-aab0-9516248c6fca", "username" : "username", "password" : "supersafe", "enabled" : true, "email" : "[email protected]", "roles" : [ { "id" : "f9382f4e-9a42-43c7-bab0-3915719c6fca", "role" : "ADMIN", "project" : "MyProject" }, { "id" : "2135f315-1772-4ad8-85c8-caa209400ef0", "role" : "GUEST", "project" : "AnotherProject" } ]} ]
9.4. Retrieving a UserGET requestthe name in the request is the username of the requested User{host}/api/v1/users/{username}
9.4.1. Response structure
Path Type Description
email String The user’s email address
enabled Boolean The user can access his accountjust if enabled is true
id String The user’s id
password String The user’s password
roles Object The user’s roles in projects
username String The user’s name
9.4.2. Example request
119
$ curl 'http://localhost:8080/api/v1/users/username' -i -H 'Authorization: Bearere92dfd35-4a7e-4d33-9592-5f1ac595095e'
9.4.3. Example response
HTTP/1.1 200 OKContent-Type: application/json;charset=UTF-8Content-Length: 392
{ "id" : "7a327f1e-5a42-a4a5-aab0-9516248c6fca", "username" : "username", "password" : "supersafe", "enabled" : true, "email" : "[email protected]", "roles" : [ { "id" : "f9382f4e-9a42-43c7-bab0-3915719c6fca", "role" : "ADMIN", "project" : "MyProject" }, { "id" : "2135f315-1772-4ad8-85c8-caa209400ef0", "role" : "GUEST", "project" : "AnotherProject" } ]}
9.5. Retrieving the current UserGET request{host}/api/v1/users/current
9.5.1. Response structure
Path Type Description
email String The user’s email address
id String The user’s id
username String The user’s name
password String The user’s password
enabled Boolean The user can access his accountjust if enabled is true
120
Path Type Description
roles Object The user’s roles in projects
9.5.2. Example request
$ curl 'http://localhost:8080/api/v1/users/current' -i -H 'Authorization: Bearere92dfd35-4a7e-4d33-9592-5f1ac595095e'
9.5.3. Example response
HTTP/1.1 200 OKContent-Type: application/json;charset=UTF-8Content-Length: 392
{ "id" : "7a327f1e-5a42-a4a5-aab0-9516248c6fca", "username" : "username", "password" : "supersafe", "enabled" : true, "email" : "[email protected]", "roles" : [ { "id" : "f9382f4e-9a42-43c7-bab0-3915719c6fca", "role" : "ADMIN", "project" : "MyProject" }, { "id" : "2135f315-1772-4ad8-85c8-caa209400ef0", "role" : "GUEST", "project" : "AnotherProject" } ]}
9.6. Updating a UserPUT request with the updated User as a JSON object in the request bodythe name in the request is the username of the requested User{host}/api/v1/users/{username}
9.6.1. Request structure
Path Type Description
email String The user’s email address
121
Path Type Description
enabled Boolean The user can access his accountjust if enabled is true
id String The user’s id
password String The user’s password
roles Object The user’s roles in projects
username String The user’s name
9.6.2. Example Request
$ curl 'http://localhost:8080/api/v1/users/username' -i -X PUT -H 'Authorization: Bearere92dfd35-4a7e-4d33-9592-5f1ac595095e' -H 'Content-Type: application/json' -d '{ "id" : "7a327f1e-5a42-a4a5-aab0-9516248c6fca", "username" : "username", "password" : "123", "enabled" : false, "email" : "[email protected]", "roles" : [ { "role" : "ADMIN", "project" : "MyProject" }, { "role" : "GUEST", "project" : "AnotherProject" } ]}'
9.6.3. Example response
122
HTTP/1.1 202 AcceptedContent-Type: application/jsonContent-Length: 392
{ "id" : "7a327f1e-5a42-a4a5-aab0-9516248c6fca", "username" : "username", "password" : "supersafe", "enabled" : true, "email" : "[email protected]", "roles" : [ { "id" : "2135f315-1772-4ad8-85c8-caa209400ef0", "role" : "GUEST", "project" : "AnotherProject" }, { "id" : "f9382f4e-9a42-43c7-bab0-3915719c6fca", "role" : "ADMIN", "project" : "MyProject" } ]}
9.7. Changing the current User’s passwordPUT request with the a JSON object in the request body containing the fields old_pwd and new_pwd{host}/api/v1/users/changepwd
9.7.1. Request structure
Path Type Description
new_pwd String The user’s new password
old_pwd String The user’s old password
9.7.2. Example Request
$ curl 'http://localhost:8080/api/v1/users/changepwd' -i -X PUT -H 'Authorization: Bearere92dfd35-4a7e-4d33-9592-5f1ac595095e' -H 'Content-Type: application/json' -d '{ "old_pwd" : "thatsTheOldPassword9", "new_pwd" : "thatsTheNewPassword9"}'
123
9.7.3. Example response
HTTP/1.1 202 Accepted
9.8. Changing a User’s passwordIf you want to change another User’s password, you have to be an adminPUT request with the a JSON object in the request body containing the field new_pwd{host}/api/v1/users/changepwd/{username}
9.8.1. Request structure
Path Type Description
new_pwd String The user’s new password
9.8.2. Example Request
$ curl 'http://localhost:8080/api/v1/users/changepwd/testusername' -i -X PUT -H'Authorization: Bearer e92dfd35-4a7e-4d33-9592-5f1ac595095e' -H 'Content-Type:application/json' -d '{ "new_pwd" : "thatsTheNewPassword9"}'
9.8.3. Example response
HTTP/1.1 202 Accepted
9.9. Removing a UserDELETE requestthe id in the request belongs to the User that shall be deleted{host}/api/v1/users/{userId}
9.9.1. Example request
$ curl 'http://localhost:8080/api/v1/users/61a40e7c-a424-4d47-8413-532217ddcf4f' -i -XDELETE -H 'Authorization: Bearer e92dfd35-4a7e-4d33-9592-5f1ac595095e'
124
Chapter 10. Project
10.1. OverviewProjects are used to provide sets of users a separated working environment.
10.2. Adding a ProjectPOST request with a Project as JSON content in the request body{host}/api/v1/projects
10.2.1. Request structure
Path Type Description
description String The project description
name String The project’s name
quota String The project’s quota
10.2.2. Example request
$ curl 'http://localhost:8080/api/v1/projects' -i -X POST -H 'Authorization: Bearere92dfd35-4a7e-4d33-9592-5f1ac595095e' -H 'Content-Type: application/json' -d '{ "name" : "MyProject", "description" : "The project description", "quota" : { "version" : 1, "tenant" : "demo", "cores" : 8, "floatingIps" : 10, "instances" : 10, "keyPairs" : 3, "ram" : 2048 }}'
10.2.3. Example response
126
HTTP/1.1 201 CreatedContent-Type: application/jsonContent-Length: 332
{ "id" : "5c357f1e-9a42-c4a5-bab0-3916248c6fca", "name" : "MyProject", "description" : "The project description", "quota" : { "id" : "5c357f1e-9a42-c4a5-bab0-3916248c6fca", "version" : 1, "tenant" : "demo", "cores" : 8, "floatingIps" : 10, "instances" : 10, "keyPairs" : 3, "ram" : 2048 }}
10.3. Retrieving all ProjectsGET request{host}/api/v1/projects
10.3.1. response structure
Path Type Description
[] Object The array containing theprojects
10.3.2. Example request
$ curl 'http://localhost:8080/api/v1/projects' -i -H 'Authorization: Bearer e92dfd35-4a7e-4d33-9592-5f1ac595095e'
10.3.3. Example response
127
HTTP/1.1 200 OKContent-Type: application/jsonContent-Length: 336
[ { "id" : "5c357f1e-9a42-c4a5-bab0-3916248c6fca", "name" : "MyProject", "description" : "The project description", "quota" : { "id" : "5c357f1e-9a42-c4a5-bab0-3916248c6fca", "version" : 1, "tenant" : "demo", "cores" : 8, "floatingIps" : 10, "instances" : 10, "keyPairs" : 3, "ram" : 2048 }} ]
10.4. Retrieving a ProjectGET requestthe id in the request is the id of the requested Project{host}/api/v1/projects/{projectId}
10.4.1. Response structure
Path Type Description
description String The project description
id String The project’s id
name String The project’s name
quota Object The project’s quota
10.4.2. Example request
$ curl 'http://localhost:8080/api/v1/projects/5c357f1e-9a42-c4a5-bab0-3916248c6fca' -i -H'Authorization: Bearer e92dfd35-4a7e-4d33-9592-5f1ac595095e'
128
10.4.3. Example response
HTTP/1.1 200 OKContent-Type: application/json;charset=UTF-8Content-Length: 332
{ "id" : "5c357f1e-9a42-c4a5-bab0-3916248c6fca", "name" : "MyProject", "description" : "The project description", "quota" : { "id" : "5c357f1e-9a42-c4a5-bab0-3916248c6fca", "version" : 1, "tenant" : "demo", "cores" : 8, "floatingIps" : 10, "instances" : 10, "keyPairs" : 3, "ram" : 2048 }}
10.5. Updating a ProjectPUT request with the updated Project as a JSON object in the request body{host}/api/v1/projects/{projectId}
10.5.1. Request structure
Path Type Description
description String The project description
name String The project’s name
quota Object The project’s quota
10.5.2. Example Request
129
$ curl 'http://localhost:8080/api/v1/projects/5c357f1e-9a42-c4a5-bab0-3916248c6fca' -i -XPUT -H 'Authorization: Bearer e92dfd35-4a7e-4d33-9592-5f1ac595095e' -H 'Content-Type:application/json' -d '{ "name" : "MyUpdatedProject", "description" : "The project description", "quota" : { "version" : 1, "tenant" : "demo", "cores" : 8, "floatingIps" : 10, "instances" : 10, "keyPairs" : 3, "ram" : 2048 }}'
10.5.3. Example response
HTTP/1.1 202 AcceptedContent-Type: application/jsonContent-Length: 339
{ "id" : "5c357f1e-9a42-c4a5-bab0-3916248c6fca", "name" : "MyUpdatedProject", "description" : "The project description", "quota" : { "id" : "5c357f1e-9a42-c4a5-bab0-3916248c6fca", "version" : 1, "tenant" : "demo", "cores" : 8, "floatingIps" : 10, "instances" : 10, "keyPairs" : 3, "ram" : 2048 }}
10.6. Removing a ProjectDELETE requestthe id in the request belongs to the Project that shall be deleted{host}/api/v1/projects/{projectId}
130
10.6.1. Example request
$ curl 'http://localhost:8080/api/v1/projects/61a40e7c-a424-4d47-8413-532217ddcf4f' -i -XDELETE -H 'Authorization: Bearer e92dfd35-4a7e-4d33-9592-5f1ac595095e'
10.6.2. Example response
HTTP/1.1 204 No Content
10.7. Removing multiple ProjectsDELETE requestthe ids in the request body specify the Projects to delete{host}/api/v1/projects/multipledelete
10.7.1. Example request
$ curl 'http://localhost:8080/api/v1/projects/multipledelete' -i -X DELETE -H 'project-id: 8a387f1e-9a42-43c7-bab0-3915719c6fca' -H 'Authorization: Bearer e92dfd35-4a7e-4d33-9592-5f1ac595095e' -d '[ "3a357f1e-a448-c4a5-f3b0-3c18248c6f92", "5c357f1e-9a42-c4a5-bab0-3916248c6fca" ]'
10.7.2. Example response
HTTP/1.1 204 No Content
131
Chapter 11. Key
11.1. OverviewKeys are objects representing keypairs that can be used to deploy NSRs.
11.2. Importing a KeyPOST request with a Key as JSON content in the request body{host}/api/v1/keys
The Key should contain the name and public key.
11.2.1. Request structure
Path Type Description
name String The Key’s name
publicKey String The public key
11.2.2. Example request
$ curl 'http://localhost:8080/api/v1/keys' -i -X POST -H 'project-id: 8a387f1e-9a42-43c7-bab0-3915719c6fca' -H 'Authorization: Bearer e92dfd35-4a7e-4d33-9592-5f1ac595095e' -H'Content-Type: application/json' -d '{ "name" : "importedKey", "publicKey" : "-----BEGIN RSA PRIVATE KEY-----\njH4fIILs2Z438S39DB4V6syh2Amge3UBNns329Fh4f8HR4EJG98yse3hpuDOX3i9\n-----END RSA PRIVATEKEY-----\n"}'
11.2.3. Example response
HTTP/1.1 201 Created
11.3. Retrieving all KeysGET request{host}/api/v1/keys
132
11.3.1. response structure
Path Type Description
[] Object The array of Keys
11.3.2. Example request
$ curl 'http://localhost:8080/api/v1/keys' -i -H 'project-id: 8a387f1e-9a42-43c7-bab0-3915719c6fca' -H 'Authorization: Bearer e92dfd35-4a7e-4d33-9592-5f1ac595095e'
11.3.3. Example response
HTTP/1.1 200 OKContent-Type: application/json;charset=UTF-8Content-Length: 724
[ { "id" : "5c357f1e-9a42-c4a5-bab0-3916248c6fca", "name" : "keyOne", "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "publicKey" : "-----BEGIN RSA PRIVATE KEY-----\njH4fIILs2Z438S39DB4V6syh2Amge3UBNns329Fh4f8HR4EJG98yse3hpuDOX3i9\n-----END RSA PRIVATEKEY-----\n", "fingerprint" : "42:1e:b0:08:f3:91:8f:41:75:7f:c0:ba:ce:9b:ab:0d:9c:24:13:73"}, { "id" : "4a317f1e-7a42-c2a5-bab0-3916248c6fca", "name" : "keyTwo", "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "publicKey" : "-----BEGIN RSA PRIVATE KEY-----\njH4fIILs2Z438S39DB4V6syh2Amge3UBNns329Fh4f8HR4EJG98yse3hpuDOX3i9\n-----END RSA PRIVATEKEY-----\n", "fingerprint" : "42:1e:b0:08:f3:91:8f:41:75:7f:c0:ba:ce:9b:ab:0d:9c:24:13:73"} ]
11.4. Retrieving a KeyGET requestthe id in the request is the id of the requested Key{host}/api/v1/keys/{keyId}
11.4.1. Response structure
133
Path Type Description
fingerprint String The Key’s fingerprint
id String The Key’s id
name String The Key’s name
projectId String The id of the project to whichthis Key belongs
publicKey String Tey public key
11.4.2. Example request
$ curl 'http://localhost:8080/api/v1/keys/5c357f1e-9a42-c4a5-bab0-3916248c6fca' -i -H'project-id: 8a387f1e-9a42-43c7-bab0-3915719c6fca' -H 'Authorization: Bearer e92dfd35-4a7e-4d33-9592-5f1ac595095e'
11.4.3. Example response
HTTP/1.1 200 OKContent-Type: application/json;charset=UTF-8Content-Length: 359
{ "id" : "5c357f1e-9a42-c4a5-bab0-3916248c6fca", "name" : "keyOne", "projectId" : "8a387f1e-9a42-43c7-bab0-3915719c6fca", "publicKey" : "-----BEGIN RSA PRIVATE KEY-----\njH4fIILs2Z438S39DB4V6syh2Amge3UBNns329Fh4f8HR4EJG98yse3hpuDOX3i9\n-----END RSA PRIVATEKEY-----\n", "fingerprint" : "42:1e:b0:08:f3:91:8f:41:75:7f:c0:ba:ce:9b:ab:0d:9c:24:13:73"}
11.5. Removing a KeyDELETE requestthe id in the request belongs to the Key that shall be deleted{host}/api/v1/keys/{keyId}
11.5.1. Example request
134
$ curl 'http://localhost:8080/api/v1/keys/07241c3b-9d50-44ba-a495-9d3b96c226bd' -i -XDELETE -H 'project-id: 8a387f1e-9a42-43c7-bab0-3915719c6fca' -H 'Authorization: Bearere92dfd35-4a7e-4d33-9592-5f1ac595095e'
11.5.2. Example response
HTTP/1.1 204 No Content
11.6. Removing multiple KeysDELETE requestthe ids in the request body specify the Keys to delete{host}/api/v1/keys/multipledelete
11.6.1. Example request
$ curl 'http://localhost:8080/api/v1/keys/multipledelete' -i -X DELETE -H 'project-id:8a387f1e-9a42-43c7-bab0-3915719c6fca' -H 'Authorization: Bearer e92dfd35-4a7e-4d33-9592-5f1ac595095e' -d '[ "55555c52-f952-430c-b093-45acb2bbf50e", "5c357f1e-9a42-c4a5-bab0-3916248c6fca" ]'
11.6.2. Example response
HTTP/1.1 204 No Content
135
Chapter 12. Virtual Network FunctionManager (VNFM)
12.1. Retrieving all registered VNFM endpointsGET request{host}/api/v1/vnfmanagers
12.1.1. response structure
Path Type Description
[] Object The array containing the VNFMendpoints
12.1.2. Example request
$ curl 'http://localhost:8080/api/v1/vnfmanagers' -i -H 'Authorization: Bearer e92dfd35-4a7e-4d33-9592-5f1ac595095e'
12.1.3. Example response
HTTP/1.1 200 OKContent-Type: application/json;charset=UTF-8Content-Length: 321
[ { "id" : "03e77240-a327-418a-9a1f-2de0bc54400b", "version" : 0, "type" : "generic", "endpointType" : "RABBIT", "endpoint" : "generic-endpoint", "description" : "The VNFM able to handle all the VNFs that follow specific conventions,see http://openbaton.github.io/", "enabled" : true, "active" : true} ]
12.2. Retrieving a registered VNFM’s endpointGET request
136
the id in the request is the id of the requested VNFM{host}/api/v1/vnfmanagers/{vnfmId}
12.2.1. Response structure
Path Type Description
active Boolean Whether the VNFM is active ornot
description String The VNFM description
enabled Boolean Whether the VNFM is enabled ornot
endpoint String Works like the endpoint’s name
endpointType String The endpoint’s type
id String The endpoint’s id
type String The VNFM’s type
version Number The endpoint’s version
12.2.2. Example request
$ curl 'http://localhost:8080/api/v1/vnfmanagers/03e77240-a327-418a-9a1f-2de0bc54400b' -i-H 'Authorization: Bearer e92dfd35-4a7e-4d33-9592-5f1ac595095e'
12.2.3. Example response
HTTP/1.1 200 OKContent-Type: application/json;charset=UTF-8Content-Length: 317
{ "id" : "03e77240-a327-418a-9a1f-2de0bc54400b", "version" : 0, "type" : "generic", "endpointType" : "RABBIT", "endpoint" : "generic-endpoint", "description" : "The VNFM able to handle all the VNFs that follow specific conventions,see http://openbaton.github.io/", "enabled" : true, "active" : true}
137
12.3. Deleting a registered VNFM from the NFVODELETE requestthe id in the request belongs to the VNFM that shall be deleted{host}/api/v1/vnfmanagers/{vnfmId}
12.3.1. Example request
$ curl 'http://localhost:8080/api/v1/vnfmanagers/03e77240-a327-418a-9a1f-2de0bc54400b' -i-X DELETE -H 'Authorization: Bearer e92dfd35-4a7e-4d33-9592-5f1ac595095e'
12.3.2. Example response
HTTP/1.1 204 No Content
138
Chapter 13. Other Components
13.1. VNFRecordDependencyDescribes dependencies between VNFs. Defined in terms of source and target VNF, i.e. target VNF"depends on" source VNF.
13.2. LifecycleEventDefines fuctional scripts or workflows for specific lifecycle events (e.g. initialization, termination,scaling) of a Network Service.See also http://openbaton.github.io/documentation/vnf-descriptor/.
13.3. Virtual Network Function ManagerThe VNF Manager is responsible for the lifecycle management of VNF instances.See also http://openbaton.github.io/documentation/vnfm-generic/.
13.4. VirtualDeploymentUnitPlease look at the documentation athttp://openbaton.github.io/documentation/vnf-descriptor/and at the specification athttp://www.etsi.org/deliver/etsi_gs/NFV-MAN/001_099/001/01.01.01_60/gs_NFV-MAN001v010101p.pdf
139