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

3
info:
4
5
  version: "1.2.0"
  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
externalDocs:
19
20
  description: ETSI GS NFV-SOL 005 V2.5.1
  url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.05.01_60/gs_NFV-SOL005v020501p.pdf
21
basePath: /nsd/v1
22
schemes:
23
  - http
24
  - https
25
consumes:
26
  - application/json
27
produces:
28
  - application/json
29
paths:
30
31
32
33
  ###############################################################################
  # API Versions                                                                #
  ###############################################################################
  '/api-versions':
34
    $ref: '../endpoints/SOL005_endpoints.yaml#/endpoints/api-versions'
35

36
37
38
  ###############################################################################
  # NS Descriptors                                                              #
  ###############################################################################
39
  '/ns_descriptors':
40
    #ETSI GS NFV-SOL 005 V2.4.1 location: 5.4.2
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
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
93
94
95
96
97
98
99
100
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
    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: >
        The POST method is used to create a new NS descriptor resource or a new version of an on-boarded NS descriptor.
      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

            An NS descriptor resource was 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.
          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"
131

132
    get:
133
      summary: Query information about multiple NS descriptor resources.
134
135
      description: >
        The GET method queries information about multiple NS descriptor resources.
136
        This method shall follow the provisions specified in the
137
        Tables 5.4.2.3.2-1 and 5.4.2.3.2-2 for URI query parameters,
138
        request and response data structures, and response codes.
139
      parameters:
140
141
        - name: filter
          in: query
142
          required: false
143
144
          type: string
          description: >
145
            Attribute-based filtering expression according to clause 4.3.2.
146
147
148
149
            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.
150
151
        - name: all_fields
          in: query
152
          required: false
153
154
155
          type: string
          description: >
            Include all complex attributes in the response. See clause 4.3.3 for details.
156
            The NFVO shall support this parameter.
157
158
        - name: fields
          in: query
159
          required: false
160
161
162
163
164
165
          type: string
          description: >
            Complex attributes to be included into the response. See clause 4.3.3 for
            details. The NFVO should support this parameter.
        - name: exclude_fields
          in: query
166
          required: false
167
168
169
170
171
172
          type: string
          description: >
            Complex attributes to be excluded from the response. See clause 4.3.3 for
            details. The NFVO should support this parameter.
        - name: exclude_default
          in: query
173
          required: false
174
175
          type: string
          description: >
176
177
178
179
180
            Indicates to exclude the following complex attributes from the response. See clause 4.3.3 for details.
            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.
181
182
183
184
185
186
187
        - name: nextpage_opaque_marker
          in: query
          description: >
            Marker to obtain the next page of a paged response. Shall be supported by the NFVO
            if the NFVO supports alternative 2 (paging) according to clause 4.7.2.1 for this resource.
          required: false
          type: string
188
189
190
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
191
            Reference: IETF RFC 7231.
192
          in: header
193
          required: true
194
          type: string
195
196
      responses:
        200:
197
          description: >
198
            200 OK
199

200
            Information about zero or more NS descriptors.
201
202
203
204
            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 4.7.2.1 for this resource,
            inclusion of the Link HTTP header in this response shall follow the provisions in clause 4.7.2.3.
205
206
          headers:
            Content-Type:
207
              description: The MIME type of the body of the response.
208
209
210
              type: string
              maximum: 1
              minimum: 1
211
            WWW-Authenticate:
212
              type: string
213
214
              description: >
                Challenge if the corresponding HTTP request has not provided
215
216
217
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
              maximum: 1
218
219
220
221
222
223
              minimum: 0
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
224
              minimum: 1
225
226
227
228
229
230
            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
231
232
233
          schema:
            type: array
            items:
234
              $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdInfo"
235
        400:
236
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
237
        401:
238
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
239
        403:
240
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
241
        404:
242
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
243
        405:
244
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
245
        406:
246
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
247
        500:
248
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
249
        503:
250
          $ref: "../responses/SOL005_resp.yaml#/responses/503"
251
252
253
254

  ###############################################################################
  # Individual NS Descriptor                                                    #
  ###############################################################################
255
  '/ns_descriptors/{nsdInfoId}':
256
257
    #ETSI GS NFV-SOL 005 V2.4.1 location: 5.4.3
    parameters:
258
      - name: nsdInfoId
259
260
        description: >
          Identifier of the individual NS descriptor resource.
261
        in: path
262
        required: true
263
        type: string
264
265
266
267
268
269
270
271
272
273
274
275
276
      - 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
277

278
    get:
279
      summary: Read information about an individual NS descriptor resource.
280
281
      description: >
        The GET method reads information about an individual NS descriptor.
282
283
        This method shall follow the provisions specified in GS NFV-SOL 005 Tables
        5.4.3.3.2-1 and 5.4.3.3.2-2 of GS NFV-SOL 005 for URI query parameters,
284
        request and response data structures, and response codes.
285
      parameters:
286
287
288
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
289
            Reference: IETF RFC 7231.
290
291
292
          in: header
          required: true
          type: string
293
294
      responses:
        200:
295
296
          description: >
            200 OK
297

298
            Information about the individual NS descriptor.
299
300
            The response body shall contain a representation of the individual NS descriptor,
            as defined in clause 5.5.2.2.
301
          schema:
302
            $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdInfo"
303
          headers:
304
            Content-Type:
305
              type: string
306
307
308
              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.
309
            WWW-Authenticate:
310
              type: string
311
312
              description: >
                Challenge if the corresponding HTTP request has not provided
313
314
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
315
316
              maximum: 1
              minimum: 0
317
318
319
320
321
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
322
              minimum: 1
323
        400:
324
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
325
        401:
326
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
327
        403:
328
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
329
        404:
330
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
331
        405:
332
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
333
        406:
334
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
335
        500:
336
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
337
        503:
338
339
          $ref: "../responses/SOL005_resp.yaml#/responses/503"

340
    patch:
341
      summary: Modify the operational state and/or the user defined data of an individual NS descriptor resource.
342
      description: >
343
        The PATCH method modifies the operational state and/or user defined
344
345
346
347
348
349
350
351
        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 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 changes a result.
        3) Modify the user defined data of an individual NS descriptor resource.
352
      parameters:
353
        - name: NsdInfoModifications
354
355
356
          in: body
          required: true
          schema:
357
            $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdInfoModifications"
358
359
360
361
362
363
364
365
366
367
            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:
368
        200:
369
          description: >
370
            200 OK
371

372
            The operation was completed successfully.
373
374
            The response body shall contain attribute modifications for an 'Individual NS Descriptor'
            resource (see clause 5.5.2.6).
375
376
          headers:
            Content-Type:
377
378
379
380
              description: The MIME type of the body of the response.
              type: string
              maximum: 1
              minimum: 1
381
            WWW-Authenticate:
382
              type: string
383
384
              description: >
                Challenge if the corresponding HTTP request has not provided
385
386
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
387
388
              maximum: 1
              minimum: 0
389
390
391
392
393
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
394
              minimum: 1
395
          schema:
396
            $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdInfoModifications"
397
        400:
398
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
399
        401:
400
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
401
        403:
402
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
403
        404:
404
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
405
        405:
406
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
407
        406:
408
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
409
        409:
410
411
412
413
414
415
          description: >
            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
            more information about the error.
416
          $ref: "../responses/SOL005_resp.yaml#/responses/409"
417
        412:
418
          $ref: "../responses/SOL005_resp.yaml#/responses/412"
419
        500:
420
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
421
        503:
422
          $ref: "../responses/SOL005_resp.yaml#/responses/503"
423

424
    delete:
425
      summary: Delete an individual NS descriptor resource.
426
      description: >
427
428
429
430
431
432
433
434
        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.
435
            Reference: IETF RFC 7235.
436
437
          in: header
          required: false
438
439
440
441
442
          type: string
        - name: Version
          description: >
            Version of the API requested to use when responding to this request.
          in: header
443
          required: true
444
          type: string
445
446
      responses:
        204:
447
          description: >
448
            204 No Content
449

450
451
452
453
            The operation has completed successfully.
            The response body shall be empty.
          headers:
            WWW-Authenticate:
454
              type: string
455
456
              description: >
                Challenge if the corresponding HTTP request has not provided
457
458
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
459
460
              maximum: 1
              minimum: 0
461
462
463
464
465
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
466
              minimum: 1
467
        400:
468
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
469
        401:
470
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
471
        403:
472
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
473
        404:
474
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
475
        405:
476
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
477
        406:
478
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
479
        409:
480
481
482
483
484
485
486
          description: >
            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.
487
          $ref: "../responses/SOL005_resp.yaml#/responses/409"
488
        500:
489
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
490
        503:
491
          $ref: "../responses/SOL005_resp.yaml#/responses/503"
492
493
494
495

  ###############################################################################
  # NSD Content                                                                 #
  ###############################################################################
496
  '/ns_descriptors/{nsdInfoId}/nsd_content':
497
498
    #ETSI GS NFV-SOL 005 V2.4.1 location: 5.4.4
    parameters:
499
500
      - name: nsdInfoId
        in: path
501
        required: true
502
        type: string
503
504
505
506
507
508
509
510
511
512
513
514
515
516
      - 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

517
    get:
518
      summary: Fetch the content of a NSD.
519
      description: >
520
521
522
        The GET method fetches the content of the NSD.
        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
523
524
525
526
527
528
529
530
531
532
533
        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.NOTE: The structure
534
        of the NSD zip file is outside the scope of the present document.
535
      parameters:
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
        - 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)."
556
557
      responses:
        200:
558
          description: >
559
            200 OK
560

561
562
563
564
565
566
567
568
569
            On success, the content of the NSD is returned.
            The payload body shall contain a copy of the file
            representing the NSD or a ZIP file that contains the file
            or multiple files representing the NSD, 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.
570
571
          headers:
            Content-Type:
572
573
574
575
              description: The MIME type of the body of the response.
              type: string
              maximum: 1
              minimum: 1
576
            WWW-Authenticate:
577
              type: string
578
579
              description: >
                Challenge if the corresponding HTTP request has not provided
580
581
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
582
583
              maximum: 1
              minimum: 0
584
585
586
587
588
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
589
              minimum: 1
590
        206:
591
592
593
594
595
596
          description: >
            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.
597
          $ref: "../responses/SOL005_resp.yaml#/responses/206"
598
        400:
599
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
600
        401:
601
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
602
        403:
603
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
604
        404:
605
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
606
        405:
607
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
608
        406:
609
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
610
        409:
611
612
613
614
615
          description: >
            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.
616
          $ref: "../responses/SOL005_resp.yaml#/responses/409"
617
        416:
618
619
620
621
          description: >
            The byte range passed in the "Range" header did not match any available byte range in the NSD file
            (e.g. "access after end of file").
            The response body may contain a ProblemDetails structure.
622
          $ref: "../responses/SOL005_resp.yaml#/responses/416"
623
        500:
624
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
625
        503:
626
          $ref: "../responses/SOL005_resp.yaml#/responses/503"
627

628
    put:
629
      summary: Upload the content of a NSD.
630
      description: >
631
632
        "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
633
634
635
636
637
        multiple files, as defined in clause 5.4.4.3.2 of GS NFV-SOL 005. 
        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. The "Content-Type"
638
        HTTP header in the PUT request shall be set accordingly based on the format
639
640
641
642
643
644
        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". 
        This method shall follow the provisions specified in the Tables 5.4.4.3.3-1 and 5.4.4.3.3-2
645
646
        of GS-NFV-SOL 005 for URI query parameters, request and response data structures,
        and response codes."
647
      parameters:
648
649
650
651
652
653
654
655
656
657
658
        - 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
659
660
      responses:
        202:
661
          description: >
662
            202 ACCEPTED
663

664
665
666
            The NSD content was accepted for uploading, but the processing has not been completed.
            It is expected to take some time for processing (asynchronous mode).
            The response body shall be empty.
667

668
669
670
            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.
671
672
673
674
675
676
677
          headers:
            Content-Type:
              description: The MIME type of the body of the response.
              type: string
              maximum: 1
              minimum: 1
            WWW-Authenticate:
678
              type: string
679
680
              description: >
                Challenge if the corresponding HTTP request has not provided
681
682
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
683
684
              maximum: 1
              minimum: 0
685
686
687
688
689
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
690
              minimum: 1
691
        204:
692
          description: >
693
            204 NO CONTENT
694

695
696
            The NSD content was successfully uploaded and validated (synchronous mode). 
            The response body shall be empty.
697
        400:
698
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
699
        401:
700
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
701
        403:
702
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
703
        404:
704
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
705
        405:
706
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
707
        406:
708
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
709
        409:
710
711
712
713
714
          description: >
            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.
715
          $ref: "../responses/SOL005_resp.yaml#/responses/409"
716
        500:
717
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
718
        503:
719
          $ref: "../responses/SOL005_resp.yaml#/responses/503"
720
721
722
723

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

            A PNF descriptor resource was created successfully, as a new PNF descriptor resource.
            The response body shall contain a representation of
            the new PNF descriptor resource, as defined in
            clause 5.5.2.5.
            The HTTP response shall include a "Location" HTTP
            header that contains the resource URI of the new
            PNF descriptor resource.            
          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"
818

819
    get:
820
      summary: Query information about multiple PNF descriptor resources.
821
      description: >
822
823
        "The GET method queries information about multiple PNF descriptor
        resources."
824
      parameters:
825
826
827
828
829
        - name: filter
          in: query
          required: false
          type: string
          description: >
830
831
832
833
            Attribute-based filtering expression according to clause 4.3.2.
            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
834
            referenced from it shall be supported by the NFVO in the filter expression.
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
        - name: all_fields
          in: query
          required: false
          type: string
          description: >
            Include all complex attributes in the response. See clause 4.3.3 for details.
            The NFVO shall support this parameter.
        - name: fields
          in: query
          required: false
          type: string
          description: >
            Complex attributes to be included into the response. See clause 4.3.3 for
            details. The NFVO should support this parameter.
        - name: exclude_fields
          in: query
          required: false
          type: string
          description: >
            Complex attributes to be excluded from the response. See clause 4.3.3 for
            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
            clause 4.3.3 for details. The NFVO shall support this parameter.
            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
            if the NFVO supports alternative 2 (paging) according to clause 4.7.2.1 for this resource.
874
875
      responses:
        200:
876
          description: >
877
            200 OK
878

879
880
881
882
            Information about zero or more PNF descriptors.
            The response body shall contain a representation of
            zero or more PNF descriptors, as defined in
            clause 5.5.2.2
883
884
          headers:
            Content-Type:
885
886
887
888
              description: The MIME type of the body of the response.
              type: string
              maximum: 1
              minimum: 1
889
            WWW-Authenticate:
890
              type: string
891
892
              description: >
                Challenge if the corresponding HTTP request has not provided
893
894
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
895
896
              maximum: 1
              minimum: 0
897
898
899
900
901
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
902
              minimum: 1
903
904
905
906
907
908
            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
909
          schema:
910
911
            description: >
              Information about zero or more PNF descriptors.
912
              The response body shall contain a representation in an array the representations
913
914
915
              of zero or more PNF descriptors, as defined in clause  5.5.2.2.
              If the NFVO supports alternative 2 (paging) according to clause 4.7.2.1 for this resource,
              inclusion of the Link HTTP header in this response shall follow the provisions in clause 4.7.2.3.
916
            type: array
917
            items:
918
              $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/PnfdInfo"
919
        400:
920
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
921
        401:
922
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
923
        403:
924
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
925
        404:
926
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
927
        405:
928
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
929
        406:
930
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
931
        500:
932
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
933
        503:
934
935
          $ref: "../responses/SOL005_resp.yaml#/responses/503"

936
937
938
  ###############################################################################
  # Individual PNF Descriptor                                                   #
  ###############################################################################
939
  '/pnf_descriptors/{pnfdInfoId}':
940
941
    #ETSI GS NFV-SOL 005 V2.4.1 location: 5.4.6
    parameters:
942
      - name: pnfdInfoId
943
944
        description: >
          Identifier of the individual PNF descriptor resource.
945
        in: path
946
        required: true
947
        type: string
948

949
    get:
950
      summary: Read an individual PNFD resource.
951
      description: >
952
        The GET method reads information about an individual PNF descriptor.
953
954
        This method shall follow the provisions specified in the Tables 5.4.6.3.2-1
        and 5.4.6.3.2-2 of GS NFV-SOL 005 for URI query parameters, request and
955
956
        response data structures, and response codes.
      parameters:
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
        - name: Accept
          in: header
          required: true
          type: string
          description: >
            Content-Types that are acceptable for the response. This header
            field shall be present if the response is expected to have a non-empty
            message body.
        - name: Authorization
          in: header
          required: false
          type: string
          description: >
            The authorization token for the request. Details are specified
            in clause 4.5.3 of GS NFV-SOL 005.
        - name: Version
          description: >
            Version of the API requested to use when responding to this request.
          in: header
          required: true
          type: string
978
979
      responses:
        200:
980
          description: >
981
            200 OK
982

983
            Information about the individual PNFD descriptor.
984
            The response body shall contain a representation of
985
            the individual PNF descriptor.