VNFPackageManagement.yaml 47.4 KB
Newer Older
1
2
3
swagger: "2.0"

info:
moscatelli's avatar
moscatelli committed
4
  version: "1.1.0-impl:etsi.org:ETSI_NFV_OpenAPI:1"
5
  title: SOL005 - VNF Package Management Interface
6
  description: >
rameshnaraya's avatar
rameshnaraya committed
7
    SOL005 - VNF Package Management Interface
8
9
10
11
12
13
14
15
    IMPORTANT: Please note that this file might be not aligned to the current
    version of the ETSI Group Specification it refers to and has not been
    approved by the ETSI NFV ISG. In case of discrepancies the published ETSI
    Group Specification takes precedence.
    Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis
  license:
    name: "ETSI Forge copyright notice"
    url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
16
  contact:
17
18
    name: "NFV-SOL WG"
externalDocs:
19
20
21
  description: ETSI GS NFV-SOL 005 V2.5.1
  url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.05.01_60/gs_NFV-SOL005v020501p.pdf

22
basePath: /vnfpkgm/v1
23
24
25
schemes:
  - https
consumes:
26
  - application/json
27
produces:
28
  - application/json
29
paths:
30
31
32
33
34
35
  ###############################################################################
  # API Versions                                                                #
  ###############################################################################
  '/api-versions':
    $ref: '../endpoints/SOL005_endpoints.yaml#/endpoints/api-versions'

36
37
38
  ###############################################################################
  # VNF Packages                                                                #
  ###############################################################################
39
40
  '/vnf_packages':
    #ETSI GS NFV-SOL 005 V2.4.1 location: 9.4.2
41
42
43
44
45
46
47
48
49
50
51
52
53
54
    parameters:
      - name: Authorization
        description: >
          The authorization token for the request.
          Reference: IETF RFC 7235.
        in: header
        required: false
        type: string
      - name: Version
        description: >
          Version of the API requested to use when responding to this request.
        in: header
        required: true
        type: string
55
    get:
rameshnaraya's avatar
rameshnaraya committed
56
      summary: Query VNF packages information.
57
      description: >
rameshnaraya's avatar
rameshnaraya committed
58
59
60
61
        The GET method queries the information of the VNF packages matching the filter.
        This method shall follow the provisions specified in the 
        Tables 9.4.2.3.2-1 and 9.4.2.3.2-2 for URI query parameters,
        request and response data structures, and response codes.
62
      parameters:
63
64
        - name: filter
          in: query
65
          required: false
66
          type: string
67
          description: >
68
69
70
            Attribute-based filtering parameters according to clause 4.3.2.
            The NFVO shall support receiving filtering parameters as part of the URI query string. The
            OSS/BSS may supply filtering parameters.
71
            All attribute names that appear in the VnfPkgInfo and in data types referenced from it shall
72
            be supported in attribute-based filtering parameters.
73
74
        - name: all_fields
          in: query
75
          required: false
76
          type: string
77
          description: >
rameshnaraya's avatar
rameshnaraya committed
78
79
            Include all complex attributes in the response. See clause 4.3.3 for details. The NFVO
            shall support this parameter.
80
81
        - name: fields
          in: query
82
          required: false
83
          type: string
84
          description: >
rameshnaraya's avatar
rameshnaraya committed
85
86
            Complex attributes to be included into the response. See clause 4.3.3 for details. The
            NFVO should support this parameter.         
87
88
        - name: exclude_fields
          in: query
89
          required: false
90
          type: string
91
          description: >
rameshnaraya's avatar
rameshnaraya committed
92
93
            Complex attributes to be excluded from the response. See clause 4.3.3 for details. The
            NFVO should support this parameter.
94
95
        - name: exclude_default
          in: query
96
          required: false
97
          type: string
98
          description: >
rameshnaraya's avatar
rameshnaraya committed
99
100
101
            Indicates to exclude the following complex attributes from the response. See clause 4.3.3
            for details.
            The NFVO shall support this parameter.
102
103
104
105
106
107
            The following attributes shall be excluded from the VnfPkgInfo structure in the response
            body if this parameter is provided, or none of the parameters "all_fields," "fields",
            "exclude_fields", "exclude_default" are provided:
            - softwareImages
            - additionalArtifacts
            - userDefinedData
rameshnaraya's avatar
rameshnaraya committed
108
            - checksum
109
110
111
112
113
114
115
116
117
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
            Reference: IETF RFC 7231
          in: header
          required: true
          type: string
      responses:
        200:
rameshnaraya's avatar
rameshnaraya committed
118
          description: >
119
            200 OK
120

121
            Information of the selected VNF packages.
rameshnaraya's avatar
rameshnaraya committed
122
123
124
125
126
127
          headers:
            Content-Type:
              description: The MIME type of the body of the response.
              type: string
              maximum: 1
              minimum: 1
128
            WWW-Authenticate:
129
              type: string
rameshnaraya's avatar
rameshnaraya committed
130
131
              description: >
                Challenge if the corresponding HTTP request has not provided
132
133
134
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
              maximum: 1
135
              minimum: 0
136
137
138
139
140
141
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
              minimum: 1
142
          schema:
rameshnaraya's avatar
rameshnaraya committed
143
            type: array
144
            items:
rameshnaraya's avatar
rameshnaraya committed
145
146
              properties:
                VnfPkgInfo:
147
                  $ref: "definitions/SOL005VNFPackageManagement_def.yaml#/definitions/VnfPkgInfo"
148
        400:
149
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
150
        401:
151
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
152
        403:
153
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
154
        404:
155
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
156
        405:
157
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
158
        406:
159
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
160
        416:
161
          $ref: "../responses/SOL005_resp.yaml#/responses/416"
162
        500:
163
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
164
        503:
165
          $ref: "../responses/SOL005_resp.yaml#/responses/503"
166
167

    post:
rameshnaraya's avatar
rameshnaraya committed
168
      summary: Create a new individual VNF package resource.
169
      description: >
rameshnaraya's avatar
rameshnaraya committed
170
        The POST method creates a new individual VNF package resource.
171
      parameters:
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
            Reference: IETF RFC 7231
          in: header
          required: true
          type: string
        - name: Content-Type
          description: >
            The MIME type of the body of the request.
            Reference: IETF RFC 7231
          in: header
          required: true
          type: string
        - name: body
          in: body
          required: true
          schema:
            $ref: "definitions/SOL005VNFPackageManagement_def.yaml#/definitions/CreateVnfPkgInfoRequest"
          description: >
            IndividualVNF package resource creation parameters, as defined in clause 9.5.2.2
193
194
      responses:
        201:
195
          description: >
196
            201 Created            
197

198
            An individual VNF package resource has been created successfully.
199
200
201
202
203
            The response body shall contain a representation of
            the new individual VNF package resource, as defined
            in clause 9.5.2.4.
            The HTTP response shall include a "Location" HTTP
            header that contains the resource URI of the individual
204
            VNF package resource.
205
          schema:
206
            $ref: "definitions/SOL005VNFPackageManagement_def.yaml#/definitions/VnfPkgInfo"
207
          headers:
208
            Content-Type:
209
              type: string
210
211
212
213
214
              description: >
                The MIME type of the body of the response.This header
                field shall be present if the response has a non-empty message
                body.
              maximum: 1
215
              minimum: 1
216
            WWW-Authenticate:
217
              type: string
218
219
220
221
222
223
              description: >
                Challenge if the corresponding HTTP request has not provided
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
              maximum: 1
              minimum: 0
224
225
226
227
228
229
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
              minimum: 1
230
231
232
  ###############################################################################
  # Individual VNF Package                                                      #
  ###############################################################################
233
234
  '/vnf_packages/{vnfPkgId}':
    #ETSI GS NFV-SOL 005 V2.4.1 location: 9.4.3
235
    parameters:
236
      - name: vnfPkgId
237
238
        description: >
          Identifier of the VNF package. The identifier is allocated by the NFVO.  
239
240
        in: path
        type: string
241
        required: true
242
243
244
245
246
247
248
249
250
251
252
253
254
      - name: Authorization
        description: >
          The authorization token for the request.
          Reference: IETF RFC 7235.
        in: header
        required: false
        type: string
      - name: Version
        description: >
          Version of the API requested to use when responding to this request.
        in: header
        required: true
        type: string
255
    get:
rameshnaraya's avatar
rameshnaraya committed
256
      summary: Read information about an individual VNF package.
257
      description: >
258
        The GET method reads the information of a VNF package.
259
260
261
262
263
264
265
266
267
268
      parameters:
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
            Reference: IETF RFC 7231
          in: header
          required: true
          type: string
      responses:
        200:
269
270
          description: >
            200 OK
271

272
            Information of the VNF package.            
273
          schema:
274
            $ref: "definitions/SOL005VNFPackageManagement_def.yaml#/definitions/VnfPkgInfo"
rameshnaraya's avatar
rameshnaraya committed
275
276
          headers:
            Content-Type:
277
              type: string
rameshnaraya's avatar
rameshnaraya committed
278
279
280
281
              description: >
                The MIME type of the body of the response.This header
                field shall be present if the response has a non-empty message body.
            WWW-Authenticate:
282
              type: string
rameshnaraya's avatar
rameshnaraya committed
283
284
285
286
              description: >
                Challenge if the corresponding HTTP request has not provided
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
287
288
              maximum: 1
              minimum: 0
289
290
291
292
293
294
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
              minimum: 1
295
        400:
296
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
297
        401:
298
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
299
        403:
300
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
301
        404:
302
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
303
        405:
304
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
305
        406:
306
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
307
        416:
308
          $ref: "../responses/SOL005_resp.yaml#/responses/416"
309
        500:
310
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
311
        503:
312
          $ref: "../responses/SOL005_resp.yaml#/responses/503"
313

314
    delete:
rameshnaraya's avatar
rameshnaraya committed
315
      summary: Delete an individual VNF package.
316
      description: >
317
        The DELETE method deletes an individual VNF Package resource.
318
319
320
      responses:
        204:
          description: >
321
            204 No Content
322

rameshnaraya's avatar
rameshnaraya committed
323
324
            The VNF package was deleted successfully.
            The response body shall be empty.
325
326
327
328
329
330
331
          headers:
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
              minimum: 1
332
333
        409:
          $ref: "../responses/SOL005_resp.yaml#/responses/409"
334
        400:
335
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
336
        401:
337
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
338
        403:
339
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
340
        404:
341
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
342
        405:
343
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
344
        406:
345
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
346
        416:
347
          $ref: "../responses/SOL005_resp.yaml#/responses/416"
348
        500:
349
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
350
        503:
351
          $ref: "../responses/SOL005_resp.yaml#/responses/503"
352

353
    patch:
rameshnaraya's avatar
rameshnaraya committed
354
      summary: Update information about an individual VNF package.
355
      description: >
356
        "The PATCH method updates the information of a VNF package."
357

358
359
360
361
        "This method shall follow the provisions specified in the 
        Tables 9.4.3.3.4-1 and 9.4.3.3.4-2 for URI query parameters,
        request and response data structures, and response codes."
      parameters:
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
        - name: body
          in: body
          required: true
          schema:
            $ref: "definitions/SOL005VNFPackageManagement_def.yaml#/definitions/VnfPkgInfoModifications"
          description: >
            Parameters for VNF package information modifications.
        - name: Content-Type
          description: >
            The MIME type of the body of the request.
            Reference: IETF RFC 7231
          in: header
          required: true
          type: string
      responses:
377
        200:
rameshnaraya's avatar
rameshnaraya committed
378
          description: >
379
            200 OK
380

rameshnaraya's avatar
rameshnaraya committed
381
            The operation was completed successfully.
382
            The response body shall contain attribute
rameshnaraya's avatar
rameshnaraya committed
383
384
            modifications for an "Individual VNF
            package" resource
385
386
387
388
389
390
391
          headers:
            Content-Type:
              description: The MIME type of the body of the response.
              type: string
              maximum: 1
              minimum: 1
            WWW-Authenticate:
392
              type: string
393
394
              description: >
                Challenge if the corresponding HTTP request has not provided
395
396
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
397
398
              maximum: 1
              minimum: 0
399
400
401
402
403
404
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
              minimum: 1
405
          schema:
406
            properties:
407
              VnfPkgInfoModifications:
408
409
410
                $ref: "definitions/SOL005VNFPackageManagement_def.yaml#/definitions/VnfPkgInfoModifications"
        409:
          $ref: "../responses/SOL005_resp.yaml#/responses/409"
411
        400:
412
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
413
        401:
414
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
415
        403:
416
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
417
        404:
418
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
419
        405:
420
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
421
        406:
422
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
423
        416:
424
          $ref: "../responses/SOL005_resp.yaml#/responses/416"
425
        500:
426
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
427
        503:
428
          $ref: "../responses/SOL005_resp.yaml#/responses/503"
429

430
431
432
  ###############################################################################
  # VNFD in an individual VNF package                                           #
  ###############################################################################
433
434
435
  '/vnf_packages/{vnfPkgId}/vnfd':
    #ETSI GS NFV-SOL 005 V2.4.1 location: 9.4.4
    parameters:
436
437
438
439
440
441
442
443
444
445
446
447
448
      - name: Authorization
        description: >
          The authorization token for the request.
          Reference: IETF RFC 7235.
        in: header
        required: false
        type: string
      - name: Version
        description: >
          Version of the API requested to use when responding to this request.
        in: header
        required: true
        type: string
449
450
      - name: vnfPkgId
        description: >
451
          Identifier of the on-boarded VNF package. The identifier is allocated by the NFVO.
452
453
        in: path
        type: string
454
        required: true
455
    get:
rameshnaraya's avatar
rameshnaraya committed
456
      summary: Read VNFD of an on-boarded VNF package.
457
      description: >
rameshnaraya's avatar
rameshnaraya committed
458
        The GET method reads the content of the VNFD within a VNF package.
459

rameshnaraya's avatar
rameshnaraya committed
460
        The VNFD can be implemented as a single file or as a collection of multiple files. If the VNFD is implemented in the
461
462
463
464
465
466
467
468
469
470
471
472
473
        form of multiple files, a ZIP file embedding these files shall be returned. If the VNFD is implemented as a single file,
        either that file or a ZIP file embedding that file shall be returned.
        The selection of the format is controlled by the "Accept" HTTP header passed in the GET request.
        • If the "Accept" header contains only "text/plain" and the VNFD is implemented as a single file, the file shall
        be returned; otherwise, an error message shall be returned.
        • If the "Accept" header contains only "application/zip", the single file or the multiple files that make up the
        VNFD shall be returned embedded in a ZIP file.
        • If the "Accept" header contains both "text/plain" and "application/zip", it is up to the NFVO to choose the
        format to return for a single-file VNFD; for a multi-file VNFD, a ZIP file shall be returned.
        The default format of the ZIP file shall be the one specified in ETSI GS NFV-SOL 004 [5] where only the YAML files
        representing the VNFD, and information necessary to navigate the ZIP file and to identify the file that is the entry point
        for parsing the VNFD (such as TOSCA-meta or manifest files or naming conventions) are included.
        This method shall follow the provisions specified in the Tables 9.4.4.3.2-1 and 9.4.4.3.2-2 for URI query parameters,
rameshnaraya's avatar
rameshnaraya committed
474
        request and response data structures, and response codes.
475
      parameters:
476
477
478
479
480
481
482
483
484
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
          in: header
          required: true
          type: string
          enum:
            - text/plain
            - application/zip
485
486
      responses:
        200:
487
          description: >
488
            200 OK
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504

            On success, the content of the VNFD is returned.
            The payload body shall contain a copy of the file
            representing the VNFD or a ZIP file that contains the
            file or multiple files representing the VNFD, as
            specified above.
            The "Content-Type" HTTP header shall be set
            according to the format of the returned file, i.e. to
            "text/plain" for a YAML file or to "application/zip" for a ZIP file.
          headers:
            Content-Type:
              description: The MIME type of the body of the response.
              type: string
              maximum: 1
              minimum: 1
            WWW-Authenticate:
505
              type: string
506
507
              description: >
                Challenge if the corresponding HTTP request has not provided
508
509
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
510
511
              maximum: 1
              minimum: 0
512
513
514
515
516
517
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
              minimum: 1
518
        400:
519
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
520
        401:
521
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
522
        403:
523
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
524
        404:
525
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
526
        405:
527
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
528
        406:
529
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
530
        409:
531
          $ref: "../responses/SOL005_resp.yaml#/responses/409"
532
        416:
533
          $ref: "../responses/SOL005_resp.yaml#/responses/416"
534
        500:
535
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
536
        503:
537
          $ref: "../responses/SOL005_resp.yaml#/responses/503"
538

539
540
541
  ###############################################################################
  # VNF Package Content                                                         #
  ###############################################################################
542
  '/vnf_packages/{vnfPkgId}/package_content':
543
544
    #ETSI GS NFV-SOL 005 V2.4.1 location: 9.4.5
    parameters:
545
546
547
548
549
550
551
552
553
554
555
556
557
      - name: Authorization
        description: >
          The authorization token for the request.
          Reference: IETF RFC 7235.
        in: header
        required: false
        type: string
      - name: Version
        description: >
          Version of the API requested to use when responding to this request.
        in: header
        required: true
        type: string
558
      - name: vnfPkgId
559
        description: >
560
          Identifier of the on-boarded VNF package. The identifier is allocated by the NFVO.
561
        in: path
562
        required: true
563
        type: string
564
    get:
rameshnaraya's avatar
rameshnaraya committed
565
      summary: Fetch an on-boarded VNF package.
566
      description: >
rameshnaraya's avatar
rameshnaraya committed
567
568
569
        The GET method fetches the content of a VNF package identified by the VNF package identifier allocated by the NFVO.
        This method shall follow the provisions specified in the Tables 9.4.5.3.2-1 and 9.4.5.3.2-2 for URI query parameters,
        request and response data structures, and response codes.
570
      parameters:
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
          in: header
          required: true
          type: string
          enum:
            - application/zip
        - name: Range
          in: header
          required: false
          type: string
          description: >
            The request may contain a "Range" HTTP header to obtain single
            range of bytes from the VNF package file. This can be used to
            continue an aborted transmission.

            If the NFVO does not support range requests, it should return the
            whole file with a 200 OK response instead.
590
591
      responses:
        200:
592
          description: >
593
            200 OK
594
595
596
597
598
599
600
601
602
603
604
605
606
607

            On success, a copy of the VNF package file is returned.
            The response body shall include a copy of the VNF package file.
            The "Content-Type" HTTP header shall be set
            according to the type of the file, i.e. to "application/zip"
            for a VNF Package as defined in ETSI
            GS NFV-SOL 004 [5].
          headers:
            Content-Type:
              description: The MIME type of the body of the response.
              type: string
              maximum: 1
              minimum: 1
            WWW-Authenticate:
608
              type: string
609
610
              description: >
                Challenge if the corresponding HTTP request has not provided
611
612
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
613
614
              maximum: 1
              minimum: 0
615
616
617
618
619
620
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
              minimum: 1
621
        206:
622
          $ref: "../responses/SOL005_resp.yaml#/responses/206"
623
624
625
626
        409:
          $ref: "../responses/SOL005_resp.yaml#/responses/409"
        416:
          $ref: "../responses/SOL005_resp.yaml#/responses/416"
627
        400:
628
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
629
        401:
630
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
631
        403:
632
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
633
        404:
634
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
635
        405:
636
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
637
        406:
638
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
639
        500:
640
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
641
        503:
642
          $ref: "../responses/SOL005_resp.yaml#/responses/503"
643

644
    put:
rameshnaraya's avatar
rameshnaraya committed
645
      summary: Upload a VNF package by providing the content of the VNF package.
646
      description: >
rameshnaraya's avatar
rameshnaraya committed
647
648
649
650
        The PUT method uploads the content of a VNF package.
        This method shall follow the provisions specified in the 
        Tables 9.4.5.3.3-1 and 9.4.5.3.3-2 for URI query parameters,
        request and response data structures, and response codes.
651
      consumes:
652
        - multipart/form-data
653
      parameters:
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
          in: header
          required: true
          type: string
          enum:
            - application/zip
        - in: formData
          name: file
          required: false
          type: file
          description: >
            The payload body contains a ZIP file that represents the VNF package.
            The "Content-Type" HTTP header shall be set according to the
            type of the file, i.e. to "application/zip" for a VNF Package as
            defined in ETSI GS NFV-SOL 004 [5].
671
672
      responses:
        202:
673
          description: >
674
            202 Accepted
675

rameshnaraya's avatar
rameshnaraya committed
676
677
678
679
            The VNF package was accepted for uploading, but the
            processing has not been completed. It is expected to
            take some time for processing.
            The response body shall be empty.
680
681
682
683
684
685
686
          headers:
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
              minimum: 1
687
        409:
688
          description: >
689
          $ref: "../responses/SOL005_resp.yaml#/responses/409"
690
        400:
691
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
692
        401:
693
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
694
        403:
695
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
696
        404:
697
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
698
        405:
699
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
700
        406:
701
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
702
        500:
703
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
704
        503:
705
          $ref: "../responses/SOL005_resp.yaml#/responses/503"
706

707
708
709
  ###############################################################################
  # Upload VNF package from URI task                                            #
  ###############################################################################
710
711
712
  '/vnf_packages/{vnfPkgId}/package_content/upload_from_uri':
    #ETSI GS NFV-SOL 005 V2.4.1 location: 9.4.6   
    post:
rameshnaraya's avatar
rameshnaraya committed
713
      summary: Upload a VNF package by providing the address information of the VNF package.
714
      description: >
715
716
717
718
        The POST method provides the information for the NFVO to get the content of a VNF package.
        This method shall follow the provisions specified in the 
        Tables 9.4.6.3.1-1 and 9.4.6.3.1-2 for URI query parameters,
        request and response data structures, and response codes.        
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
      parameters:
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
            Reference: IETF RFC 7231
          in: header
          required: true
          type: string
        - name: Authorization
          description: >
            The authorization token for the request.
            Reference: IETF RFC 7235
          in: header
          required: false
          type: string
734
735
736
737
738
739
        - name: Version
          description: >
            Version of the API requested to use when responding to this request.
          in: header
          required: true
          type: string
740
741
742
743
744
745
746
747
748
749
750
751
752
753
        - name: vnfPkgId
          description: >
            Identifier of the VNF package. The identifier is allocated by the NFVO.
          in: path
          required: true
          type: string
        - name: body
          in: body
          required: true
          schema:
            $ref: "definitions/SOL005VNFPackageManagement_def.yaml#/definitions/UploadVnfPkgFromUriRequest"
          description: >
            The payload body contains the address information based on
            which the NFVO can obtain the content of the VNF package.
754
755
      responses:
        202:
rameshnaraya's avatar
rameshnaraya committed
756
          description: >
757
            202 Accepted
758

rameshnaraya's avatar
rameshnaraya committed
759
            The information about the VNF package was received
760
761
            successfully, but the on-boarding has not been
            completed. It is expected to take some time for processing.
rameshnaraya's avatar
rameshnaraya committed
762
            The response body shall be empty.
763
764
765
766
767
768
769
          headers:
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
              minimum: 1
770
        409:
771
          $ref: "../responses/SOL005_resp.yaml#/responses/409"
772
        400:
773
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
774
        401:
775
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
776
        403:
777
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
778
        404:
779
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
780
        405:
781
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
782
        406:
783
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
784
        500:
785
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
786
        503:
787
          $ref: "../responses/SOL005_resp.yaml#/responses/503"
788

789
790
791
  ###############################################################################
  # Individual VNF package artifact                                             #
  ###############################################################################
792
  '/vnf_packages/{vnfPkgId}/artifacts/{artifactPath}':
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
    #ETSI GS NFV-SOL 005 V2.4.1 location: 9.4.7
    parameters:
      - name: vnfPkgId
        description: >
          Identifier of the on-boarded VNF package.
          The identifier is allocated by the NFVO.
          This identifier can be retrieved from the "vnfPkgId" attribute in the VnfPackageOnboardingNotification or
          VnfPackageChangeNotification.
        in: path
        type: string
        required: true
      - name: artifactPath
        description: >
          Path of the artifact within the VNF package.
          This identifier can be retrieved from the "artifactPath" attribute of the applicable "additionalArtifacts" entry in
          the body of the response to a GET request querying the "Individual VNF package" or the "VNF packages"
          resource.
        in: path
        type: string
        required: true
813
814
815
816
817
818
819
820
821
822
823
824
825
      - name: Authorization
        description: >
          The authorization token for the request.
          Reference: IETF RFC 7235.
        in: header
        required: false
        type: string
      - name: Version
        description: >
          Version of the API requested to use when responding to this request.
        in: header
        required: true
        type: string
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
    get:
      summary: Fetch individual VNF package artifact.
      description: >
        The GET method fetches the content of an artifact within a VNF package.
        This method shall follow the provisions specified in the
        Tables 9.4.7.3.2-1 and 9.4.7.3.2-2 for URI query parameters,
        request and response data structures, and response codes.
      parameters:
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
          in: header
          required: true
          type: string
        - name: Range
          description: >
            The request may contain a "Range" HTTP header to obtain single
            range of bytes from the VNF package file. This can be used to
            continue an aborted transmission.
            If the NFVO does not support range requests, it should return the
            whole file with a 200 OK response instead.
          in: header
          type: string
      responses:
        200:
          description: >
            200 OK
             On success, the content of the artifact is returned.
            The payload body shall contain a copy of the artifact file from
            the VNF package, as defined by ETSI GS NFV-SOL 004.
            The "Content-Type" HTTP header shall be set according to the
            content type of the artifact file. If the content type cannot be
            determined, the header shall be set to the value
            "application/octet-stream".
          headers:
            Content-Type:
              description: The MIME type of the body of the response.
              type: string
              maximum: 1
              minimum: 1
            WWW-Authenticate:
              type: string
              description: >
                Challenge if the corresponding HTTP request has not provided
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
              maximum: 1
              minimum: 0
874
875
876
877
878
879
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
              minimum: 1
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
        206:
          description: >
            Partial Content.
            On success, if the NFVO supports range requests, a single
            consecutive byte range from the content of the VNF package file is
            returned.
            The response body shall contain the requested part of the VNF
            package file.
            The "Content-Range" HTTP header shall be provided according to
            IETF RFC 7233.
            The "Content-Type" HTTP header shall be set as defined above for
            the "200 OK" response.
          headers:
            Content-Range:
              type: string
              maximum: 1
              minimum: 1
            Content-Type:
              description: The MIME type of the body of the response.
              type: string
              maximum: 1
              minimum: 1
            WWW-Authenticate:
              type: string
              description: >
                Challenge if the corresponding HTTP request has not provided
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
              maximum: 1
              minimum: 0
        400:
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
        401:
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
        403:
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
        404:
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
        405:
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
        406:
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
        409:
          $ref: "../responses/SOL005_resp.yaml#/responses/409"
        416:
          $ref: "../responses/SOL005_resp.yaml#/responses/416"
        500:
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
        503:
          $ref: "../responses/SOL005_resp.yaml#/responses/503"

931
932
933
  ###############################################################################
  # Subscriptions                                                               #
  ###############################################################################
934
  '/subscriptions':
935
    #ETSI GS NFV-SOL 005 V2.4.1 location: 9.4.8
936
937
938
939
940
941
942
943
944
945
946
947
948
949
    parameters:
      - name: Authorization
        description: >
          The authorization token for the request.
          Reference: IETF RFC 7235.
        in: header
        required: false
        type: string
      - name: Version
        description: >
          Version of the API requested to use when responding to this request.
        in: header
        required: true
        type: string
950
    post:
rameshnaraya's avatar
rameshnaraya committed
951
      summary: Subscribe to notifications related to on-boarding and/or changes of VNF packages.
952
      description: >
953
        The POST method creates a new subscription.
rameshnaraya's avatar
rameshnaraya committed
954
955
956
957
958
959
960
961
        This method shall follow the provisions specified in the Tables 9.4.8.3.1-1 and 9.4.8.3.1-2 for URI query parameters,
        request and response data structures, and response codes.
        Creation of two subscription resources with the same callbackURI and the same filter can result in performance
        degradation and will provide duplicates of notifications to the OSS, and might make sense only in very rare use cases.
        Consequently, the NFVO may either allow creating a subscription resource if another subscription resource with the
        same filter and callbackUri already exists (in which case it shall return the "201 Created" response code), or may decide
        to not create a duplicate subscription resource (in which case it shall return a "303 See Other" response code referencing
        the existing subscription resource with the same filter and callbackUri).
962
      parameters:
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
            Reference: IETF RFC 7231
          in: header
          required: true
          type: string
        - name: Content-Type
          description: >
            The MIME type of the body of the request.
            Reference: IETF RFC 7231
          in: header
          required: true
          type: string
        - name: body
          in: body
          required: true
          schema:
            $ref: "definitions/SOL005VNFPackageManagement_def.yaml#/definitions/PkgmSubscriptionRequest"
          description: >
            Representation of the created subscription resource.
            The HTTP response shall include a "Location" HTTP header that
            points to the created subscription resource.
986
987
      responses:
        201:
rameshnaraya's avatar
rameshnaraya committed
988
          description: >
989
            201 Created
990

rameshnaraya's avatar