3 Detailed northbound interface specification
4 ===========================================
7 This is Work in Progress.
9 ETSI NFV IFA Information Models
10 -------------------------------
15 A compute flavor includes information about number of virtual CPUs, size of
16 virtual memory, size of virtual storage, and virtual network interfaces
19 .. figure:: images/computeflavor.png
23 Virtualised Compute Resources
24 -----------------------------
26 Compute Capacity Management
27 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
29 Subscribe Compute Capacity Change Event
30 """""""""""""""""""""""""""""""""""""""
32 Subscription from Consumer to VIM to be notified about compute capacity changes
34 .. http:post:: /capacity/compute/subscribe
41 POST /capacity/compute/subscribe HTTP/1.1
42 Accept: application/json
46 "resourceDescriptor": [
48 "computeResourceTypeId": "vcInstances"
53 "capacity_info": "available",
65 Content-Type: application/json
68 "created": "2015-09-21T00:00:00Z",
69 "capacityChangeSubscriptionId": "abcdef-ghijkl-123456789"
72 :statuscode 400: resourceDescriptor is missing
74 Query Compute Capacity
75 """"""""""""""""""""""
77 Request to find out about available, reserved, total and allocated compute
80 .. http:get:: /capacity/compute/query
87 GET /capacity/compute/query HTTP/1.1
88 Accept: application/json
92 "resourceDescriptor": {
93 "computeResourceTypeId": "vcInstances"
96 "startTime": "2015-09-21T00:00:00Z",
97 "stopTime": "2015-09-21T00:05:30Z"
101 **Example response**:
106 Content-Type: application/json
110 "lastUpdate": "2015-09-21T00:03:20Z",
111 "capacityInformation": {
119 :query limit: Default is 10.
120 :statuscode 404: resource zone unknown
122 Notify Compute Capacity Change Event
123 """"""""""""""""""""""""""""""""""""
125 Notification about compute capacity changes
127 .. http:post:: /capacity/compute/notification
130 **Example notification**:
134 Content-Type: application/json
138 "notificationId": "zyxwvu-tsrqpo-987654321",
139 "capacityChangeTime": "2015-09-21T00:03:20Z",
140 "resourceDescriptor": {
141 "computeResourceTypeId": "vcInstances"
143 "capacityInformation": {
151 Compute Resource Reservation
152 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
154 Create Compute Resource Reservation
155 """""""""""""""""""""""""""""""""""
157 Request the reservation of compute resource capacity
159 .. http:post:: /reservation/compute/create
166 POST /reservation/compute/create HTTP/1.1
167 Accept: application/json
170 "startTime": "2015-09-21T01:00:00Z",
171 "computePoolReservation": {
178 **Example response**:
183 Content-Type: application/json
187 "startTime": "2015-09-21T01:00:00Z",
188 "reservationStatus": "initialized",
189 "reservationId": "xxxx-yyyy-zzzz",
190 "computePoolReserved": {
193 "virtualMemSize": 10,
199 and/or virtualized containers
201 .. http:post:: reservation/compute/create
208 POST /reservation/compute/create HTTP/1.1
209 Accept: application/json
212 "startTime": "2015-10-05T15:00:00Z",
213 "virtualizationContainerReservation": [
215 "containerId": "myContainer",
217 "flavorId": "myFlavor",
220 "cpuArchitecture": "x86"
223 "numaEnabled": "False",
227 "typeOfStorage": "volume",
235 **Example response**:
240 Content-Type: application/json
244 "startTime": "2015-10-05T15:00:00Z",
245 "reservationId": "aaaa-bbbb-cccc",
246 "reservationStatus": "initialized",
247 "virtualizationContainerReserved": [
249 "containerId": "myContainer",
251 "flavorId": "myFlavor",
254 "cpuArchitecture": "x86"
257 "numaEnabled": "False",
261 "typeOfStorage": "volume",
272 Query Compute Resource Reservation
273 """"""""""""""""""""""""""""""""""
275 Request to find out about reserved compute resources that the consumer has
278 .. http:get:: /reservation/compute/query
285 GET /reservation/compute/query HTTP/1.1
286 Accept: application/json
289 "queryReservationFilter": [
291 "reservationId": "xxxx-yyyy-zzzz"
297 **Example response**:
302 Content-Type: application/json
307 "startTime": "2015-09-21T01:00:00Z",
308 "reservationStatus": "active",
309 "reservationId": "xxxx-yyyy-zzzz",
310 "computePoolReserved":
314 "virtualMemSize": 10,
320 :statuscode 404: reservation id unknown
322 Update Compute Resource Reservation
323 """""""""""""""""""""""""""""""""""
325 Request to update compute resource reservation
327 .. http:post:: /reservation/compute/update
334 POST /reservation/compute/update HTTP/1.1
335 Accept: application/json
338 "startTime": "2015-09-14T16:00:00Z",
339 "reservationId": "xxxx-yyyy-zzzz"
342 **Example response**:
347 Content-Type: application/json
351 "startTime": "2015-09-14TT16:00:00Z",
352 "reservationStatus": "active",
353 "reservationId": "xxxx-yyyy-zzzz",
354 "computePoolReserved": {
357 "virtualMemSize": 10,
363 Terminate Compute Resource Reservation
364 """"""""""""""""""""""""""""""""""""""
366 Request to terminate a compute resource reservation
368 .. http:delete:: /reservation/compute/(reservation_id)
371 Virtualised Network Resources
372 -----------------------------
374 Network Capacity Management
375 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
377 Subscribe Network Capacity Change Event
378 """""""""""""""""""""""""""""""""""""""
380 Susbcription from Consumer to VIM to be notified about network capacity changes
382 .. http:post:: /capacity/network/subscribe
389 POST /capacity/network/subscribe HTTP/1.1
390 Accept: application/json
393 "resourceDescriptor": [
395 "networkResourceTypeId": "publicIps"
400 "capacity_info": "available",
407 **Example response**:
412 Content-Type: application/json
415 "created": "2015-09-28T00:00:00Z",
416 "capacityChangeSubscriptionId": "bcdefg-hijklm-234567890"
419 Query Network Capacity
420 """"""""""""""""""""""
422 Request to find out about available, reserved, total and allocated network
425 .. http:get:: /capacity/network/query
432 GET /capacity/network/query HTTP/1.1
433 Accept: application/json
436 "resourceDescriptor": {
437 "networkResourceTypeId": "publicIps"
440 "startTime": "2015-09-28T00:00:00Z",
441 "stopTime": "2015-09-28T00:05:30Z"
445 **Example response**:
450 Content-Type: application/json
453 "lastUpdate": "2015-09-28T00:02:10Z",
454 "capacityInformation": {
462 Notify Network Capacity Change Event
463 """"""""""""""""""""""""""""""""""""
465 Notification about network capacity changes
467 .. http:post:: /capacity/network/notification
470 **Example notification**:
474 Content-Type: application/json
477 "notificationId": "yxwvut-srqpon-876543210",
478 "capacityChangeTime": "2015-09-28T00:02:10Z",
479 "resourceDescriptor": {
480 "networkResourceTypeId": "publicIps"
482 "capacityInformation": {
490 Network Resource Reservation
491 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
493 Create Network Resource Reservation
494 """""""""""""""""""""""""""""""""""
496 Request the reservation of network resource capacity and/or virtual networks,
499 .. http:post:: /reservation/network/create
506 POST /reservation/network/create HTTP/1.1
507 Accept: application/json
510 "startTime": "2015-09-28T01:00:00Z",
511 "networkReservation": {
516 **Example response**:
521 Content-Type: application/json
525 "startTime": "2015-09-28T01:00:00Z",
526 "reservationStatus": "initialized",
527 "reservationId": "wwww-xxxx-yyyy",
537 Query Network Resource Reservation
538 """"""""""""""""""""""""""""""""""
540 Request to find out about reserved network resources that the consumer has
543 .. http:get:: /reservation/network/query
550 GET /reservation/network/query HTTP/1.1
551 Accept: application/json
554 "queryReservationFilter": [
556 "reservationId": "wwww-xxxx-yyyy"
561 **Example response**:
566 Content-Type: application/json
570 "startTime": "2015-09-28T01:00:00Z",
571 "reservationStatus": "active",
572 "reservationId": "wwww-xxxx-yyyy",
573 "networkReserved": "publicIps": [
580 Update Network Resource Reservation
581 """""""""""""""""""""""""""""""""""
583 Request to update network resource reservation
585 .. http:post:: /reservation/network/update
592 POST /reservation/network/update HTTP/1.1
593 Accept: application/json
596 "startTime": "2015-09-21T16:00:00Z",
597 "reservationId": "wwww-xxxx-yyyy"
600 **Example response**:
605 Content-Type: application/json
609 "startTime": "2015-09-21T16:00:00Z",
610 "reservationStatus": "active",
611 "reservationId": "wwww-xxxx-yyyy",
621 Terminate Network Resource Reservation
622 """"""""""""""""""""""""""""""""""""""
624 Request to terminate a network resource reservation
626 .. http:delete:: /reservation/network/(reservation_id)
630 Virtualised Storage Resources
632 -----------------------------
634 Storage Capacity Management
635 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
637 Subscribe Storage Capacity Change Event
638 """""""""""""""""""""""""""""""""""""""
640 Subscription from Consumer to VIM to be notified about storage capacity changes
642 .. http:post:: /capacity/storage/subscribe
649 POST /capacity/storage/subscribe HTTP/1.1
650 Accept: application/json
653 "resourceDescriptor": [
655 "storageResourceTypeId": "volumes"
660 "capacity_info": "available",
667 **Example response**:
672 Content-Type: application/json
675 "created": "2015-09-28T12:00:00Z",
676 "capacityChangeSubscriptionId": "cdefgh-ijklmn-345678901"
679 Query Storage Capacity
680 """"""""""""""""""""""
682 Request to find out about available, reserved, total and allocated storage
685 .. http:get:: /capacity/storage/query
692 GET /capacity/storage/query HTTP/1.1
693 Accept: application/json
696 "resourceDescriptor": {
697 "storageResourceTypeId": "volumes"
700 "startTime": "2015-09-28T12:00:00Z",
701 "stopTime": "2015-09-28T12:04:45Z"
705 **Example response**:
710 Content-Type: application/json
713 "lastUpdate": "2015-09-28T12:01:35Z",
714 "capacityInformation": {
722 Notify Storage Capacity Change Event
723 """"""""""""""""""""""""""""""""""""
725 Notification about storage capacity changes
727 .. http:post:: /capacity/storage/notification
730 **Example notification**:
734 Content-Type: application/json
737 "notificationId": "xwvuts-rqponm-765432109",
738 "capacityChangeTime": "2015-09-28T12:01:35Z",
739 "resourceDescriptor": {
740 "storageResourceTypeId": "volumes"
742 "capacityInformation": {
750 Storage Resource Reservation
751 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
753 Create Storage Resource Reservation
754 """""""""""""""""""""""""""""""""""
756 Request the reservation of storage resource capacity
758 .. http:post:: /reservation/storage/create
765 POST /reservation/storage/create HTTP/1.1
766 Accept: application/json
769 "startTime": "2015-09-28T13:00:00Z",
770 "storagePoolReservation": {
777 **Example response**:
782 Content-Type: application/json
786 "startTime": "2015-09-28T13:00:00Z",
787 "reservationStatus": "initialized",
788 "reservationId": "vvvv-wwww-xxxx",
789 "storagePoolReserved": {
797 Query Storage Resource Reservation
798 """"""""""""""""""""""""""""""""""
800 Request to find out about reserved storage resources that the consumer has
803 .. http:get:: /reservation/storage/query
810 GET /reservation/storage/query HTTP/1.1
811 Accept: application/json
814 "queryReservationFilter": [
816 "reservationId": "vvvv-wwww-xxxx"
821 **Example response**:
826 Content-Type: application/json
830 "startTime": "2015-09-28T13:00:00Z",
831 "reservationStatus": "active",
832 "reservationId": "vvvv-wwww-xxxx",
833 "storagePoolReserved": {
841 Update Storage Resource Reservation
842 """""""""""""""""""""""""""""""""""
844 Request to update storage resource reservation
846 .. http:post:: /reservation/storage/update
853 POST /reservation/storage/update HTTP/1.1
854 Accept: application/json
858 "startTime": "2015-09-20T23:00:00Z",
859 "reservationId": "vvvv-wwww-xxxx"
863 **Example response**:
868 Content-Type: application/json
872 "startTime": "2015-09-20T23:00:00Z",
873 "reservationStatus": "active",
874 "reservationId": "vvvv-wwww-xxxx",
875 "storagePoolReserved": {
883 Terminate Storage Resource Reservation
884 """"""""""""""""""""""""""""""""""""""
886 Request to terminate a storage resource reservation
888 .. http:delete:: /reservation/storage/(reservation_id)