NSPerformanceManagement.yaml 55 KB
Newer Older
1
2
3
swagger: "2.0"

info:
4
5
  version: "1.2.0"
  title: "SOL005 - NS Performance Management Interface"
6
  description: >
rameshnaraya's avatar
rameshnaraya committed
7
    SOL005 - NS Performance Management Interface
8
9
10
11
12
13
    IMPORTANT: Please note that this file might be not aligned to the current
    version of the ETSI Group Specification it refers to and has not been
    approved by the ETSI NFV ISG. In case of discrepancies the published ETSI
    Group Specification takes precedence.
    Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis
  license:
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: /nspm/v1
22
schemes:
23
  - http
24
25
  - https
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
  ###############################################################################
  # PM Jobs                                                                     #
  ###############################################################################
85
86
  '/pm_jobs':
    #ETSI GS NFV-SOL 005 V2.4.1 location: 7.4.2
87
88
89
90
91
92
93
94
95
96
97
98
99
100
    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
101

102
    post:
rameshnaraya's avatar
rameshnaraya committed
103
      summary: Create a PM job.
104
105
106
107
108
      description: >
        The POST method creates a PM job.
        This method shall follow the provisions specified in the 
        Tables 7.4.2.3.1-1 and 7.4.2.3.1-2 for URI query parameters,
        request and response data structures, and response codes.
109
      parameters:
110
111
112
113
        - name: CreatePmJobRequest
          in: body
          required: true
          schema:
114
            $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/CreatePmJobRequest"
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
            description: >
              The VNF creation 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
      responses:
132
        201:
133
          description: >
134
            201 CREATED
135

136
137
138
139
140
            The PM job was created successfully.
            The response body shall contain a representation of
            the created PM job resource, as defined in clause 7.5.2.7.
            The HTTP response shall include a "Location" HTTP
            header that points to the created PM job resource.          
141
          schema:
142
            $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/PmJob"
rameshnaraya's avatar
rameshnaraya committed
143
144
          headers:
            Content-Type:
145
              type: string
rameshnaraya's avatar
rameshnaraya committed
146
147
148
149
150
              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:
151
              type: string
rameshnaraya's avatar
rameshnaraya committed
152
153
154
              description: >
                Challenge if the corresponding HTTP request has not provided
                authorization, or error details if the corresponding HTTP request
155
156
                has provided an invalid authorization token.
              maximum: 1
157
158
159
160
161
162
163
              minimum: 0
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
              minimum: 1
164
        400:
165
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
166
        401:
167
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
168
        403:
169
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
170
        404:
171
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
172
        405:
173
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
174
        406:
175
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
176
        500:
177
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
178
        503:
179
          $ref: "../responses/SOL005_resp.yaml#/responses/503"
180
181

    get:
rameshnaraya's avatar
rameshnaraya committed
182
      summary: Query PM jobs.
183
184
      description: >
        The client can use this method to retrieve information about PM jobs.
185
      parameters:
186
187
        - name: filter
          in: query
188
          required: false
189
190
          type: string
          description: >
191
192
193
            Attribute-based filtering expression according to clause 4.3.2.
            The NFVO shall support receiving this parameter as part of the URI query string.
            The OSS/BSS may supply this parameter.
194
            All attribute names that appear in the PmJob and in data types referenced from it
195
            shall be supported by the NFVO in the filter expression.
196
197
        - name: all_fields
          in: query
198
          required: false
199
200
201
202
203
204
          type: string
          description: >
            Include all complex attributes in the response. See clause 4.3.3 for details. The
            NFVO shall support this parameter.
        - name: include
          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
          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
222
          type: string
          description: >
            Indicates to exclude the following complex attributes from the response.
223
224
225
226
            See clause 4.3.3 for details. The NFVO shall support this parameter.
            The following attributes shall be excluded from the PmJob structure in the response
            body if this parameter is provided, or none of the parameters "all_fields," "fields",
            "exclude_fields", "exclude_default" are provided:
227
228
229
230
231
232
233
234
            reports.
        - name: nextpage_opaque_marker
          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.
          in: query
          required: false
          type: string
235
236
237
238
239
240
241
242
243
244
245
246
247
        - 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
248
          type: string
249
      responses:
rameshnaraya's avatar
rameshnaraya committed
250
251
        200:
          description: >
252
            200 OK
253

rameshnaraya's avatar
rameshnaraya committed
254
            Information about zero or more PM jobs was queried successfully.
255
            The response body shall contain representations of
256
            zero or more PM jobs, as defined in clause 7.5.2.7.
257
          headers:
rameshnaraya's avatar
rameshnaraya committed
258
259
260
261
262
263
            Content-Type:
              description: The MIME type of the body of the response.
              type: string
              maximum: 1
              minimum: 1
            WWW-Authenticate:
264
              type: string
rameshnaraya's avatar
rameshnaraya committed
265
266
              description: >
                Challenge if the corresponding HTTP request has not provided
267
268
269
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
              maximum: 1
270
271
272
273
274
275
276
277
278
279
280
281
282
              minimum: 0
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
              minimum: 1
            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
rameshnaraya's avatar
rameshnaraya committed
283
284
285
          schema:
            type: array
            items:
286
              $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/PmJob"
287
        400:
288
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
289
        401:
290
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
291
        403:
292
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
293
294
        404:
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
295
        405:
296
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
297
        406:
298
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
299
        500:
300
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
301
        503:
302
          $ref: "../responses/SOL005_resp.yaml#/responses/503"
303
304
305
306

  ###############################################################################
  # Individual PM job                                                           #
  ###############################################################################
307
308
309
310
311
312
  '/pm_jobs/{pmJobId}':
    #ETSI GS NFV-SOL 005 V2.4.1 location: 7.4.3
    parameters:
      - name: pmJobId
        description: >
          Identifier of the PM job.
rameshnaraya's avatar
rameshnaraya committed
313
314
315
          This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response
          to a POST request creating a new PM job resource. It can also be retrieved from the "id" attribute in the
          payload body of that response.          
316
317
318
        in: path
        type: string
        required: true
319
320
321
322
323
324
325
326
327
328
329
330
331
      - name: Authorization
        description: >
          The authorization token for the request.
          Reference: IETF RFC 7235.
        in: header
        required: true
        type: string
      - name: Version
        description: >
          Version of the API requested to use when responding to this request.
        in: header
        required: true
        type: string
332

333
    get:
rameshnaraya's avatar
rameshnaraya committed
334
      summary: Read a single PM job.
335
336
337
338
339
340
      description: >
        The client can use this method for reading an individual PM job.
      parameters:
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
341
            Reference: IETF RFC 7231.
342
343
344
345
346
          in: header
          required: true
          type: string
      responses:
        200:
347
348
          description: >
            200 OK
349

350
351
352
            Information about an individual PM job was queried successfully.
            The response body shall contain a representation of
            the PM job resource, as defined in clause 7.5.2.7.            
rameshnaraya's avatar
rameshnaraya committed
353
          schema:
354
            $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/PmJob"
355
          headers:
rameshnaraya's avatar
rameshnaraya committed
356
            Content-Type:
357
              type: string
rameshnaraya's avatar
rameshnaraya committed
358
359
360
              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.
361
            WWW-Authenticate:
362
              type: string
363
364
              description: >
                Challenge if the corresponding HTTP request has not provided
rameshnaraya's avatar
rameshnaraya committed
365
366
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
367
368
              maximum: 1
              minimum: 0
369
370
371
372
373
374
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
              minimum: 1
375
        400:
376
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
377
        401:
378
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
379
        403:
380
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
381
382
        404:
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
383
        405:
384
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
385
        406:
386
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
387
        500:
388
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
389
        503:
390
391
          $ref: "../responses/SOL005_resp.yaml#/responses/503"

392
    delete:
rameshnaraya's avatar
rameshnaraya committed
393
      summary: Delete a PM job.
394
395
396
397
      description: >
        This method terminates an individual PM job.
      responses:
        204:
398
          description: >
399
            204 NO CONTENT
400

401
402
403
404
            The PM job was deleted successfully.
            The response body shall be empty.
          headers:
            WWW-Authenticate:
405
              type: string
406
407
              description: >
                Challenge if the corresponding HTTP request has not provided
408
409
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
410
411
              maximum: 1
              minimum: 0
412
413
414
415
416
417
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
              minimum: 1
418
        400:
419
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
420
        401:
421
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
422
        403:
423
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
424
425
        404:
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
426
        405:
427
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
428
        406:
429
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
430
        500:
431
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
432
        503:
433
          $ref: "../responses/SOL005_resp.yaml#/responses/503"
434

435
436
437
  ###############################################################################
  # Individual performance report                                               #
  ###############################################################################
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
  '/pm_jobs/{pmJobId}/reports/{reportId}':
    #ETSI GS NFV-SOL 005 V2.4.1 location: 7.4.4
    parameters:
      - name: pmJobId
        description: >
          Identifier of the PM job.
        in: path
        type: string
        required: true
      - name: reportId
        description: >
          Identifier of the performance report.
        in: path
        type: string
        required: true
453
454
455
456
457
458
459
460
461
462
463
464
465
      - name: Authorization
        description: >
          The authorization token for the request.
          Reference: IETF RFC 7235.
        in: header
        required: true
        type: string
      - name: Version
        description: >
          Version of the API requested to use when responding to this request.
        in: header
        required: true
        type: string
466

467
    get:
rameshnaraya's avatar
rameshnaraya committed
468
      summary: Read an individual performance report.
469
470
471
472
473
474
475
      description: >
        The client can use this method for reading an individual performance
        report.
      parameters:
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
476
            Reference: IETF RFC 7231.
477
478
479
480
481
          in: header
          required: true
          type: string
      responses:
        200:
482
483
484
485
486
487
488
          description: >
            200 OK

            Information of an individual performance report was read successfully.
            The response body shall contain a representation of
            the performance report resource, as defined in
            clause 7.5.2.10.
rameshnaraya's avatar
rameshnaraya committed
489
          schema:
490
            $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/PerformanceReport"
491
          headers:
rameshnaraya's avatar
rameshnaraya committed
492
            Content-Type:
493
              type: string
rameshnaraya's avatar
rameshnaraya committed
494
495
496
              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.
497
            WWW-Authenticate:
498
              type: string
499
500
              description: >
                Challenge if the corresponding HTTP request has not provided
rameshnaraya's avatar
rameshnaraya committed
501
502
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
503
504
              maximum: 1
              minimum: 0
505
506
507
508
509
510
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
              minimum: 1
511
        400:
512
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
513
        401:
514
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
515
        403:
516
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
517
518
        404:
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
519
        405:
520
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
521
        406:
522
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
523
        500:
524
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
525
        503:
526
          $ref: "../responses/SOL005_resp.yaml#/responses/503"
527

528
529
530
  ###############################################################################
  # Thresholds                                                                  #
  ###############################################################################
531
  '/thresholds':
532
    #ETSI GS NFV-SOL 005 V2.4.1 location: 7.4.5
533
534
535
536
537
538
539
540
541
542
543
544
545
546
    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
547

548
    post:
rameshnaraya's avatar
rameshnaraya committed
549
      summary: Create a threshold.
550
      description: >
551
        The POST method can be used by the client to create a threshold.
552

553
554
555
        This method shall follow the provisions specified in the 
        table 7.4.5.3.1-2 for URI query parameters,
        request and response data structures, and response codes.        
556
      parameters:
557
558
559
560
        - name: CreateThresholdRequest
          in: body
          required: true
          schema:
561
            $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/CreateThresholdRequest"
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
            description: >
              Request parameters to create a threshold resource.
        - 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
578
579
      responses:
        201:
580
          description: >
581
            201 CREATED
582

583
584
585
586
587
588
            A threshold was created successfully.
            The response body shall contain a representation of
            the created threshold resource, as defined in clause 7.5.2.9.
            The HTTP response shall include a "Location" HTTP
            header that contains the resource URI of the created
            threshold resource.            
rameshnaraya's avatar
rameshnaraya committed
589
          schema:
590
            $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/Threshold"
591
          headers:
rameshnaraya's avatar
rameshnaraya committed
592
            Content-Type:
593
              type: string
rameshnaraya's avatar
rameshnaraya committed
594
595
596
597
              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.
598
            WWW-Authenticate:
599
              type: string
600
601
              description: >
                Challenge if the corresponding HTTP request has not provided
rameshnaraya's avatar
rameshnaraya committed
602
603
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
604
605
              maximum: 1
              minimum: 0
606
607
608
609
610
611
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
              minimum: 1
612
        400:
613
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
614
        401:
615
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
616
        403:
617
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
618
619
        404:
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
620
        405:
621
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
622
        406:
623
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
624
        500:
625
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
626
        503:
627
628
          $ref: "../responses/SOL005_resp.yaml#/responses/503"

629
    get:
630
      summary: Query thresholds.
631
632
633
      description: >
        The client can use this method to query information about thresholds.
      parameters:
634
635
        - name: filter
          in: query
636
          required: false
637
638
          type: string
          description: >
639
640
641
642
643
            Attribute-based filtering expression according to clause 4.3.2.
            The NFVO shall support receiving this parameter as part of the URI query string.
            The OSS/BSS may supply this parameter.
            All attribute names that appear in the Thresholds data type and in data types referenced from it
            shall be supported by the NFVO in the filter expression.
644
645
646
647
648
649
650
        - name: nextpage_opaque_marker
          in: query
          required: false
          type: string
          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.
651
652
653
654
655
656
657
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
            Reference: IETF RFC 7231
          in: header
          required: true
          type: string
658
659
      responses:
        200:
rameshnaraya's avatar
rameshnaraya committed
660
          description: >
661
            200 OK
662

rameshnaraya's avatar
rameshnaraya committed
663
            Information about zero or more thresholds was queried successfully.
664
            The response body shall contain representations of
rameshnaraya's avatar
rameshnaraya committed
665
            zero or more thresholds, as defined in clause 7.5.2.9.
666
          headers:
rameshnaraya's avatar
rameshnaraya committed
667
668
            Content-Type:
              description: The MIME type of the body of the response.
669
              type: string
rameshnaraya's avatar
rameshnaraya committed
670
671
              maximum: 1
              minimum: 1
672
            WWW-Authenticate:
673
              type: string
674
675
              description: >
                Challenge if the corresponding HTTP request has not provided
676
677
678
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
              maximum: 1
679
680
681
682
683
684
685
686
687
688
689
690
691
              minimum: 0
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
              minimum: 1
            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
692
693
          schema:
            type: array
rameshnaraya's avatar
rameshnaraya committed
694
            items:
695
              $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/Threshold"
696
        400:
697
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
698
        401:
699
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
700
        403:
701
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
702
703
        404:
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
704
        405:
705
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
706
        406:
707
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
708
        500:
709
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
710
        503:
711
          $ref: "../responses/SOL005_resp.yaml#/responses/503"
712
713
714
715

  ###############################################################################
  # Individual threshold                                                        #
  ###############################################################################
716
  '/thresholds/{thresholdId}':
717
718
    #ETSI GS NFV-SOL 005 V2.4.1 location: 7.4.6
    parameters:
719
720
721
722
723
724
725
726
727
728
      - name: thresholdId
        description: >
          Identifier of the threshold.
          This identifier can be retrieved from the resource referenced by the
          "Location" HTTP header in the response to a POST request creating a
          new threshold resource. It can also be retrieved from the "id"
          attribute in the payload body of that response.
        in: path
        type: string
        required: true
729
730
731
732
733
734
735
736
737
738
739
740
741
      - name: Authorization
        description: >
          The authorization token for the request.
          Reference: IETF RFC 7235
        in: header
        required: true
        type: string
      - name: Version
        description: >
          Version of the API requested to use when responding to this request.
        in: header
        required: true
        type: string
742

743
    get:
rameshnaraya's avatar
rameshnaraya committed
744
      summary: Query a single threshold.
745
746
      description: >
        The client can use this method for reading an individual threshold.
rameshnaraya's avatar
rameshnaraya committed
747
748
749
        This method shall follow the provisions specified in the 
        Tables 7.4.6.3.2-1 and 7.4.6.3.2-2 for URI query parameters,
        request and response data structures, and response codes.
750
751
752
753
754
755
756
757
758
759
      parameters:
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
            Reference: IETF RFC 7231
          in: header
          required: true
          type: string
      responses:
        200:
760
761
          description: >
            200 OK
762

763
764
765
            Information about an individual threshold was queried successfully.
            The response body shall contain a representation of
            the threshold, as defined in clause 7.5.2.9.            
rameshnaraya's avatar
rameshnaraya committed
766
          schema:
767
            $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/Threshold"
768
          headers:
rameshnaraya's avatar
rameshnaraya committed
769
            Content-Type:
770
              type: string
rameshnaraya's avatar
rameshnaraya committed
771
772
773
              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.
774
            WWW-Authenticate:
775
              type: string
776
777
              description: >
                Challenge if the corresponding HTTP request has not provided
rameshnaraya's avatar
rameshnaraya committed
778
779
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
780
781
              maximum: 1
              minimum: 0
782
783
784
785
786
787
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
              minimum: 1
788
        400:
789
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
790
        401:
791
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
792
        403:
793
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
794
795
        404:
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
796
        405:
797
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
798
        406:
799
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
800
        500:
801
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
802
        503:
803
804
          $ref: "../responses/SOL005_resp.yaml#/responses/503"

805
    delete:
rameshnaraya's avatar
rameshnaraya committed
806
      summary: Delete a threshold.
807
808
809
810
811
812
813
814
815
816
817
818
      description: >
        This method allows to delete a threshold.
      parameters:
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
            Reference: IETF RFC 7231
          in: header
          required: true
          type: string
      responses:
        204:
819
          description: >
820
            204 No Content
821

822
823
824
825
            The threshold was deleted successfully.
            The response body shall be empty.
          headers:
            WWW-Authenticate:
826
              type: string
827
828
              description: >
                Challenge if the corresponding HTTP request has not provided
829
830
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
831
832
              maximum: 1
              minimum: 0
833
834
835
836
837
838
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
              minimum: 1
839
        400:
840
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
841
        401:
842
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
843
        403:
844
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
845
846
        404:
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
847
        405:
848
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
849
        406:
850
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
851
        500:
852
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
853
        503:
854
855
          $ref: "../responses/SOL005_resp.yaml#/responses/503"

856
857
858
  ###############################################################################
  # Subscriptions                                                               #
  ###############################################################################
859
860
  '/subscriptions':
    #ETSI GS NFV-SOL 005 V2.4.1 location: 7.4.7
861
862
863
864
865
866
867
868
869
870
871
872
873
874
    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
875

876
    post:
rameshnaraya's avatar
rameshnaraya committed
877
      summary: Subscribe to PM notifications.
878
879
880
881
      description: >
        The POST method creates a new subscription.
        This method shall follow the provisions specified in the Tables 7.4.7.3.1-1 and 7.4.7.3.1-2 for URI query parameters,
        request and response data structures, and response codes.
rameshnaraya's avatar
rameshnaraya committed
882
883
        Creation of two subscription resources with the same callbackURI and the same filter can result in performance
        degradation and will provide duplicates of notifications to the OSS, and might make sense only in very rare use cases.
884
        Consequently, the NFVO may either allow creating a subscription resource if another subscription resource with the
rameshnaraya's avatar
rameshnaraya committed
885
886
887
        same filter and callbackUri already exists (in which case it shall return the "201 Created" response code), or may decide
        to not create a duplicate subscription resource (in which case it shall return a "303 See Other" response code referencing
        the existing subscription resource with the same filter and callbackUri)
888
      parameters:
889
890
891
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
892
            Reference: IETF RFC 7231.
893
894
895
896
897
898
          in: header
          required: true
          type: string
        - name: Content-Type
          description: >
            The MIME type of the body of the request.
899
            Reference: IETF RFC 7231.
900
901
902
903
904
905
906
          in: header
          required: true
          type: string
        - name: body
          in: body
          required: true
          schema:
907
            $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/PmSubscriptionRequest"
908
909
            description: >
              Details of the subscription to be created.
910
911
      responses:
        201:
912
          description: >
913
            201 CREATED
914

915
916
917
918
919
            The subscription was created successfully.
            A representation of the created subscription resource
            shall be returned in the response body, as defined in clause 7.5.2.3.
            The HTTP response shall include a "Location" HTTP
            header that contains the resource URI of the created subscription resource.            
rameshnaraya's avatar
rameshnaraya committed
920
          schema:
921
            $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/PmSubscription"
922
          headers:
rameshnaraya's avatar
rameshnaraya committed
923
            Content-Type:
924
              type: string
rameshnaraya's avatar
rameshnaraya committed
925
926
927
928
929
              description: >
                The MIME type of the body of the response.This header
                field shall be present if the response has a non-empty message
                body.
              maximum: 1
930
              minimum: 1
931
            WWW-Authenticate:
932
              type: string
933
934
              description: >
                Challenge if the corresponding HTTP request has not provided
rameshnaraya's avatar
rameshnaraya committed
935
936
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
937
              maximum: 1
938
939
940
941
942
943
944
              minimum: 0
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
              minimum: 1
945
        303:
946
          $ref: "../responses/SOL005_resp.yaml#/responses/303"
947
        400:
948
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
949
        401:
950
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
951
        403:
952
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
953
954
        404:
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
955
        405:
956
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
957
        406:
958
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
959
        500:
960
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
961
        503:
962
963
          $ref: "../responses/SOL005_resp.yaml#/responses/503"

964
    get:
965
      summary: Query PM related subscriptions.
966
      description: >
rameshnaraya's avatar