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

info:
4 5
  version: "1.1.0"
  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
  description: ETSI GS NFV-SOL 005 V2.4.1
  url: http://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.04.01_60/gs_NFV-SOL005v020401p.pdf
21
basePath: /vnfpkgm/v1
22 23 24
schemes:
  - https
consumes:
25
  - application/json
26
produces:
27
  - application/json
28
paths:
29 30 31
  ###############################################################################
  # VNF Packages                                                                #
  ###############################################################################
32 33 34
  '/vnf_packages':
    #ETSI GS NFV-SOL 005 V2.4.1 location: 9.4.2
    get:
rameshnaraya's avatar
rameshnaraya committed
35
      summary: Query VNF packages information.
36
      description: >
rameshnaraya's avatar
rameshnaraya committed
37 38 39 40
        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.
41
      parameters:
42 43
        - name: filter
          in: query
44
          required: false
45
          type: string
46
          description: >
47 48 49
            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.
50
            All attribute names that appear in the VnfPkgInfo and in data types referenced from it shall
51
            be supported in attribute-based filtering parameters.
52 53
        - name: all_fields
          in: query
54
          required: false
55
          type: string
56
          description: >
rameshnaraya's avatar
rameshnaraya committed
57 58
            Include all complex attributes in the response. See clause 4.3.3 for details. The NFVO
            shall support this parameter.
59 60
        - name: fields
          in: query
61
          required: false
62
          type: string
63
          description: >
rameshnaraya's avatar
rameshnaraya committed
64 65
            Complex attributes to be included into the response. See clause 4.3.3 for details. The
            NFVO should support this parameter.         
66 67
        - name: exclude_fields
          in: query
68
          required: false
69
          type: string
70
          description: >
rameshnaraya's avatar
rameshnaraya committed
71 72
            Complex attributes to be excluded from the response. See clause 4.3.3 for details. The
            NFVO should support this parameter.
73 74
        - name: exclude_default
          in: query
75
          required: false
76
          type: string
77
          description: >
rameshnaraya's avatar
rameshnaraya committed
78 79 80
            Indicates to exclude the following complex attributes from the response. See clause 4.3.3
            for details.
            The NFVO shall support this parameter.
81 82 83 84 85 86
            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
87
            - checksum
88 89 90 91 92 93 94 95 96 97 98 99 100
        - 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
101
          type: string
102 103
      responses:
        200:
rameshnaraya's avatar
rameshnaraya committed
104
          description: >
105
            200 OK
106

107
            Information of the selected VNF packages.
rameshnaraya's avatar
rameshnaraya committed
108 109 110 111 112 113
          headers:
            Content-Type:
              description: The MIME type of the body of the response.
              type: string
              maximum: 1
              minimum: 1
114
            WWW-Authenticate:
115
              type: string
rameshnaraya's avatar
rameshnaraya committed
116 117
              description: >
                Challenge if the corresponding HTTP request has not provided
118 119 120
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
              maximum: 1
121
              minimum: 0
122
          schema:
rameshnaraya's avatar
rameshnaraya committed
123
            type: array
124
            items:
rameshnaraya's avatar
rameshnaraya committed
125 126
              properties:
                VnfPkgInfo:
127
                  $ref: "definitions/SOL005VNFPackageManagement_def.yaml#/definitions/VnfPkgInfo"
128
        400:
129
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
130
        401:
131
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
132
        403:
133
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
134
        404:
135
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
136
        405:
137
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
138
        406:
139
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
140
        416:
141
          $ref: "../responses/SOL005_resp.yaml#/responses/416"
142
        500:
143
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
144
        503:
145
          $ref: "../responses/SOL005_resp.yaml#/responses/503"
146 147

    post:
rameshnaraya's avatar
rameshnaraya committed
148
      summary: Create a new individual VNF package resource.
149
      description: >
rameshnaraya's avatar
rameshnaraya committed
150
        The POST method creates a new individual VNF package resource.
151
      parameters:
152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179
        - 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
        - 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
180 181
      responses:
        201:
182
          description: >
183
            201 Created            
184

185
            An individual VNF package resource has been created successfully.
186 187 188 189 190
            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
191
            VNF package resource.
192
          schema:
193
            $ref: "definitions/SOL005VNFPackageManagement_def.yaml#/definitions/VnfPkgInfo"
194
          headers:
195
            Content-Type:
196
              type: string
197 198 199 200 201
              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
202
              minimum: 1
203
            WWW-Authenticate:
204
              type: string
205 206 207 208 209 210
              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
211 212 213 214

  ###############################################################################
  # Individual VNF Package                                                      #
  ###############################################################################
215 216
  '/vnf_packages/{vnfPkgId}':
    #ETSI GS NFV-SOL 005 V2.4.1 location: 9.4.3
217
    parameters:
218
      - name: vnfPkgId
219 220
        description: >
          Identifier of the VNF package. The identifier is allocated by the NFVO.  
221 222
        in: path
        type: string
223
        required: true
224
    get:
rameshnaraya's avatar
rameshnaraya committed
225
      summary: Read information about an individual VNF package.
226
      description: >
227
        The GET method reads the information of a VNF package.
228 229 230 231 232 233 234 235 236 237 238 239 240 241
      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
242
          type: string
243 244
      responses:
        200:
245 246
          description: >
            200 OK
247

248
            Information of the VNF package.            
249
          schema:
250
            $ref: "definitions/SOL005VNFPackageManagement_def.yaml#/definitions/VnfPkgInfo"
rameshnaraya's avatar
rameshnaraya committed
251 252
          headers:
            Content-Type:
253
              type: string
rameshnaraya's avatar
rameshnaraya committed
254 255 256 257
              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:
258
              type: string
rameshnaraya's avatar
rameshnaraya committed
259 260 261 262
              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.
263 264
              maximum: 1
              minimum: 0
265
        400:
266
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
267
        401:
268
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
269
        403:
270
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
271
        404:
272
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
273
        405:
274
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
275
        406:
276
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
277
        416:
278
          $ref: "../responses/SOL005_resp.yaml#/responses/416"
279
        500:
280
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
281
        503:
282
          $ref: "../responses/SOL005_resp.yaml#/responses/503"
283

284
    delete:
rameshnaraya's avatar
rameshnaraya committed
285
      summary: Delete an individual VNF package.
286
      description: >
287
        The DELETE method deletes an individual VNF Package resource.
288 289 290 291 292 293 294
      parameters:
        - name: Authorization
          description: >
            The authorization token for the request.
            Reference: IETF RFC 7235
          in: header
          required: false
295
          type: string
296 297 298
      responses:
        204:
          description: >
299
            204 No Content
300

rameshnaraya's avatar
rameshnaraya committed
301 302
            The VNF package was deleted successfully.
            The response body shall be empty.
303 304
        409:
          $ref: "../responses/SOL005_resp.yaml#/responses/409"
305
        400:
306
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
307
        401:
308
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
309
        403:
310
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
311
        404:
312
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
313
        405:
314
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
315
        406:
316
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
317
        416:
318
          $ref: "../responses/SOL005_resp.yaml#/responses/416"
319
        500:
320
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
321
        503:
322
          $ref: "../responses/SOL005_resp.yaml#/responses/503"
323

324
    patch:
rameshnaraya's avatar
rameshnaraya committed
325
      summary: Update information about an individual VNF package.
326
      description: >
327
        "The PATCH method updates the information of a VNF package."
328

329 330 331 332
        "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:
333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354
        - name: body
          in: body
          required: true
          schema:
            $ref: "definitions/SOL005VNFPackageManagement_def.yaml#/definitions/VnfPkgInfoModifications"
          description: >
            Parameters for VNF package information modifications.
        - name: Authorization
          description: >
            The authorization token for the request.
            Reference: IETF RFC 7235
          in: header
          required: false
          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
      responses:
355
        200:
rameshnaraya's avatar
rameshnaraya committed
356
          description: >
357
            200 OK
358

rameshnaraya's avatar
rameshnaraya committed
359
            The operation was completed successfully.
360
            The response body shall contain attribute
rameshnaraya's avatar
rameshnaraya committed
361 362
            modifications for an "Individual VNF
            package" resource
363 364 365 366 367 368 369
          headers:
            Content-Type:
              description: The MIME type of the body of the response.
              type: string
              maximum: 1
              minimum: 1
            WWW-Authenticate:
370
              type: string
371 372
              description: >
                Challenge if the corresponding HTTP request has not provided
373 374
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
375 376 377
              maximum: 1
              minimum: 0
          schema:
378
            properties:
379
              VnfPkgInfoModifications:
380 381 382
                $ref: "definitions/SOL005VNFPackageManagement_def.yaml#/definitions/VnfPkgInfoModifications"
        409:
          $ref: "../responses/SOL005_resp.yaml#/responses/409"
383
        400:
384
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
385
        401:
386
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
387
        403:
388
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
389
        404:
390
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
391
        405:
392
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
393
        406:
394
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
395
        416:
396
          $ref: "../responses/SOL005_resp.yaml#/responses/416"
397
        500:
398
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
399
        503:
400
          $ref: "../responses/SOL005_resp.yaml#/responses/503"
401

402 403 404
  ###############################################################################
  # VNFD in an individual VNF package                                           #
  ###############################################################################
405 406 407 408 409
  '/vnf_packages/{vnfPkgId}/vnfd':
    #ETSI GS NFV-SOL 005 V2.4.1 location: 9.4.4
    parameters:
      - name: vnfPkgId
        description: >
410
          Identifier of the on-boarded VNF package. The identifier is allocated by the NFVO.
411 412
        in: path
        type: string
413
        required: true
414
    get:
rameshnaraya's avatar
rameshnaraya committed
415
      summary: Read VNFD of an on-boarded VNF package.
416
      description: >
rameshnaraya's avatar
rameshnaraya committed
417
        The GET method reads the content of the VNFD within a VNF package.
418

rameshnaraya's avatar
rameshnaraya committed
419
        The VNFD can be implemented as a single file or as a collection of multiple files. If the VNFD is implemented in the
420 421 422 423 424 425 426 427 428 429 430 431 432
        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
433
        request and response data structures, and response codes.
434
      parameters:
435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
          in: header
          required: true
          type: string
          enum:
            - text/plain
            - application/zip
        - name: Authorization
          description: >
            The authorization token for the request.
            Reference: IETF RFC 7235
          in: header
          required: false
          type: string
451 452
      responses:
        200:
453
          description: >
454
            200 OK
455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470

            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:
471
              type: string
472 473
              description: >
                Challenge if the corresponding HTTP request has not provided
474 475
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
476 477 478
              maximum: 1
              minimum: 0
        400:
479
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
480
        401:
481
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
482
        403:
483
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
484
        404:
485
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
486
        405:
487
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
488
        406:
489
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
490
        409:
491
          $ref: "../responses/SOL005_resp.yaml#/responses/409"
492
        416:
493
          $ref: "../responses/SOL005_resp.yaml#/responses/416"
494
        500:
495
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
496
        503:
497
          $ref: "../responses/SOL005_resp.yaml#/responses/503"
498

499 500 501
  ###############################################################################
  # VNF Package Content                                                         #
  ###############################################################################
502
  '/vnf_packages/{vnfPkgId}/package_content':
503 504
    #ETSI GS NFV-SOL 005 V2.4.1 location: 9.4.5
    parameters:
505
      - name: vnfPkgI
506
        description: >
507
          Identifier of the on-boarded VNF package. The identifier is allocated by the NFVO.
508
        in: path
509
        required: true
510
        type: string
511
    get:
rameshnaraya's avatar
rameshnaraya committed
512
      summary: Fetch an on-boarded VNF package.
513
      description: >
rameshnaraya's avatar
rameshnaraya committed
514 515 516
        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.
517
      parameters:
518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
          in: header
          required: true
          type: string
          enum:
            - application/zip
        - name: Authorization
          description: >
            The authorization token for the request.
            Reference: IETF RFC 7235
          in: header
          required: false
          type: string
        - 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.
544 545
      responses:
        200:
546
          description: >
547
            200 OK
548 549 550 551 552 553 554 555 556 557 558 559 560 561

            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:
562
              type: string
563 564
              description: >
                Challenge if the corresponding HTTP request has not provided
565 566
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
567 568 569
              maximum: 1
              minimum: 0
        206:
570
          $ref: "../responses/SOL005_resp.yaml#/responses/206"
571 572 573 574
        409:
          $ref: "../responses/SOL005_resp.yaml#/responses/409"
        416:
          $ref: "../responses/SOL005_resp.yaml#/responses/416"
575
        400:
576
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
577
        401:
578
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
579
        403:
580
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
581
        404:
582
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
583
        405:
584
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
585
        406:
586
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
587
        500:
588
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
589
        503:
590
          $ref: "../responses/SOL005_resp.yaml#/responses/503"
591

592
    put:
rameshnaraya's avatar
rameshnaraya committed
593
      summary: Upload a VNF package by providing the content of the VNF package.
594
      description: >
rameshnaraya's avatar
rameshnaraya committed
595 596 597 598
        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.
599
      consumes:
600
        - multipart/form-data
601
      parameters:
602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
          in: header
          required: true
          type: string
          enum:
            - application/zip
        - name: Authorization
          description: >
            The authorization token for the request.
            Reference: IETF RFC 7235
          in: header
          required: false
          type: string
        - 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].
626 627
      responses:
        202:
628
          description: >
629
            202 Accepted
630

rameshnaraya's avatar
rameshnaraya committed
631 632 633 634
            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.
635
        409:
636
          description: >
637
          $ref: "../responses/SOL005_resp.yaml#/responses/409"
638
        400:
639
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
640
        401:
641
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
642
        403:
643
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
644
        404:
645
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
646
        405:
647
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
648
        406:
649
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
650
        500:
651
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
652
        503:
653
          $ref: "../responses/SOL005_resp.yaml#/responses/503"
654

655 656 657
  ###############################################################################
  # Upload VNF package from URI task                                            #
  ###############################################################################
658 659 660
  '/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
661
      summary: Upload a VNF package by providing the address information of the VNF package.
662
      description: >
663 664 665 666
        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.        
667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695
      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
        - 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.
696 697
      responses:
        202:
rameshnaraya's avatar
rameshnaraya committed
698
          description: >
699
            202 Accepted
700

rameshnaraya's avatar
rameshnaraya committed
701
            The information about the VNF package was received
702 703
            successfully, but the on-boarding has not been
            completed. It is expected to take some time for processing.
rameshnaraya's avatar
rameshnaraya committed
704
            The response body shall be empty.
705
        409:
706
          $ref: "../responses/SOL005_resp.yaml#/responses/409"
707
        400:
708
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
709
        401:
710
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
711
        403:
712
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
713
        404:
714
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
715
        405:
716
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
717
        406:
718
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
719
        500:
720
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
721
        503:
722
          $ref: "../responses/SOL005_resp.yaml#/responses/503"
723

724 725 726
  ###############################################################################
  # Individual VNF package artifact                                             #
  ###############################################################################
727
  '/vnf_packages/{vnfPkgId}/artifacts/{artifactPath}':
728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 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
    #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
    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: Authorization
          description: >
            The authorization token for the request.
            Reference: IETF RFC 7235
          in: header
          required: false
          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
        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"

854 855 856
  ###############################################################################
  # Subscriptions                                                               #
  ###############################################################################
857
  '/subscriptions':
858
    #ETSI GS NFV-SOL 005 V2.4.1 location: 9.4.8
859
    post:
rameshnaraya's avatar
rameshnaraya committed
860
      summary: Subscribe to notifications related to on-boarding and/or changes of VNF packages.
861
      description: >
862
        The POST method creates a new subscription.
rameshnaraya's avatar
rameshnaraya committed
863 864 865 866 867 868 869 870
        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).
871
      parameters:
872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901
        - 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
        - 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.
902 903
      responses:
        201:
rameshnaraya's avatar
rameshnaraya committed
904
          description: >
905
            201 Created
906

907
            Representation of the created subscription resource.
rameshnaraya's avatar
rameshnaraya committed
908 909
            The HTTP response shall include a "Location"
            HTTP header that points to the created subscription resource.
910 911 912 913 914 915 916
          headers:
            Content-Type:
              description: The MIME type of the body of the response.
              type: string
              maximum: 1
              minimum: 1
            WWW-Authenticate:
917
              type: string
918 919
              description: >
                Challenge if the corresponding HTTP request has not provided
920 921 922
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
              maximum: 1
923
              minimum: 0
924 925 926
          schema:
            type: array
            items:
927
              $ref: "definitions/SOL005VNFPackageManagement_def.yaml#/definitions/PkgmSubscription"
928
        303:
929
          $ref: "../responses/SOL005_resp.yaml#/responses/303"
930
        400:
931
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
932
        401:
933
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
934
        403:
935
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
936
        404:
937
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
938
        405:
939
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
940
        406:
941
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
942
        416:
943
          $ref: "../responses/SOL005_resp.yaml#/responses/416"
944
        500:
945
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
946
        503:
947
          $ref: "../responses/SOL005_resp.yaml#/responses/503"
948
    get:
949
      summary: Query multiple subscriptions.
950
      description: >
rameshnaraya's avatar
rameshnaraya committed
951 952 953 954 955
        The GET method queries the list of active subscriptions of the functional block that invokes the method. It can be used
        e.g. for resynchronization after error situations.
        This method shall follow the provisions specified in the 
        Tables 9.4.7.8.2-1 and 9.4.8.3.2-2 for URI query parameters,
        request and response data structures, and response codes.
956
      parameters:
957 958
        - name: filter
          in: query
959
          required: false
960
          type: string
961
          description: >
962 963 964
            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.
965
            All attribute names that appear in the PkgmSubscription and in data types
966
            referenced from it shall be supported in attribute-based filtering parameters            
967 968 969 970 971 972 973 974 975 976 977 978 979 980
        - 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
981 982
      responses:
        200:
rameshnaraya's avatar
rameshnaraya committed
983
          description: >
984
            200 OK
985

rameshnaraya's avatar
rameshnaraya committed
986
            Active subscriptions of the functional block that invokes the method.
987 988 989 990 991 992 993
          headers:
            Content-Type:
              description: The MIME type of the body of the response.
              type: string
              maximum: 1
              minimum: 1
            WWW-Authenticate:
994
              type: string
995 996
              description: >
                Challenge if the corresponding HTTP request has not provided
997 998 999
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
              maximum: 1
1000
              minimum: 0
1001 1002 1003
          schema:
            type: array
            items:
1004
              $ref: "definitions/SOL005VNFPackageManagement_def.yaml#/definitions/PkgmSubscription"
1005
        400:
1006
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
1007
        401:
1008
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
1009
        403:
1010
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
1011
        404:
1012
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
1013
        405:
1014
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
1015
        406:
1016
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
1017
        416:
1018
          $ref: "../responses/SOL005_resp.yaml#/responses/416"
1019
        500:
1020
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
1021
        503:
1022
          $ref: "../responses/SOL005_resp.yaml#/responses/503"
1023

1024 1025 1026
  ###############################################################################
  # Individual subscription                                                     #
  ###############################################################################
1027
  '/subscriptions/{subscriptionId}':
1028
    #ETSI GS NFV-SOL 005 V2.4.1 location: 9.4.9
1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040
    parameters:
      - name: subscriptionId
        description: >
          Identifier of this subscription.
          This identifier can be retrieved from the resource referenced by
          the "Location" HTTP header in the response to a POST request
          creating a new subscription resource. It can also be retrieved from
          the "id" attribute in the payload body of that response.
        in: path
        type: string
        required: true
    get:
1041
      summary: Read an individual subscription resource.
1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061
      description: >
        Query Subscription Information
        The GET method reads an individual subscription.
      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
      responses:
        200:
rameshnaraya's avatar
rameshnaraya committed
1062
          description: >
1063
            200 OK
1064

1065 1066 1067 1068 1069 1070 1071 1072
            Representation of the subscription resource.
          headers:
            Content-Type:
              description: The MIME type of the body of the response.
              type: string
              maximum: 1
              minimum: 1
            WWW-Authenticate:
1073
              type: string
1074 1075
              description: >
                Challenge if the corresponding HTTP request has not provided
1076 1077 1078
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
              maximum: 1
1079
              minimum: 0
1080
          schema:
1081
            $ref: "definitions/SOL005VNFPackageManagement_def.yaml#/definitions/PkgmSubscription"
1082
        400:
1083
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
1084
        401:
1085
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
1086
        403:
1087
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
1088
        404:
1089
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
1090
        405:
1091
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
1092
        406:
1093
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
1094
        416:
1095
          $ref: "../responses/SOL005_resp.yaml#/responses/416"
1096
        500:
1097
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
1098
        503:
1099
          $ref: "../responses/SOL005_resp.yaml#/responses/503"
1100
    delete:
1101
      summary: Terminate a subscription.
1102
      description: >
1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113
        The DELETE method terminates an individual subscription.
      parameters:
        - name: Authorization
          description: >
            The authorization token for the request.
            Reference: IETF RFC 7235
          in: header
          required: false
          type: string
      responses:
        204:
1114
          description: >
1115
            No Content
1116 1117 1118 1119

            The subscription resource was deleted successfully.
          headers:
            WWW-Authenticate:
1120
              type: string
1121 1122
              description: >
                Challenge if the corresponding HTTP request has not provided
1123 1124
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
1125 1126 1127
              maximum: 1
              minimum: 0
        400:
1128
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
1129
        401:
1130
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
1131
        403:
1132
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
1133
        404:
1134
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
1135
        405:
1136
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
1137
        406:
1138
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
1139
        416:
1140
          $ref: "../responses/SOL005_resp.yaml#/responses/416"
rameshnaraya's avatar
rameshnaraya committed
1141
        500:
1142
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
1143
        503:
1144
          $ref: "../responses/SOL005_resp.yaml#/responses/503"