NSDManagement.yaml 105 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
34
35
36
37
38
39
40
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
  ###############################################################################
  # API Versions                                                                #
  ###############################################################################
  '/api-versions':
    get:
      summary: Retrieve API version information
      description: >
        The GET method reads API version information. This method shall follow the provisions specified in
        table 4.6.3.3.3.2-1 for request and response data structures, and response codes. URI query parameters are not
        supported.
      parameters:
        - name: Version
          description: >
            Version of the API requested to use when responding to this request.
          in: header
          required: false
          type: string
      responses:
        200:
          description: >
            200 OK
            
            API version information was read successfully.
            The response body shall contain API version information, as defined in clause 4.4.1.7.
          schema:
            $ref: '../definitions/SOL005_def.yaml#/definitions/ApiVersionInformation'
          headers:
            Content-Type:
              description: The MIME type of the body of the response.
              type: string
              maximum: 1
              minimum: 1
            Version:
              description: The used API version.
              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' }
        413: { $ref: '../responses/SOL005_resp.yaml#/responses/413' }
        414: { $ref: '../responses/SOL005_resp.yaml#/responses/414' }
        416: { $ref: '../responses/SOL005_resp.yaml#/responses/416' }
        422: { $ref: '../responses/SOL005_resp.yaml#/responses/422' }
        429: { $ref: '../responses/SOL005_resp.yaml#/responses/429' }
        500: { $ref: '../responses/SOL005_resp.yaml#/responses/500' }
        503: { $ref: '../responses/SOL005_resp.yaml#/responses/503' }
        504: { $ref: '../responses/SOL005_resp.yaml#/responses/504' }

82
83
84
  ###############################################################################
  # NS Descriptors                                                              #
  ###############################################################################
85
  '/ns_descriptors':
86
    #ETSI GS NFV-SOL 005 V2.4.1 location: 5.4.2
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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
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
    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"
177

178
    get:
179
      summary: Query information about multiple NS descriptor resources.
180
181
      description: >
        The GET method queries information about multiple NS descriptor resources.
182
        This method shall follow the provisions specified in the
183
        Tables 5.4.2.3.2-1 and 5.4.2.3.2-2 for URI query parameters,
184
        request and response data structures, and response codes.
185
      parameters:
186
187
        - name: filter
          in: query
188
          required: false
189
190
          type: string
          description: >
191
            Attribute-based filtering expression according to clause 4.3.2.
192
193
194
195
            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.
196
197
        - name: all_fields
          in: query
198
          required: false
199
200
201
          type: string
          description: >
            Include all complex attributes in the response. See clause 4.3.3 for details.
202
            The NFVO shall support this parameter.
203
204
        - name: fields
          in: query
205
          required: false
206
207
208
209
210
211
          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
212
          required: false
213
214
215
216
217
218
          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
219
          required: false
220
221
          type: string
          description: >
222
223
224
225
226
            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.
227
228
229
230
231
232
233
        - 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
234
235
236
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
237
            Reference: IETF RFC 7231.
238
          in: header
239
          required: true
240
          type: string
241
242
      responses:
        200:
243
          description: >
244
            200 OK
245

246
            Information about zero or more NS descriptors.
247
248
249
250
            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.
251
252
          headers:
            Content-Type:
253
              description: The MIME type of the body of the response.
254
255
256
              type: string
              maximum: 1
              minimum: 1
257
            WWW-Authenticate:
258
              type: string
259
260
              description: >
                Challenge if the corresponding HTTP request has not provided
261
262
263
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
              maximum: 1
264
265
266
267
268
269
              minimum: 0
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
270
              minimum: 1
271
272
273
274
275
276
            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
277
278
279
          schema:
            type: array
            items:
280
              $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdInfo"
281
        400:
282
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
283
        401:
284
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
285
        403:
286
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
287
        404:
288
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
289
        405:
290
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
291
        406:
292
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
293
        500:
294
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
295
        503:
296
          $ref: "../responses/SOL005_resp.yaml#/responses/503"
297
298
299
300

  ###############################################################################
  # Individual NS Descriptor                                                    #
  ###############################################################################
301
  '/ns_descriptors/{nsdInfoId}':
302
303
    #ETSI GS NFV-SOL 005 V2.4.1 location: 5.4.3
    parameters:
304
      - name: nsdInfoId
305
306
        description: >
          Identifier of the individual NS descriptor resource.
307
        in: path
308
        required: true
309
        type: string
310
311
312
313
314
315
316
317
318
319
320
321
322
      - 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
323

324
    get:
325
      summary: Read information about an individual NS descriptor resource.
326
327
      description: >
        The GET method reads information about an individual NS descriptor.
328
329
        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,
330
        request and response data structures, and response codes.
331
      parameters:
332
333
334
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
335
            Reference: IETF RFC 7231.
336
337
338
          in: header
          required: true
          type: string
339
340
      responses:
        200:
341
342
          description: >
            200 OK
343

344
            Information about the individual NS descriptor.
345
346
            The response body shall contain a representation of the individual NS descriptor,
            as defined in clause 5.5.2.2.
347
          schema:
348
            $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdInfo"
349
          headers:
350
            Content-Type:
351
              type: string
352
353
354
              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.
355
            WWW-Authenticate:
356
              type: string
357
358
              description: >
                Challenge if the corresponding HTTP request has not provided
359
360
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
361
362
              maximum: 1
              minimum: 0
363
364
365
366
367
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
368
              minimum: 1
369
        400:
370
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
371
        401:
372
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
373
        403:
374
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
375
        404:
376
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
377
        405:
378
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
379
        406:
380
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
381
        500:
382
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
383
        503:
384
385
          $ref: "../responses/SOL005_resp.yaml#/responses/503"

386
    patch:
387
      summary: Modify the operational state and/or the user defined data of an individual NS descriptor resource.
388
      description: >
389
        The PATCH method modifies the operational state and/or user defined
390
391
392
393
394
395
396
397
        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.
398
      parameters:
399
        - name: NsdInfoModifications
400
401
402
          in: body
          required: true
          schema:
403
            $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdInfoModifications"
404
405
406
407
408
409
410
411
412
413
            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:
414
        200:
415
          description: >
416
            200 OK
417

418
            The operation was completed successfully.
419
420
            The response body shall contain attribute modifications for an 'Individual NS Descriptor'
            resource (see clause 5.5.2.6).
421
422
          headers:
            Content-Type:
423
424
425
426
              description: The MIME type of the body of the response.
              type: string
              maximum: 1
              minimum: 1
427
            WWW-Authenticate:
428
              type: string
429
430
              description: >
                Challenge if the corresponding HTTP request has not provided
431
432
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
433
434
              maximum: 1
              minimum: 0
435
436
437
438
439
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
440
              minimum: 1
441
          schema:
442
            $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdInfoModifications"
443
        400:
444
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
445
        401:
446
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
447
        403:
448
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
449
        404:
450
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
451
        405:
452
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
453
        406:
454
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
455
        409:
456
457
458
459
460
461
          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.
462
          $ref: "../responses/SOL005_resp.yaml#/responses/409"
463
        412:
464
          $ref: "../responses/SOL005_resp.yaml#/responses/412"
465
        500:
466
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
467
        503:
468
          $ref: "../responses/SOL005_resp.yaml#/responses/503"
469

470
    delete:
471
      summary: Delete an individual NS descriptor resource.
472
      description: >
473
474
475
476
477
478
479
480
        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.
481
            Reference: IETF RFC 7235.
482
483
          in: header
          required: false
484
485
486
487
488
          type: string
        - name: Version
          description: >
            Version of the API requested to use when responding to this request.
          in: header
489
          required: true
490
          type: string
491
492
      responses:
        204:
493
          description: >
494
            204 No Content
495

496
497
498
499
            The operation has completed successfully.
            The response body shall be empty.
          headers:
            WWW-Authenticate:
500
              type: string
501
502
              description: >
                Challenge if the corresponding HTTP request has not provided
503
504
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
505
506
              maximum: 1
              minimum: 0
507
508
509
510
511
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
512
              minimum: 1
513
        400:
514
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
515
        401:
516
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
517
        403:
518
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
519
        404:
520
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
521
        405:
522
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
523
        406:
524
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
525
        409:
526
527
528
529
530
531
532
          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.
533
          $ref: "../responses/SOL005_resp.yaml#/responses/409"
534
        500:
535
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
536
        503:
537
          $ref: "../responses/SOL005_resp.yaml#/responses/503"
538
539
540
541

  ###############################################################################
  # NSD Content                                                                 #
  ###############################################################################
542
  '/ns_descriptors/{nsdInfoId}/nsd_content':
543
544
    #ETSI GS NFV-SOL 005 V2.4.1 location: 5.4.4
    parameters:
545
546
      - name: nsdInfoId
        in: path
547
        required: true
548
        type: string
549
550
551
552
553
554
555
556
557
558
559
560
561
562
      - 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

563
    get:
564
      summary: Fetch the content of a NSD.
565
      description: >
566
567
568
        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
569
570
571
572
573
574
575
576
577
578
579
        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
580
        of the NSD zip file is outside the scope of the present document.
581
      parameters:
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
        - 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)."
602
603
      responses:
        200:
604
          description: >
605
            200 OK
606

607
608
609
610
611
612
613
614
615
            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.
616
617
          headers:
            Content-Type:
618
619
620
621
              description: The MIME type of the body of the response.
              type: string
              maximum: 1
              minimum: 1
622
            WWW-Authenticate:
623
              type: string
624
625
              description: >
                Challenge if the corresponding HTTP request has not provided
626
627
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
628
629
              maximum: 1
              minimum: 0
630
631
632
633
634
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
635
              minimum: 1
636
        206:
637
638
639
640
641
642
          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.
643
          $ref: "../responses/SOL005_resp.yaml#/responses/206"
644
        400:
645
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
646
        401:
647
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
648
        403:
649
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
650
        404:
651
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
652
        405:
653
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
654
        406:
655
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
656
        409:
657
658
659
660
661
          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.
662
          $ref: "../responses/SOL005_resp.yaml#/responses/409"
663
        416:
664
665
666
667
          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.
668
          $ref: "../responses/SOL005_resp.yaml#/responses/416"
669
        500:
670
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
671
        503:
672
          $ref: "../responses/SOL005_resp.yaml#/responses/503"
673

674
    put:
675
      summary: Upload the content of a NSD.
676
      description: >
677
678
        "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
679
680
681
682
683
        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"
684
        HTTP header in the PUT request shall be set accordingly based on the format
685
686
687
688
689
690
        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
691
692
        of GS-NFV-SOL 005 for URI query parameters, request and response data structures,
        and response codes."
693
      parameters:
694
695
696
697
698
699
700
701
702
703
704
        - 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
705
706
      responses:
        202:
707
          description: >
708
            202 ACCEPTED
709

710
711
712
            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.
713

714
715
716
            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.
717
718
719
720
721
722
723
          headers:
            Content-Type:
              description: The MIME type of the body of the response.
              type: string
              maximum: 1
              minimum: 1
            WWW-Authenticate:
724
              type: string
725
726
              description: >
                Challenge if the corresponding HTTP request has not provided
727
728
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
729
730
              maximum: 1
              minimum: 0
731
732
733
734
735
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
736
              minimum: 1
737
        204:
738
          description: >
739
            204 NO CONTENT
740

741
742
            The NSD content was successfully uploaded and validated (synchronous mode). 
            The response body shall be empty.
743
        400:
744
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
745
        401:
746
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
747
        403:
748
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
749
        404:
750
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
751
        405:
752
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
753
        406:
754
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
755
        409:
756
757
758
759
760
          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.
761
          $ref: "../responses/SOL005_resp.yaml#/responses/409"
762
        500:
763
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
764
        503:
765
          $ref: "../responses/SOL005_resp.yaml#/responses/503"
766
767
768
769

  ###############################################################################
  # PNF Descriptors                                                             #
  ###############################################################################
770
  '/pnf_descriptors':
771
    #ETSI GS NFV-SOL 005 V2.4.1 location: 5.4.5
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
854
855
856
857
858
859
860
861
862
863
    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"
864

865
    get:
866
      summary: Query information about multiple PNF descriptor resources.
867
      description: >
868
869
        "The GET method queries information about multiple PNF descriptor
        resources."
870
      parameters:
871
872
873
874
875
        - name: filter
          in: query
          required: false
          type: string
          description: >
876
877
878
879
            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
880
            referenced from it shall be supported by the NFVO in the filter expression.
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
        - 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.
920
921
      responses:
        200:
922
          description: >
923
            200 OK
924

925
926
927
928
            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
929
930
          headers:
            Content-Type:
931
932
933
934
              description: The MIME type of the body of the response.
              type: string
              maximum: 1
              minimum: 1
935
            WWW-Authenticate:
936
              type: string
937
938
              description: >
                Challenge if the corresponding HTTP request has not provided
939
940
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
941
942
              maximum: 1
              minimum: 0
943
944
945
946
947
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
948
              minimum: 1
949
950
951
952
953
954
            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
955
          schema:
956
957
            description: >
              Information about zero or more PNF descriptors.
958
              The response body shall contain a representation in an array the representations
959
960
961
              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.
962
            type: array
963
            items:
964
              $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/PnfdInfo"
965
        400:
966
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
967
        401:
968
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
969
        403:
970
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
971
        404:
972
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
973
        405:
974
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
975
        406:
976
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
977
        500:
978
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
979
        503:
980
981
          $ref: "../responses/SOL005_resp.yaml#/responses/503"

982
983
984
  ###############################################################################
  # Individual PNF Descriptor                                                   #
  ###############################################################################
985
  '/pnf_descriptors/{pnfdInfoId}':
986
987
    #ETSI GS NFV-SOL 005 V2.4.1 location: 5.4.6
    parameters:
988
      - name: pnfdInfoId
989
990
        description: >
          Identifier of the individual PNF descriptor resource.
991
        in: path
992
        required: true
993
        type: string
994

995
    get:
996
      summary: Read an individual PNFD resource.
997
      description: >
998
        The GET method reads information about an individual PNF descriptor.
999
1000
        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
For faster browsing, not all history is shown. View entire blame