1 .. This work is licensed under a Creative Commons Attribution 4.0 International License.
2 .. http://creativecommons.org/licenses/by/4.0
6 Detailed northbound interface specification
7 ===========================================
10 This is Work in Progress.
12 ETSI NFV IFA Information Models
13 -------------------------------
18 A compute flavor includes information about number of virtual CPUs, size of
19 virtual memory, size of virtual storage, and virtual network interfaces
22 .. figure:: images/computeflavor.png
26 Virtualised Compute Resources
27 -----------------------------
29 Compute Capacity Management
30 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
32 Subscribe Compute Capacity Change Event
33 """""""""""""""""""""""""""""""""""""""
35 Subscription from Consumer to VIM to be notified about compute capacity changes
37 .. http:post:: /capacity/compute/subscribe
44 POST /capacity/compute/subscribe HTTP/1.1
45 Accept: application/json
49 "resourceDescriptor": [
51 "computeResourceTypeId": "vcInstances"
56 "capacity_info": "available",
68 Content-Type: application/json
71 "created": "2015-09-21T00:00:00Z",
72 "capacityChangeSubscriptionId": "abcdef-ghijkl-123456789"
75 :statuscode 400: resourceDescriptor is missing
77 Query Compute Capacity
78 """"""""""""""""""""""
80 Request to find out about available, reserved, total and allocated compute
83 .. http:get:: /capacity/compute/query
90 GET /capacity/compute/query HTTP/1.1
91 Accept: application/json
95 "resourceDescriptor": {
96 "computeResourceTypeId": "vcInstances"
99 "startTime": "2015-09-21T00:00:00Z",
100 "stopTime": "2015-09-21T00:05:30Z"
104 **Example response**:
109 Content-Type: application/json
113 "lastUpdate": "2015-09-21T00:03:20Z",
114 "capacityInformation": {
122 :query limit: Default is 10.
123 :statuscode 404: resource zone unknown
125 Notify Compute Capacity Change Event
126 """"""""""""""""""""""""""""""""""""
128 Notification about compute capacity changes
130 .. http:post:: /capacity/compute/notification
133 **Example notification**:
137 Content-Type: application/json
141 "notificationId": "zyxwvu-tsrqpo-987654321",
142 "capacityChangeTime": "2015-09-21T00:03:20Z",
143 "resourceDescriptor": {
144 "computeResourceTypeId": "vcInstances"
146 "capacityInformation": {
154 Compute Resource Reservation
155 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
157 Create Compute Resource Reservation
158 """""""""""""""""""""""""""""""""""
160 Request the reservation of compute resource capacity
162 .. http:post:: /reservation/compute/create
169 POST /reservation/compute/create HTTP/1.1
170 Accept: application/json
173 "startTime": "2015-09-21T01:00:00Z",
174 "computePoolReservation": {
181 **Example response**:
186 Content-Type: application/json
190 "startTime": "2015-09-21T01:00:00Z",
191 "reservationStatus": "initialized",
192 "reservationId": "xxxx-yyyy-zzzz",
193 "computePoolReserved": {
196 "virtualMemSize": 10,
202 and/or virtualized containers
204 .. http:post:: reservation/compute/create
211 POST /reservation/compute/create HTTP/1.1
212 Accept: application/json
215 "startTime": "2015-10-05T15:00:00Z",
216 "virtualizationContainerReservation": [
218 "containerId": "myContainer",
220 "flavorId": "myFlavor",
223 "cpuArchitecture": "x86"
226 "numaEnabled": "False",
230 "typeOfStorage": "volume",
238 **Example response**:
243 Content-Type: application/json
247 "startTime": "2015-10-05T15:00:00Z",
248 "reservationId": "aaaa-bbbb-cccc",
249 "reservationStatus": "initialized",
250 "virtualizationContainerReserved": [
252 "containerId": "myContainer",
254 "flavorId": "myFlavor",
257 "cpuArchitecture": "x86"
260 "numaEnabled": "False",
264 "typeOfStorage": "volume",
275 Query Compute Resource Reservation
276 """"""""""""""""""""""""""""""""""
278 Request to find out about reserved compute resources that the consumer has
281 .. http:get:: /reservation/compute/query
288 GET /reservation/compute/query HTTP/1.1
289 Accept: application/json
292 "queryReservationFilter": [
294 "reservationId": "xxxx-yyyy-zzzz"
300 **Example response**:
305 Content-Type: application/json
310 "startTime": "2015-09-21T01:00:00Z",
311 "reservationStatus": "active",
312 "reservationId": "xxxx-yyyy-zzzz",
313 "computePoolReserved":
317 "virtualMemSize": 10,
323 :statuscode 404: reservation id unknown
325 Update Compute Resource Reservation
326 """""""""""""""""""""""""""""""""""
328 Request to update compute resource reservation
330 .. http:post:: /reservation/compute/update
337 POST /reservation/compute/update HTTP/1.1
338 Accept: application/json
341 "startTime": "2015-09-14T16:00:00Z",
342 "reservationId": "xxxx-yyyy-zzzz"
345 **Example response**:
350 Content-Type: application/json
354 "startTime": "2015-09-14TT16:00:00Z",
355 "reservationStatus": "active",
356 "reservationId": "xxxx-yyyy-zzzz",
357 "computePoolReserved": {
360 "virtualMemSize": 10,
366 Terminate Compute Resource Reservation
367 """"""""""""""""""""""""""""""""""""""
369 Request to terminate a compute resource reservation
371 .. http:delete:: /reservation/compute/(reservation_id)
374 Virtualised Network Resources
375 -----------------------------
377 Network Capacity Management
378 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
380 Subscribe Network Capacity Change Event
381 """""""""""""""""""""""""""""""""""""""
383 Susbcription from Consumer to VIM to be notified about network capacity changes
385 .. http:post:: /capacity/network/subscribe
392 POST /capacity/network/subscribe HTTP/1.1
393 Accept: application/json
396 "resourceDescriptor": [
398 "networkResourceTypeId": "publicIps"
403 "capacity_info": "available",
410 **Example response**:
415 Content-Type: application/json
418 "created": "2015-09-28T00:00:00Z",
419 "capacityChangeSubscriptionId": "bcdefg-hijklm-234567890"
422 Query Network Capacity
423 """"""""""""""""""""""
425 Request to find out about available, reserved, total and allocated network
428 .. http:get:: /capacity/network/query
435 GET /capacity/network/query HTTP/1.1
436 Accept: application/json
439 "resourceDescriptor": {
440 "networkResourceTypeId": "publicIps"
443 "startTime": "2015-09-28T00:00:00Z",
444 "stopTime": "2015-09-28T00:05:30Z"
448 **Example response**:
453 Content-Type: application/json
456 "lastUpdate": "2015-09-28T00:02:10Z",
457 "capacityInformation": {
465 Notify Network Capacity Change Event
466 """"""""""""""""""""""""""""""""""""
468 Notification about network capacity changes
470 .. http:post:: /capacity/network/notification
473 **Example notification**:
477 Content-Type: application/json
480 "notificationId": "yxwvut-srqpon-876543210",
481 "capacityChangeTime": "2015-09-28T00:02:10Z",
482 "resourceDescriptor": {
483 "networkResourceTypeId": "publicIps"
485 "capacityInformation": {
493 Network Resource Reservation
494 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
496 Create Network Resource Reservation
497 """""""""""""""""""""""""""""""""""
499 Request the reservation of network resource capacity and/or virtual networks,
502 .. http:post:: /reservation/network/create
509 POST /reservation/network/create HTTP/1.1
510 Accept: application/json
513 "startTime": "2015-09-28T01:00:00Z",
514 "networkReservation": {
519 **Example response**:
524 Content-Type: application/json
528 "startTime": "2015-09-28T01:00:00Z",
529 "reservationStatus": "initialized",
530 "reservationId": "wwww-xxxx-yyyy",
540 Query Network Resource Reservation
541 """"""""""""""""""""""""""""""""""
543 Request to find out about reserved network resources that the consumer has
546 .. http:get:: /reservation/network/query
553 GET /reservation/network/query HTTP/1.1
554 Accept: application/json
557 "queryReservationFilter": [
559 "reservationId": "wwww-xxxx-yyyy"
564 **Example response**:
569 Content-Type: application/json
573 "startTime": "2015-09-28T01:00:00Z",
574 "reservationStatus": "active",
575 "reservationId": "wwww-xxxx-yyyy",
576 "networkReserved": "publicIps": [
583 Update Network Resource Reservation
584 """""""""""""""""""""""""""""""""""
586 Request to update network resource reservation
588 .. http:post:: /reservation/network/update
595 POST /reservation/network/update HTTP/1.1
596 Accept: application/json
599 "startTime": "2015-09-21T16:00:00Z",
600 "reservationId": "wwww-xxxx-yyyy"
603 **Example response**:
608 Content-Type: application/json
612 "startTime": "2015-09-21T16:00:00Z",
613 "reservationStatus": "active",
614 "reservationId": "wwww-xxxx-yyyy",
624 Terminate Network Resource Reservation
625 """"""""""""""""""""""""""""""""""""""
627 Request to terminate a network resource reservation
629 .. http:delete:: /reservation/network/(reservation_id)
633 Virtualised Storage Resources
635 -----------------------------
637 Storage Capacity Management
638 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
640 Subscribe Storage Capacity Change Event
641 """""""""""""""""""""""""""""""""""""""
643 Subscription from Consumer to VIM to be notified about storage capacity changes
645 .. http:post:: /capacity/storage/subscribe
652 POST /capacity/storage/subscribe HTTP/1.1
653 Accept: application/json
656 "resourceDescriptor": [
658 "storageResourceTypeId": "volumes"
663 "capacity_info": "available",
670 **Example response**:
675 Content-Type: application/json
678 "created": "2015-09-28T12:00:00Z",
679 "capacityChangeSubscriptionId": "cdefgh-ijklmn-345678901"
682 Query Storage Capacity
683 """"""""""""""""""""""
685 Request to find out about available, reserved, total and allocated storage
688 .. http:get:: /capacity/storage/query
695 GET /capacity/storage/query HTTP/1.1
696 Accept: application/json
699 "resourceDescriptor": {
700 "storageResourceTypeId": "volumes"
703 "startTime": "2015-09-28T12:00:00Z",
704 "stopTime": "2015-09-28T12:04:45Z"
708 **Example response**:
713 Content-Type: application/json
716 "lastUpdate": "2015-09-28T12:01:35Z",
717 "capacityInformation": {
725 Notify Storage Capacity Change Event
726 """"""""""""""""""""""""""""""""""""
728 Notification about storage capacity changes
730 .. http:post:: /capacity/storage/notification
733 **Example notification**:
737 Content-Type: application/json
740 "notificationId": "xwvuts-rqponm-765432109",
741 "capacityChangeTime": "2015-09-28T12:01:35Z",
742 "resourceDescriptor": {
743 "storageResourceTypeId": "volumes"
745 "capacityInformation": {
753 Storage Resource Reservation
754 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
756 Create Storage Resource Reservation
757 """""""""""""""""""""""""""""""""""
759 Request the reservation of storage resource capacity
761 .. http:post:: /reservation/storage/create
768 POST /reservation/storage/create HTTP/1.1
769 Accept: application/json
772 "startTime": "2015-09-28T13:00:00Z",
773 "storagePoolReservation": {
780 **Example response**:
785 Content-Type: application/json
789 "startTime": "2015-09-28T13:00:00Z",
790 "reservationStatus": "initialized",
791 "reservationId": "vvvv-wwww-xxxx",
792 "storagePoolReserved": {
800 Query Storage Resource Reservation
801 """"""""""""""""""""""""""""""""""
803 Request to find out about reserved storage resources that the consumer has
806 .. http:get:: /reservation/storage/query
813 GET /reservation/storage/query HTTP/1.1
814 Accept: application/json
817 "queryReservationFilter": [
819 "reservationId": "vvvv-wwww-xxxx"
824 **Example response**:
829 Content-Type: application/json
833 "startTime": "2015-09-28T13:00:00Z",
834 "reservationStatus": "active",
835 "reservationId": "vvvv-wwww-xxxx",
836 "storagePoolReserved": {
844 Update Storage Resource Reservation
845 """""""""""""""""""""""""""""""""""
847 Request to update storage resource reservation
849 .. http:post:: /reservation/storage/update
856 POST /reservation/storage/update HTTP/1.1
857 Accept: application/json
861 "startTime": "2015-09-20T23:00:00Z",
862 "reservationId": "vvvv-wwww-xxxx"
866 **Example response**:
871 Content-Type: application/json
875 "startTime": "2015-09-20T23:00:00Z",
876 "reservationStatus": "active",
877 "reservationId": "vvvv-wwww-xxxx",
878 "storagePoolReserved": {
886 Terminate Storage Resource Reservation
887 """"""""""""""""""""""""""""""""""""""
889 Request to terminate a storage resource reservation
891 .. http:delete:: /reservation/storage/(reservation_id)