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

info:
moscatelli's avatar
moscatelli committed
4
  version: "1.1.0-impl:etsi.org:ETSI_NFV_OpenAPI:1"
5
  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"
moscatelli's avatar
moscatelli committed
18

19
externalDocs:
20
21
  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
moscatelli's avatar
moscatelli committed
22

23
basePath: /nspm/v1
moscatelli's avatar
moscatelli committed
24

25
schemes:
26
  - http
27
  - https
moscatelli's avatar
moscatelli committed
28

29
consumes:
30
  - application/json
moscatelli's avatar
moscatelli committed
31

32
produces:
33
  - application/json
moscatelli's avatar
moscatelli committed
34

35
paths:
36
37
38
39
  ###############################################################################
  # API Versions                                                                #
  ###############################################################################
  '/api-versions':
40
    $ref: '../endpoints/SOL005_endpoints.yaml#/endpoints/api-versions'
41

42
43
44
  ###############################################################################
  # PM Jobs                                                                     #
  ###############################################################################
45
46
  '/pm_jobs':
    #ETSI GS NFV-SOL 005 V2.4.1 location: 7.4.2
47
48
49
50
51
52
53
54
55
56
57
58
59
60
    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
61

62
    post:
rameshnaraya's avatar
rameshnaraya committed
63
      summary: Create a PM job.
64
65
66
67
68
      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.
69
70
71
        As the result of successfully executing this method, a new 
        "Individual PM job" resource shall exist as defined in 
        clause 7.4.3.
72
      parameters:
73
74
75
76
        - name: CreatePmJobRequest
          in: body
          required: true
          schema:
77
            $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/CreatePmJobRequest"
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
            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:
95
        201:
96
          description: >
97
            201 CREATED
98

99
            Shall be returned when the PM job has been created successfully.
100
101
102
103
            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.          
104
          schema:
105
            $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/PmJob"
rameshnaraya's avatar
rameshnaraya committed
106
107
          headers:
            Content-Type:
108
              type: string
rameshnaraya's avatar
rameshnaraya committed
109
110
111
112
113
              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:
114
              type: string
rameshnaraya's avatar
rameshnaraya committed
115
116
117
              description: >
                Challenge if the corresponding HTTP request has not provided
                authorization, or error details if the corresponding HTTP request
118
119
                has provided an invalid authorization token.
              maximum: 1
120
121
122
123
124
125
126
              minimum: 0
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
              minimum: 1
127
        400:
128
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
129
        401:
130
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
131
        403:
132
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
133
        404:
134
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
135
        405:
136
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
137
        406:
138
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
139
        500:
140
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
141
        503:
142
          $ref: "../responses/SOL005_resp.yaml#/responses/503"
143
144

    get:
rameshnaraya's avatar
rameshnaraya committed
145
      summary: Query PM jobs.
146
147
      description: >
        The client can use this method to retrieve information about PM jobs.
148
      parameters:
149
150
        - name: filter
          in: query
151
          required: false
152
153
          type: string
          description: >
154
155
156
            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.
157
            All attribute names that appear in the PmJob and in data types referenced from it
158
            shall be supported by the NFVO in the filter expression.
159
160
        - name: all_fields
          in: query
161
          required: false
162
163
164
165
166
167
          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
168
          required: false
169
170
171
172
173
174
          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
175
          required: false
176
177
178
179
180
181
          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
182
          required: false
183
184
185
          type: string
          description: >
            Indicates to exclude the following complex attributes from the response.
186
187
188
189
            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:
190
191
192
193
194
195
196
197
            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
198
199
200
201
202
203
204
205
206
207
208
209
210
        - 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
211
          type: string
212
      responses:
rameshnaraya's avatar
rameshnaraya committed
213
214
        200:
          description: >
215
            200 OK
216

rameshnaraya's avatar
rameshnaraya committed
217
            Information about zero or more PM jobs was queried successfully.
218
            The response body shall contain representations of
219
            zero or more PM jobs, as defined in clause 7.5.2.7.
220
          headers:
rameshnaraya's avatar
rameshnaraya committed
221
222
223
224
225
226
            Content-Type:
              description: The MIME type of the body of the response.
              type: string
              maximum: 1
              minimum: 1
            WWW-Authenticate:
227
              type: string
rameshnaraya's avatar
rameshnaraya committed
228
229
              description: >
                Challenge if the corresponding HTTP request has not provided
230
231
232
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
              maximum: 1
233
234
235
236
237
238
239
240
241
242
243
244
245
              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
246
247
248
          schema:
            type: array
            items:
249
              $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/PmJob"
250
        400:
251
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
252
        401:
253
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
254
        403:
255
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
256
257
        404:
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
258
        405:
259
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
260
        406:
261
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
262
        500:
263
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
264
        503:
265
          $ref: "../responses/SOL005_resp.yaml#/responses/503"
266
267
268
269

  ###############################################################################
  # Individual PM job                                                           #
  ###############################################################################
270
271
272
273
274
275
  '/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
276
277
278
          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.          
279
280
281
        in: path
        type: string
        required: true
282
283
284
285
286
287
288
289
290
291
292
293
294
      - 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
295

296
    get:
rameshnaraya's avatar
rameshnaraya committed
297
      summary: Read a single PM job.
298
299
300
301
302
303
      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.
304
            Reference: IETF RFC 7231.
305
306
307
308
309
          in: header
          required: true
          type: string
      responses:
        200:
310
311
          description: >
            200 OK
312

313
314
315
            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
316
          schema:
317
            $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/PmJob"
318
          headers:
rameshnaraya's avatar
rameshnaraya committed
319
            Content-Type:
320
              type: string
rameshnaraya's avatar
rameshnaraya committed
321
322
323
              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.
324
            WWW-Authenticate:
325
              type: string
326
327
              description: >
                Challenge if the corresponding HTTP request has not provided
rameshnaraya's avatar
rameshnaraya committed
328
329
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
330
331
              maximum: 1
              minimum: 0
332
333
334
335
336
337
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
              minimum: 1
338
        400:
339
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
340
        401:
341
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
342
        403:
343
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
344
345
        404:
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
346
        405:
347
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
348
        406:
349
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
350
        500:
351
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
352
        503:
353
354
          $ref: "../responses/SOL005_resp.yaml#/responses/503"

355
    delete:
rameshnaraya's avatar
rameshnaraya committed
356
      summary: Delete a PM job.
357
358
359
360
      description: >
        This method terminates an individual PM job.
      responses:
        204:
361
          description: >
362
            204 NO CONTENT
363

364
365
366
367
            The PM job was deleted successfully.
            The response body shall be empty.
          headers:
            WWW-Authenticate:
368
              type: string
369
370
              description: >
                Challenge if the corresponding HTTP request has not provided
371
372
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
373
374
              maximum: 1
              minimum: 0
375
376
377
378
379
380
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
              minimum: 1
381
        400:
382
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
383
        401:
384
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
385
        403:
386
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
387
388
        404:
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
389
        405:
390
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
391
        406:
392
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
393
        500:
394
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
395
        503:
396
          $ref: "../responses/SOL005_resp.yaml#/responses/503"
397

398
399
400
  ###############################################################################
  # Individual performance report                                               #
  ###############################################################################
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
  '/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
416
417
418
419
420
421
422
423
424
425
426
427
428
      - 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
429

430
    get:
rameshnaraya's avatar
rameshnaraya committed
431
      summary: Read an individual performance report.
432
433
434
435
436
437
438
      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.
439
            Reference: IETF RFC 7231.
440
441
442
443
444
          in: header
          required: true
          type: string
      responses:
        200:
445
446
447
448
449
450
451
          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
452
          schema:
453
            $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/PerformanceReport"
454
          headers:
rameshnaraya's avatar
rameshnaraya committed
455
            Content-Type:
456
              type: string
rameshnaraya's avatar
rameshnaraya committed
457
458
459
              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.
460
            WWW-Authenticate:
461
              type: string
462
463
              description: >
                Challenge if the corresponding HTTP request has not provided
rameshnaraya's avatar
rameshnaraya committed
464
465
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
466
467
              maximum: 1
              minimum: 0
468
469
470
471
472
473
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
              minimum: 1
474
        400:
475
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
476
        401:
477
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
478
        403:
479
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
480
481
        404:
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
482
        405:
483
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
484
        406:
485
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
486
        500:
487
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
488
        503:
489
          $ref: "../responses/SOL005_resp.yaml#/responses/503"
490

491
492
493
  ###############################################################################
  # Thresholds                                                                  #
  ###############################################################################
494
  '/thresholds':
495
    #ETSI GS NFV-SOL 005 V2.4.1 location: 7.4.5
496
497
498
499
500
501
502
503
504
505
506
507
508
509
    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
510

511
    post:
rameshnaraya's avatar
rameshnaraya committed
512
      summary: Create a threshold.
513
      description: >
514
        The POST method can be used by the client to create a threshold.
515

516
517
518
        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.        
519
      parameters:
520
521
522
523
        - name: CreateThresholdRequest
          in: body
          required: true
          schema:
524
            $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/CreateThresholdRequest"
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
            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
541
542
      responses:
        201:
543
          description: >
544
            201 CREATED
545

546
547
548
549
550
551
            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
552
          schema:
553
            $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/Threshold"
554
          headers:
rameshnaraya's avatar
rameshnaraya committed
555
            Content-Type:
556
              type: string
rameshnaraya's avatar
rameshnaraya committed
557
558
559
560
              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.
561
            WWW-Authenticate:
562
              type: string
563
564
              description: >
                Challenge if the corresponding HTTP request has not provided
rameshnaraya's avatar
rameshnaraya committed
565
566
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
567
568
              maximum: 1
              minimum: 0
569
570
571
572
573
574
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
              minimum: 1
575
        400:
576
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
577
        401:
578
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
579
        403:
580
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
581
582
        404:
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
583
        405:
584
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
585
        406:
586
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
587
        500:
588
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
589
        503:
590
591
          $ref: "../responses/SOL005_resp.yaml#/responses/503"

592
    get:
593
      summary: Query thresholds.
594
595
596
      description: >
        The client can use this method to query information about thresholds.
      parameters:
597
598
        - name: filter
          in: query
599
          required: false
600
601
          type: string
          description: >
602
603
604
605
606
            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.
607
608
609
610
611
612
613
        - 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.
614
615
616
617
618
619
620
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
            Reference: IETF RFC 7231
          in: header
          required: true
          type: string
621
622
      responses:
        200:
rameshnaraya's avatar
rameshnaraya committed
623
          description: >
624
            200 OK
625

rameshnaraya's avatar
rameshnaraya committed
626
            Information about zero or more thresholds was queried successfully.
627
            The response body shall contain representations of
rameshnaraya's avatar
rameshnaraya committed
628
            zero or more thresholds, as defined in clause 7.5.2.9.
629
          headers:
rameshnaraya's avatar
rameshnaraya committed
630
631
            Content-Type:
              description: The MIME type of the body of the response.
632
              type: string
rameshnaraya's avatar
rameshnaraya committed
633
634
              maximum: 1
              minimum: 1
635
            WWW-Authenticate:
636
              type: string
637
638
              description: >
                Challenge if the corresponding HTTP request has not provided
639
640
641
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
              maximum: 1
642
643
644
645
646
647
648
649
650
651
652
653
654
              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
655
656
          schema:
            type: array
rameshnaraya's avatar
rameshnaraya committed
657
            items:
658
              $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/Threshold"
659
        400:
660
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
661
        401:
662
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
663
        403:
664
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
665
666
        404:
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
667
        405:
668
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
669
        406:
670
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
671
        500:
672
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
673
        503:
674
          $ref: "../responses/SOL005_resp.yaml#/responses/503"
675
676
677
678

  ###############################################################################
  # Individual threshold                                                        #
  ###############################################################################
679
  '/thresholds/{thresholdId}':
680
681
    #ETSI GS NFV-SOL 005 V2.4.1 location: 7.4.6
    parameters:
682
683
684
685
686
687
688
689
690
691
      - 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
692
693
694
695
696
697
698
699
700
701
702
703
704
      - 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
705

706
    get:
rameshnaraya's avatar
rameshnaraya committed
707
      summary: Query a single threshold.
708
709
      description: >
        The client can use this method for reading an individual threshold.
rameshnaraya's avatar
rameshnaraya committed
710
711
712
        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.
713
714
715
716
717
718
719
720
721
722
      parameters:
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
            Reference: IETF RFC 7231
          in: header
          required: true
          type: string
      responses:
        200:
723
724
          description: >
            200 OK
725

726
727
728
            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
729
          schema:
730
            $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/Threshold"
731
          headers:
rameshnaraya's avatar
rameshnaraya committed
732
            Content-Type:
733
              type: string
rameshnaraya's avatar
rameshnaraya committed
734
735
736
              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.
737
            WWW-Authenticate:
738
              type: string
739
740
              description: >
                Challenge if the corresponding HTTP request has not provided
rameshnaraya's avatar
rameshnaraya committed
741
742
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
743
744
              maximum: 1
              minimum: 0
745
746
747
748
749
750
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
              minimum: 1
751
        400:
752
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
753
        401:
754
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
755
        403:
756
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
757
758
        404:
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
759
        405:
760
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
761
        406:
762
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
763
        500:
764
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
765
        503:
766
767
          $ref: "../responses/SOL005_resp.yaml#/responses/503"

768
    delete:
rameshnaraya's avatar
rameshnaraya committed
769
      summary: Delete a threshold.
770
771
772
773
774
775
776
777
778
779
780
781
      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:
782
          description: >
moscatelli's avatar
moscatelli committed
783
            204 NO CONTENT
784

785
786
787
788
            The threshold was deleted successfully.
            The response body shall be empty.
          headers:
            WWW-Authenticate:
789
              type: string
790
791
              description: >
                Challenge if the corresponding HTTP request has not provided
792
793
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
794
795
              maximum: 1
              minimum: 0
796
797
798
799
800
801
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
              minimum: 1
802
        400:
803
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
804
        401:
805
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
806
        403:
807
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
808
809
        404:
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
810
        405:
811
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
812
        406:
813
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
814
        500:
815
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
816
        503:
817
818
          $ref: "../responses/SOL005_resp.yaml#/responses/503"

819
820
821
  ###############################################################################
  # Subscriptions                                                               #
  ###############################################################################
822
823
  '/subscriptions':
    #ETSI GS NFV-SOL 005 V2.4.1 location: 7.4.7
824
825
826
827
828
829
830
831
832
833
834
835
836
837
    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
838

839
    post:
rameshnaraya's avatar
rameshnaraya committed
840
      summary: Subscribe to PM notifications.
841
842
843
844
      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
845
846
        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.
847
        Consequently, the NFVO may either allow creating a subscription resource if another subscription resource with the
rameshnaraya's avatar
rameshnaraya committed
848
849
850
        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)
851
      parameters:
852
853
854
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
855
            Reference: IETF RFC 7231.
856
857
858
859
860
861
          in: header
          required: true
          type: string
        - name: Content-Type
          description: >
            The MIME type of the body of the request.
862
            Reference: IETF RFC 7231.
863
864
865
866
867
868
869
          in: header
          required: true
          type: string
        - name: body
          in: body
          required: true
          schema:
870
            $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/PmSubscriptionRequest"
871
872
            description: >
              Details of the subscription to be created.
873
874
      responses:
        201:
875
          description: >
876
            201 CREATED
877

878
879
880
881
882
            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
883
          schema:
884
            $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/PmSubscription"
885
          headers:
rameshnaraya's avatar
rameshnaraya committed
886
            Content-Type:
887
              type: string
rameshnaraya's avatar
rameshnaraya committed
888
889
890
891
892
              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
893
              minimum: 1
894
            WWW-Authenticate:
895
              type: string
896
897
              description: >
                Challenge if the corresponding HTTP request has not provided
rameshnaraya's avatar
rameshnaraya committed
898
899
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
900
              maximum: 1
901
902
903
904
905
906
907
              minimum: 0
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
              minimum: 1
908
        303:
909
          $ref: "../responses/SOL005_resp.yaml#/responses/303"
910
        400:
911
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
912
        401:
913
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
914
        403:
915
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
916
917
        404:
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
918
        405:
919
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
920
        406:
921
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
922
        500:
923
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
924
        503:
925
926
          $ref: "../responses/SOL005_resp.yaml#/responses/503"

927
    get: