NSDManagement.yaml 70.2 KB
Newer Older
1
swagger: "2.0"
2

3
info:
Giacomo Bernini's avatar
Giacomo Bernini committed
4
  version: "1.1.0-impl:etsi.org:ETSI_NFV_OpenAPI:2"
5
  title: "SOL005 - NSD Management Interface"
6
7
8
9
10
11
12
  description: >
    SOL005 - NSD Management Interface 
    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
13
  license:
14
    name: "ETSI Forge copyright notice"
15
    url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
16
  contact:
17
    name: "NFV-SOL WG"
18

19
externalDocs:
20
21
  description: ETSI GS NFV-SOL 005 V2.6.1
  url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.06.01_60/gs_NFV-SOL005v020601p.pdf
22

23
basePath: /nsd/v1
24

25
schemes:
26
  - http
27
  - https
28

29
consumes:
30
  - application/json
31

32
produces:
33
  - application/json
34

35
paths:
36
37
38
  ###############################################################################
  # API Versions                                                                #
  ###############################################################################
Giacomo Bernini's avatar
Giacomo Bernini committed
39
  '/api_versions':
40
    $ref: '../endpoints/SOL005_endpoints.yaml#/endpoints/api-versions'
41

42
43
44
  ###############################################################################
  # NS Descriptors                                                              #
  ###############################################################################
45
  '/ns_descriptors':
46
    #ETSI GS NFV-SOL 005 V2.4.1 location: 5.4.2
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
    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

    post:
      summary: Create a new NS descriptor resource.
      description: >
65
        The POST method is used to create a new NS descriptor resource.
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
      parameters:
        - 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: CreateNsdInfoRequest
          in: body
          required: true
          schema:
            $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/CreateNsdInfoRequest"
            description: >
              Parameters of creating an NS descriptor resource, as defined in clause 5.5.2.3.
      responses:
        201:
          description: >
            201 CREATED

93
94
95
96
97
98
99
100
            An NS descriptor resource has been created
            successfully, as a new NS descriptor resource.
            The response body shall contain a representation
            of the new NS descriptor resource, as defined in
            clause 5.5.2.2.
            The HTTP response shall include a "Location"
            HTTP header that contains the resource URI of the
            new NS descriptor resource.
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
          schema:
            $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdInfo"
          headers:
            Content-Type:
              type: string
              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:
              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
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
              minimum: 1
        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"
        500:
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
        503:
          $ref: "../responses/SOL005_resp.yaml#/responses/503"
140
141
        504:
          $ref: "../responses/SOL005_resp.yaml#/responses/504"
142

143
    get:
144
      summary: Query information about multiple NS descriptor resources.
145
146
      description: >
        The GET method queries information about multiple NS descriptor resources.
147
      parameters:
148
149
        - name: filter
          in: query
150
          required: false
151
152
          type: string
          description: >
153
            Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV-SOL 013.
154
155
156
157
            The NFVO shall support receiving this filtering parameter as part of the URI query string.
            The OSS/BSS may supply this parameter.
            All attribute names that appear in the NsdInfo and in data types referenced from it shall
            be supported by the NFVO in the filter expression.
158
159
        - name: all_fields
          in: query
160
          required: false
161
162
          type: string
          description: >
163
            Include all complex attributes in the response. See clause 5.3 of ETSI GS NFV SOL 013 for details.
164
            The NFVO shall support this parameter.
165
166
        - name: fields
          in: query
167
          required: false
168
169
          type: string
          description: >
170
            Complex attributes to be included into the response. See clause 5.3 of ETSI GS NFV SOL 013 for
171
172
173
            details. The NFVO should support this parameter.
        - name: exclude_fields
          in: query
174
          required: false
175
176
          type: string
          description: >
177
            Complex attributes to be excluded from the response. See clause 5.3 of ETSI GS NFV SOL 013 for
178
179
180
            details. The NFVO should support this parameter.
        - name: exclude_default
          in: query
181
          required: false
182
183
          type: string
          description: >
184
185
            Indicates to exclude the following complex attributes from the response.
            See clause 5.3 of ETSI GS NFV SOL 013 for details.
186
187
188
189
            The VNFM shall support this parameter.
            The following attributes shall be excluded from the NsdInfo structure in the response body if this
            parameter is provided, or none of the parameters "all_fields," "fields", "exclude_fields", "exclude_default"
            are provided: userDefinedData.
190
191
192
193
        - name: nextpage_opaque_marker
          in: query
          description: >
            Marker to obtain the next page of a paged response. Shall be supported by the NFVO
194
195
            if the NFVO supports alternative 2 (paging) according to clause 5.4.2.1 of
            ETSI GS NFV-SOL 013 for this resource.
196
197
          required: false
          type: string
198
199
200
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
201
            Reference: IETF RFC 7231.
202
          in: header
203
          required: true
204
          type: string
205
206
      responses:
        200:
207
          description: >
208
            200 OK
209

210
            Information about zero or more NS descriptors.
211
212
213
214
215
216
217
218
            The response body shall contain in an array the
            representations of zero or more NS descriptors, as
            defined in clause 5.5.2.2.
            If the NFVO supports alternative 2 (paging) according
            to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for
            this resource, inclusion of the Link HTTP header in
            this response shall follow the provisions in clause
            5.4.2.3 of ETSI GS NFV-SOL 013.
219
220
          headers:
            Content-Type:
221
              description: The MIME type of the body of the response.
222
223
224
              type: string
              maximum: 1
              minimum: 1
225
            WWW-Authenticate:
226
              type: string
227
228
              description: >
                Challenge if the corresponding HTTP request has not provided
229
230
231
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
              maximum: 1
232
233
234
235
236
237
              minimum: 0
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
238
              minimum: 1
239
240
241
242
243
244
            Link:
              description: >
                Reference to other resources. Used for paging in the present document, see clause 4.7.2.1.
              type: string
              maximum: 1
              minimum: 0
245
246
247
          schema:
            type: array
            items:
248
              $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdInfo"
249
        400:
250
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
251
        401:
252
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
253
        403:
254
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
255
        404:
256
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
257
        405:
258
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
259
        406:
260
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
261
        500:
262
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
263
        503:
264
          $ref: "../responses/SOL005_resp.yaml#/responses/503"
265
266
        504:
          $ref: "../responses/SOL005_resp.yaml#/responses/504"
267
268
269
270

  ###############################################################################
  # Individual NS Descriptor                                                    #
  ###############################################################################
271
  '/ns_descriptors/{nsdInfoId}':
272
273
    #ETSI GS NFV-SOL 005 V2.4.1 location: 5.4.3
    parameters:
274
      - name: nsdInfoId
275
276
        description: >
          Identifier of the individual NS descriptor resource.
277
        in: path
278
        required: true
279
        type: string
280
281
282
283
284
285
286
287
288
289
290
291
292
      - 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
293

294
    get:
295
      summary: Read information about an individual NS descriptor resource.
296
297
      description: >
        The GET method reads information about an individual NS descriptor.
298
      parameters:
299
300
301
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
302
            Reference: IETF RFC 7231.
303
304
305
          in: header
          required: true
          type: string
306
307
      responses:
        200:
308
309
          description: >
            200 OK
310

311
            Information about the individual NS descriptor.
312
313
314
            The response body shall contain a representation of
            the individual NS descriptor, as defined in
            clause 5.5.2.2.
315
          schema:
316
            $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdInfo"
317
          headers:
318
            Content-Type:
319
              type: string
320
321
322
              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.
323
            WWW-Authenticate:
324
              type: string
325
326
              description: >
                Challenge if the corresponding HTTP request has not provided
327
328
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
329
330
              maximum: 1
              minimum: 0
331
332
333
334
335
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
336
              minimum: 1
337
        400:
338
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
339
        401:
340
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
341
        403:
342
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
343
        404:
344
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
345
        405:
346
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
347
        406:
348
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
349
        500:
350
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
351
        503:
352
          $ref: "../responses/SOL005_resp.yaml#/responses/503"
353
354
        504:
          $ref: "../responses/SOL005_resp.yaml#/responses/504"
355

356
    patch:
357
      summary: Modify the operational state and/or the user defined data of an individual NS descriptor resource.
358
      description: >
359
360
361
362
363
364
365
366
        The PATCH method modifies the operational state and/or user defined data of an individual NS descriptor resource.
        This method can be used to:
        1) Enable a previously disabled individual NS descriptor resource, allowing again its use for instantiation of new
        network service with this descriptor. The usage state (i.e. "IN_USE/NOT_IN_USE") shall not change as a
        result.
        2) Disable a previously enabled individual NS descriptor resource, preventing any further use for instantiation of
        new network service(s) with this descriptor. The usage state (i.e. "IN_USE/NOT_IN_USE") shall not change
        as a result.
367
        3) Modify the user defined data of an individual NS descriptor resource.
368
      parameters:
369
        - name: NsdInfoModifications
370
371
372
          in: body
          required: true
          schema:
373
            $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdInfoModifications"
374
375
376
377
378
379
380
381
382
383
            description: >
              Parameters for the modification of an individual NS descriptor resource.
        - name: Content-Type
          description: >
            The MIME type of the body of the request.
            Reference: IETF RFC 7231.
          in: header
          required: true
          type: string
      responses:
384
        200:
385
          description: >
386
            200 OK
387

388
            The operation has been completed successfully.
389
390
            The response body shall contain attribute modifications for an 'Individual NS Descriptor'
            resource (see clause 5.5.2.6).
391
392
          headers:
            Content-Type:
393
394
395
396
              description: The MIME type of the body of the response.
              type: string
              maximum: 1
              minimum: 1
397
            WWW-Authenticate:
398
              type: string
399
400
              description: >
                Challenge if the corresponding HTTP request has not provided
401
402
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
403
404
              maximum: 1
              minimum: 0
405
406
407
408
409
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
410
              minimum: 1
411
          schema:
412
            $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdInfoModifications"
413
        400:
414
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
415
        401:
416
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
417
        403:
418
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
419
        404:
420
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
421
        405:
422
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
423
        406:
424
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
425
        409:
426
          description: >
427
428
            409 CONFLICT

429
430
431
432
433
434
435
436
437
            Error: The operation cannot be executed currently,
            due to a conflict with the state of the resource.
            Typically, this is due to an operational state
            mismatch, i.e. enable an already enabled or
            disable an already disabled individual NS
            descriptor resource, or the "nsdOnboardingState"
            is not ONBOARDED.
            The response body shall contain a ProblemDetails
            structure, in which the "detail" attribute shall convey
438
            more information about the error.
439
          $ref: "../responses/SOL005_resp.yaml#/responses/409"
440
        412:
441
          $ref: "../responses/SOL005_resp.yaml#/responses/412"
442
        500:
443
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
444
        503:
445
          $ref: "../responses/SOL005_resp.yaml#/responses/503"
446
447
        504:
          $ref: "../responses/SOL005_resp.yaml#/responses/504"
448

449
    delete:
450
      summary: Delete an individual NS descriptor resource.
451
      description: >
452
453
454
455
456
457
458
459
        The DELETE method deletes an individual NS descriptor resource.
        An individual NS descriptor resource can only be deleted when there is no NS instance using it (i.e. usageState =
        NOT_IN_USE) and has been disabled already (i.e. operationalState = DISABLED). Otherwise, the DELETE method
        shall fail.
      parameters:
        - name: Authorization
          description: >
            The authorization token for the request.
460
            Reference: IETF RFC 7235.
461
462
          in: header
          required: false
463
464
465
466
467
          type: string
        - name: Version
          description: >
            Version of the API requested to use when responding to this request.
          in: header
468
          required: true
469
          type: string
470
471
      responses:
        204:
472
          description: >
473
            204 NO CONTENT
474

475
476
477
478
            The operation has completed successfully.
            The response body shall be empty.
          headers:
            WWW-Authenticate:
479
              type: string
480
481
              description: >
                Challenge if the corresponding HTTP request has not provided
482
483
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
484
485
              maximum: 1
              minimum: 0
486
487
488
489
490
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
491
              minimum: 1
492
        400:
493
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
494
        401:
495
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
496
        403:
497
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
498
        404:
499
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
500
        405:
501
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
502
        406:
503
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
504
        409:
505
          description: >
506
507
            409 CONFLICT

508
509
510
511
512
513
514
515
516
517
            Error: The operation cannot be executed currently,
            due to a conflict with the state of the resource.
            Typically, this is due to the fact the NS descriptor
            resource is in the enabled operational state (i.e.
            operationalState = ENABLED) or there are running
            NS instances using the concerned individual NS
            descriptor resource (i.e. usageState = IN_USE).
            The response body shall contain a ProblemDetails
            structure, in which the "detail" attribute shall convey
            more information about the error.
518
          $ref: "../responses/SOL005_resp.yaml#/responses/409"
519
        500:
520
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
521
        503:
522
          $ref: "../responses/SOL005_resp.yaml#/responses/503"
523
524
        504:
          $ref: "../responses/SOL005_resp.yaml#/responses/504"
525
526
527
528

  ###############################################################################
  # NSD Content                                                                 #
  ###############################################################################
529
  '/ns_descriptors/{nsdInfoId}/nsd_content':
530
531
    #ETSI GS NFV-SOL 005 V2.4.1 location: 5.4.4
    parameters:
532
533
      - name: nsdInfoId
        in: path
534
        required: true
535
        type: string
536
537
538
539
540
541
542
543
544
545
546
547
548
549
      - 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

550
    get:
551
      summary: Fetch the content of a NSD.
552
      description: >
553
        The GET method fetches the content of the NSD.
554
555
556
557
558
559
560
561
562
563
        The NSD can be implemented as a single file or as a collection of multiple files. If the NSD is implemented in the form
        of multiple files, a ZIP file embedding these files shall be returned. If the NSD 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 NSD 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
        NSD 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 NSD; for a multi-file NSD, a ZIP file shall be returned.
564
      parameters:
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
          in: header
          required: true
          type: string
          enum:
            - text/plain
            - 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 NSD file. This can be used to continue an aborted
            transmission.If the NFVO does not support range requests, the NFVO
            shall ignore the 'Range" header, process the GET request, and return
            the whole NSD file with a 200 OK response (rather than returning a 4xx
            error status code)."
585
586
      responses:
        200:
587
          description: >
588
            200 OK
589

590
591
            Shall be returned when the content of the NSD has
            been read successfully.
592
            The payload body shall contain a copy of the file
593
594
595
            representing the NSD or a ZIP file that contains the
            file or multiple files representing the NSD, as
            specified above.
596
597
            The "Content-Type" HTTP header shall be set
            according to the format of the returned file, i.e. to
598
599
            "text/plain" for a YAML file or to "application/zip" for
            a ZIP file.
600
601
          headers:
            Content-Type:
602
603
604
605
              description: The MIME type of the body of the response.
              type: string
              maximum: 1
              minimum: 1
606
            WWW-Authenticate:
607
              type: string
608
609
              description: >
                Challenge if the corresponding HTTP request has not provided
610
611
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
612
613
              maximum: 1
              minimum: 0
614
615
616
617
618
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
619
              minimum: 1
620
        206:
621
          description: >
622
623
            206 PARTIAL CONTENT

624
625
626
627
628
629
630
631
632
            On success, if the NFVO supports range requests,
            a single consecutive byte range from the content of
            the NSD file is returned.
            The response body shall contain the requested part
            of the NSD 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.
633
          $ref: "../responses/SOL005_resp.yaml#/responses/206"
634
        400:
635
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
636
        401:
637
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
638
        403:
639
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
640
        404:
641
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
642
        405:
643
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
644
        406:
645
646
647
648
649
650
651
652
653
654
          description: >
            406 NOT ACCEPTABLE

            If the "Accept" header does not contain at least one
            name of a content type for which the NFVO can
            provide a representation of the NSD, the NFVO
            shall respond with this response code.
            The "ProblemDetails" structure may be included
            with the "detail" attribute providing more information
            about the error.
655
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
656
        409:
657
          description: >
658
659
            409 CONFLICT

660
661
662
663
664
665
666
667
668
            Shall be returned upon the following error: The
            operation cannot be executed currently, due to a
            conflict with the state of the resource.
            Typically, this is due to the fact
            "nsdOnboardingState" has a value different from
            ONBOARDED.
            The response body shall contain a ProblemDetails
            structure, in which the "detail" attribute shall convey
            more information about the error.
669
          $ref: "../responses/SOL005_resp.yaml#/responses/409"
670
        416:
671
          description: >
672
673
            416 RANGE NOT SATISFIABLE

674
675
            The byte range passed in the "Range" header did
            not match any available byte range in the NSD file
676
            (e.g. "access after end of file").
677
678
            The response body may contain a ProblemDetails
            structure.
679
          $ref: "../responses/SOL005_resp.yaml#/responses/416"
680
        500:
681
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
682
        503:
683
          $ref: "../responses/SOL005_resp.yaml#/responses/503"
684
685
        504:
          $ref: "../responses/SOL005_resp.yaml#/responses/504"
686

687
    put:
688
      summary: Upload the content of a NSD.
689
      description: >
690
691
692
693
694
695
696
697
698
699
        The PUT method is used to upload the content of a NSD.
        The NSD to be uploaded can be implemented as a single file or as a collection of multiple files, as defined in
        clause 5.4.4.3.2. If the NSD is implemented in the form of multiple files, a ZIP file embedding these files shall be
        uploaded. If the NSD is implemented as a single file, either that file or a ZIP file embedding that file shall be uploaded.
        ETSI
        47 ETSI GS NFV-SOL 005 V2.6.1 (2019-04)
        The "Content-Type" HTTP header in the PUT request shall be set accordingly based on the format selection of the
        NSD:
        • If the NSD to be uploaded is a text file, the "Content-Type" header is set to "text/plain".
        • If the NSD to be uploaded is a zip file, the "Content-Type" header is set to "application/zip".
700
      parameters:
701
702
703
704
705
706
707
708
709
710
711
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
            The payload body contains a copy of the file representing the NSD
            or a ZIP file that contains the file or multiple files representing the NSD.
          in: header
          required: true
          type: string
          enum:
            - text/plain
            - application/zip
712
713
      responses:
        202:
714
          description: >
715
            202 ACCEPTED
716

717
718
719
720
            The NSD content has been accepted for uploading,
            but the processing has not been completed. It is
            expected to take some time for processing
            (asynchronous mode).
721
            The response body shall be empty.
722
723
724
725
726
            The client can track the uploading progress by
            receiving the "NsdOnBoardingNotification" and
            "NsdOnBoardingFailureNotification" from the NFVO
            or by reading the status of the individual NS descriptor
            resource using the GET method.
727
728
729
730
731
732
733
          headers:
            Content-Type:
              description: The MIME type of the body of the response.
              type: string
              maximum: 1
              minimum: 1
            WWW-Authenticate:
734
              type: string
735
736
              description: >
                Challenge if the corresponding HTTP request has not provided
737
738
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
739
740
              maximum: 1
              minimum: 0
741
742
743
744
745
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
746
              minimum: 1
747
        204:
748
          description: >
749
            204 NO CONTENT
750

751
752
            The NSD content successfully uploaded and
            validated (synchronous mode).
753
            The response body shall be empty.
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
          headers:
            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
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
              minimum: 1
769
        400:
770
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
771
        401:
772
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
773
        403:
774
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
775
        404:
776
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
777
        405:
778
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
779
        406:
780
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
781
        409:
782
          description: >
783
784
            409 CONFLICT

785
786
787
788
789
790
791
792
            Error: The operation cannot be executed currently,
            due to a conflict with the state of the resource.
            Typically, this is due to the fact that the
            NsdOnboardingState has a value other than
            CREATED.
            The response body shall contain a ProblemDetails
            structure, in which the "detail" attribute shall convey
            more information about the error.
793
          $ref: "../responses/SOL005_resp.yaml#/responses/409"
794
        500:
795
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
796
        503:
797
          $ref: "../responses/SOL005_resp.yaml#/responses/503"
798
799
        504:
          $ref: "../responses/SOL005_resp.yaml#/responses/504"
800
801
802
803

  ###############################################################################
  # PNF Descriptors                                                             #
  ###############################################################################
804
  '/pnf_descriptors':
805
    #ETSI GS NFV-SOL 005 V2.4.1 location: 5.4.5
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
    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

    post:
      summary: Create a new PNF descriptor resource.
      description: >
        The POST method is used to create a new PNF descriptor resource
      parameters:
        - 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: CreatePnfdInfoRequest
          in: body
          required: true
          schema:
            $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/CreatePnfdInfoRequest"
            description: >
              Parameters of creating a PNF descriptor resource.
      responses:
        201:
          description: >
            201 CREATED

852
853
            A PNF descriptor resource has been created
            successfully, as a new PNF descriptor resource.
854
855
856
            The response body shall contain a representation of
            the new PNF descriptor resource, as defined in
            clause 5.5.2.5.
857
858
859
            The HTTP response shall include a "Location"
            HTTP header that contains the resource URI of the
            new PNF descriptor resource.
860
861
862
863
864
865
866
867
868
869
870
871
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
          schema:
            $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/PnfdInfo"
          headers:
            Content-Type:
              type: string
              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:
              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
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
              minimum: 1
        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"
        500:
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
        503:
          $ref: "../responses/SOL005_resp.yaml#/responses/503"
899
900
        504:
          $ref: "../responses/SOL005_resp.yaml#/responses/504"
901

902
    get:
903
      summary: Query information about multiple PNF descriptor resources.
904
      description: >
905
906
        "The GET method queries information about multiple PNF descriptor
        resources."
907
      parameters:
908
909
910
911
912
        - name: filter
          in: query
          required: false
          type: string
          description: >
913
            Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV-SOL 013.
914
915
916
            The NFVO shall support receiving this filtering parameter as part
            of the URI query string. The OSS/BSS may supply this parameter.
            All attribute names that appear in the PnfdInfo and in data types
917
            referenced from it shall be supported by the NFVO in the filter expression.
918
919
920
921
922
        - name: all_fields
          in: query
          required: false
          type: string
          description: >
923
            Include all complex attributes in the response. See clause 5.3 of ETSI GS NFV-SOL 013 for details.
924
925
926
927
928
929
            The NFVO shall support this parameter.
        - name: fields
          in: query
          required: false
          type: string
          description: >
930
            Complex attributes to be included into the response. See clause 5.3 of ETSI GS NFV-SOL 013 for
931
932
933
934
935
936
            details. The NFVO should support this parameter.
        - name: exclude_fields
          in: query
          required: false
          type: string
          description: >
937
            Complex attributes to be excluded from the response. See clause 5.3 of ETSI GS NFV-SOL 013 for
938
939
940
941
942
943
944
            details. The NFVO should support this parameter.
        - name: exclude_default
          in: query
          required: false
          type: string
          description: >
            Indicates to exclude the following complex attributes from the response. See
945
            clause 5.3 of ETSI GS NFV-SOL 013 for details. The NFVO shall support this parameter.
946
947
948
949
950
951
952
953
954
955
            The following attributes shall be excluded from the PnfdInfo structure in the
            response body if this parameter is provided, or none of the parameters
            "all_fields," "fields", "exclude_fields", "exclude_default" are provided:
            userDefinedData.
        - name: nextpage_opaque_marker
          in: query
          type: string
          required: false
          description: >
            Marker to obtain the next page of a paged response. Shall be supported by the NFVO
956
957
            if the NFVO supports alternative 2 (paging) according to clause 5.4.2.1 of
            ETSI GS NFV-SOL 013 for this resource.
958
959
      responses:
        200:
960
          description: >
961
            200 OK
962

963
            Information about zero or more PNF descriptors.
964
965
966
967
968
969
970
971
            The response body shall contain in an array the
            representations of zero or more PNF descriptors, as
            defined in clause 5.5.2.5.
            If the NFVO supports alternative 2 (paging) according
            to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for
            this resource, inclusion of the Link HTTP header in
            this response shall follow the provisions in clause
            5.4.2.3 of ETSI GS NFV-SOL 013.
972
973
          headers:
            Content-Type:
974
975
976
977
              description: The MIME type of the body of the response.
              type: string
              maximum: 1
              minimum: 1
978
            WWW-Authenticate:
979
              type<