1 Detailed northbound interface specification
2 ===========================================
5 This is Work in Progress.
7 ETSI NFV IFA Information Models
8 -------------------------------
13 A compute flavor includes information about number of virtual CPUs, size of
14 virtual memory, size of virtual storage, and virtual network interfaces
17 .. figure:: images/computeflavor.png
21 Virtualised Compute Resources
22 -----------------------------
24 Compute Capacity Management
25 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
27 Subscribe Compute Capacity Change Event
28 """""""""""""""""""""""""""""""""""""""
30 Subscription from Consumer to VIM to be notified about compute capacity changes
32 .. http:post:: /capacity/compute/subscribe
39 POST /capacity/compute/subscribe HTTP/1.1
40 Accept: application/json
44 "resourceDescriptor": [
46 "computeResourceTypeId": "vcInstances"
51 "capacity_info": "available",
63 Content-Type: application/json
66 "created": "2015-09-21T00:00:00Z",
67 "capacityChangeSubscriptionId": "abcdef-ghijkl-123456789"
70 :statuscode 400: resourceDescriptor is missing
72 Query Compute Capacity
73 """"""""""""""""""""""
75 Request to find out about available, reserved, total and allocated compute
78 .. http:get:: /capacity/compute/query
85 GET /capacity/compute/query HTTP/1.1
86 Accept: application/json
90 "resourceDescriptor": {
91 "computeResourceTypeId": "vcInstances"
94 "startTime": "2015-09-21T00:00:00Z",
95 "stopTime": "2015-09-21T00:05:30Z"
104 Content-Type: application/json
108 "lastUpdate": "2015-09-21T00:03:20Z",
109 "capacityInformation": {
117 :query limit: Default is 10.
118 :statuscode 404: resource zone unknown
120 Notify Compute Capacity Change Event
121 """"""""""""""""""""""""""""""""""""
123 Notification about compute capacity changes
125 .. http:post:: /capacity/compute/notification
128 **Example notification**:
132 Content-Type: application/json
136 "notificationId": "zyxwvu-tsrqpo-987654321",
137 "capacityChangeTime": "2015-09-21T00:03:20Z",
138 "resourceDescriptor": {
139 "computeResourceTypeId": "vcInstances"
141 "capacityInformation": {
149 Compute Resource Reservation
150 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
152 Create Compute Resource Reservation
153 """""""""""""""""""""""""""""""""""
155 Request the reservation of compute resource capacity
157 .. http:post:: /reservation/compute/create
164 POST /reservation/compute/create HTTP/1.1
165 Accept: application/json
168 "startTime": "2015-09-21T01:00:00Z",
169 "computePoolReservation": {
176 **Example response**:
181 Content-Type: application/json
185 "startTime": "2015-09-21T01:00:00Z",
186 "reservationStatus": "initialized",
187 "reservationId": "xxxx-yyyy-zzzz",
188 "computePoolReserved": {
191 "virtualMemSize": 10,
197 and/or virtualized containers
199 .. http:post:: reservation/compute/create
206 POST /reservation/compute/create HTTP/1.1
207 Accept: application/json
210 "startTime": "2015-10-05T15:00:00Z",
211 "virtualizationContainerReservation": [
213 "containerId": "myContainer",
215 "flavorId": "myFlavor",
218 "cpuArchitecture": "x86"
221 "numaEnabled": "False",
225 "typeOfStorage": "volume",
233 **Example response**:
238 Content-Type: application/json
242 "startTime": "2015-10-05T15:00:00Z",
243 "reservationId": "aaaa-bbbb-cccc",
244 "reservationStatus": "initialized",
245 "virtualizationContainerReserved": [
247 "containerId": "myContainer",
249 "flavorId": "myFlavor",
252 "cpuArchitecture": "x86"
255 "numaEnabled": "False",
259 "typeOfStorage": "volume",
270 Query Compute Resource Reservation
271 """"""""""""""""""""""""""""""""""
273 Request to find out about reserved compute resources that the consumer has
276 .. http:get:: /reservation/compute/query
283 GET /reservation/compute/query HTTP/1.1
284 Accept: application/json
287 "queryReservationFilter": [
289 "reservationId": "xxxx-yyyy-zzzz"
295 **Example response**:
300 Content-Type: application/json
305 "startTime": "2015-09-21T01:00:00Z",
306 "reservationStatus": "active",
307 "reservationId": "xxxx-yyyy-zzzz",
308 "computePoolReserved":
312 "virtualMemSize": 10,
318 :statuscode 404: reservation id unknown
320 Update Compute Resource Reservation
321 """""""""""""""""""""""""""""""""""
323 Request to update compute resource reservation
325 .. http:post:: /reservation/compute/update
332 POST /reservation/compute/update HTTP/1.1
333 Accept: application/json
336 "startTime": "2015-09-14T16:00:00Z",
337 "reservationId": "xxxx-yyyy-zzzz"
340 **Example response**:
345 Content-Type: application/json
349 "startTime": "2015-09-14TT16:00:00Z",
350 "reservationStatus": "active",
351 "reservationId": "xxxx-yyyy-zzzz",
352 "computePoolReserved": {
355 "virtualMemSize": 10,
361 Terminate Compute Resource Reservation
362 """"""""""""""""""""""""""""""""""""""
364 Request to terminate a compute resource reservation
366 .. http:delete:: /reservation/compute/(reservation_id)
369 Virtualised Network Resources
370 -----------------------------
372 Network Capacity Management
373 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
375 Subscribe Network Capacity Change Event
376 """""""""""""""""""""""""""""""""""""""
378 Susbcription from Consumer to VIM to be notified about network capacity changes
380 .. http:post:: /capacity/network/subscribe
387 POST /capacity/network/subscribe HTTP/1.1
388 Accept: application/json
391 "resourceDescriptor": [
393 "networkResourceTypeId": "publicIps"
398 "capacity_info": "available",
405 **Example response**:
410 Content-Type: application/json
413 "created": "2015-09-28T00:00:00Z",
414 "capacityChangeSubscriptionId": "bcdefg-hijklm-234567890"
417 Query Network Capacity
418 """"""""""""""""""""""
420 Request to find out about available, reserved, total and allocated network
423 .. http:get:: /capacity/network/query
430 GET /capacity/network/query HTTP/1.1
431 Accept: application/json
434 "resourceDescriptor": {
435 "networkResourceTypeId": "publicIps"
438 "startTime": "2015-09-28T00:00:00Z",
439 "stopTime": "2015-09-28T00:05:30Z"
443 **Example response**:
448 Content-Type: application/json
451 "lastUpdate": "2015-09-28T00:02:10Z",
452 "capacityInformation": {
460 Notify Network Capacity Change Event
461 """"""""""""""""""""""""""""""""""""
463 Notification about network capacity changes
465 .. http:post:: /capacity/network/notification
468 **Example notification**:
472 Content-Type: application/json
475 "notificationId": "yxwvut-srqpon-876543210",
476 "capacityChangeTime": "2015-09-28T00:02:10Z",
477 "resourceDescriptor": {
478 "networkResourceTypeId": "publicIps"
480 "capacityInformation": {
488 Network Resource Reservation
489 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
491 Create Network Resource Reservation
492 """""""""""""""""""""""""""""""""""
494 Request the reservation of network resource capacity and/or virtual networks,
497 .. http:post:: /reservation/network/create
504 POST /reservation/network/create HTTP/1.1
505 Accept: application/json
508 "startTime": "2015-09-28T01:00:00Z",
509 "networkReservation": {
514 **Example response**:
519 Content-Type: application/json
523 "startTime": "2015-09-28T01:00:00Z",
524 "reservationStatus": "initialized",
525 "reservationId": "wwww-xxxx-yyyy",
535 Query Network Resource Reservation
536 """"""""""""""""""""""""""""""""""
538 Request to find out about reserved network resources that the consumer has
541 .. http:get:: /reservation/network/query
548 GET /reservation/network/query HTTP/1.1
549 Accept: application/json
552 "queryReservationFilter": [
554 "reservationId": "wwww-xxxx-yyyy"
559 **Example response**:
564 Content-Type: application/json
568 "startTime": "2015-09-28T01:00:00Z",
569 "reservationStatus": "active",
570 "reservationId": "wwww-xxxx-yyyy",
571 "networkReserved": "publicIps": [
578 Update Network Resource Reservation
579 """""""""""""""""""""""""""""""""""
581 Request to update network resource reservation
583 .. http:post:: /reservation/network/update
590 POST /reservation/network/update HTTP/1.1
591 Accept: application/json
594 "startTime": "2015-09-21T16:00:00Z",
595 "reservationId": "wwww-xxxx-yyyy"
598 **Example response**:
603 Content-Type: application/json
607 "startTime": "2015-09-21T16:00:00Z",
608 "reservationStatus": "active",
609 "reservationId": "wwww-xxxx-yyyy",
619 Terminate Network Resource Reservation
620 """"""""""""""""""""""""""""""""""""""
622 Request to terminate a network resource reservation
624 .. http:delete:: /reservation/network/(reservation_id)
628 Virtualised Storage Resources
630 -----------------------------
632 Storage Capacity Management
633 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
635 Subscribe Storage Capacity Change Event
636 """""""""""""""""""""""""""""""""""""""
638 Subscription from Consumer to VIM to be notified about storage capacity changes
640 .. http:post:: /capacity/storage/subscribe
647 POST /capacity/storage/subscribe HTTP/1.1
648 Accept: application/json
651 "resourceDescriptor": [
653 "storageResourceTypeId": "volumes"
658 "capacity_info": "available",
665 **Example response**:
670 Content-Type: application/json
673 "created": "2015-09-28T12:00:00Z",
674 "capacityChangeSubscriptionId": "cdefgh-ijklmn-345678901"
677 Query Storage Capacity
678 """"""""""""""""""""""
680 Request to find out about available, reserved, total and allocated storage
683 .. http:get:: /capacity/storage/query
690 GET /capacity/storage/query HTTP/1.1
691 Accept: application/json
694 "resourceDescriptor": {
695 "storageResourceTypeId": "volumes"
698 "startTime": "2015-09-28T12:00:00Z",
699 "stopTime": "2015-09-28T12:04:45Z"
703 **Example response**:
708 Content-Type: application/json
711 "lastUpdate": "2015-09-28T12:01:35Z",
712 "capacityInformation": {
720 Notify Storage Capacity Change Event
721 """"""""""""""""""""""""""""""""""""
723 Notification about storage capacity changes
725 .. http:post:: /capacity/storage/notification
728 **Example notification**:
732 Content-Type: application/json
735 "notificationId": "xwvuts-rqponm-765432109",
736 "capacityChangeTime": "2015-09-28T12:01:35Z",
737 "resourceDescriptor": {
738 "storageResourceTypeId": "volumes"
740 "capacityInformation": {
748 Storage Resource Reservation
749 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
751 Create Storage Resource Reservation
752 """""""""""""""""""""""""""""""""""
754 Request the reservation of storage resource capacity
756 .. http:post:: /reservation/storage/create
763 POST /reservation/storage/create HTTP/1.1
764 Accept: application/json
767 "startTime": "2015-09-28T13:00:00Z",
768 "storagePoolReservation": {
775 **Example response**:
780 Content-Type: application/json
784 "startTime": "2015-09-28T13:00:00Z",
785 "reservationStatus": "initialized",
786 "reservationId": "vvvv-wwww-xxxx",
787 "storagePoolReserved": {
795 Query Storage Resource Reservation
796 """"""""""""""""""""""""""""""""""
798 Request to find out about reserved storage resources that the consumer has
801 .. http:get:: /reservation/storage/query
808 GET /reservation/storage/query HTTP/1.1
809 Accept: application/json
812 "queryReservationFilter": [
814 "reservationId": "vvvv-wwww-xxxx"
819 **Example response**:
824 Content-Type: application/json
828 "startTime": "2015-09-28T13:00:00Z",
829 "reservationStatus": "active",
830 "reservationId": "vvvv-wwww-xxxx",
831 "storagePoolReserved": {
839 Update Storage Resource Reservation
840 """""""""""""""""""""""""""""""""""
842 Request to update storage resource reservation
844 .. http:post:: /reservation/storage/update
851 POST /reservation/storage/update HTTP/1.1
852 Accept: application/json
856 "startTime": "2015-09-20T23:00:00Z",
857 "reservationId": "vvvv-wwww-xxxx"
861 **Example response**:
866 Content-Type: application/json
870 "startTime": "2015-09-20T23:00:00Z",
871 "reservationStatus": "active",
872 "reservationId": "vvvv-wwww-xxxx",
873 "storagePoolReserved": {
881 Terminate Storage Resource Reservation
882 """"""""""""""""""""""""""""""""""""""
884 Request to terminate a storage resource reservation
886 .. http:delete:: /reservation/storage/(reservation_id)