NSPerformanceManagement.yaml 53 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
  ###############################################################################
  # API Versions                                                                #
  ###############################################################################
  '/api-versions':
34
    $ref: '../endpoints/SOL005_endpoints.yaml#/endpoints/api-versions'
35

36
37
38
  ###############################################################################
  # PM Jobs                                                                     #
  ###############################################################################
39
40
  '/pm_jobs':
    #ETSI GS NFV-SOL 005 V2.4.1 location: 7.4.2
41
42
43
44
45
46
47
48
49
50
51
52
53
54
    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
55

56
    post:
rameshnaraya's avatar
rameshnaraya committed
57
      summary: Create a PM job.
58
59
60
61
62
      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.
63
      parameters:
64
65
66
67
        - name: CreatePmJobRequest
          in: body
          required: true
          schema:
68
            $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/CreatePmJobRequest"
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
            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:
86
        201:
87
          description: >
88
            201 CREATED
89

90
91
92
93
94
            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.          
95
          schema:
96
            $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/PmJob"
rameshnaraya's avatar
rameshnaraya committed
97
98
          headers:
            Content-Type:
99
              type: string
rameshnaraya's avatar
rameshnaraya committed
100
101
102
103
104
              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:
105
              type: string
rameshnaraya's avatar
rameshnaraya committed
106
107
108
              description: >
                Challenge if the corresponding HTTP request has not provided
                authorization, or error details if the corresponding HTTP request
109
110
                has provided an invalid authorization token.
              maximum: 1
111
112
113
114
115
116
117
              minimum: 0
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
              minimum: 1
118
        400:
119
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
120
        401:
121
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
122
        403:
123
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
124
        404:
125
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
126
        405:
127
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
128
        406:
129
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
130
        500:
131
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
132
        503:
133
          $ref: "../responses/SOL005_resp.yaml#/responses/503"
134
135

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

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

  ###############################################################################
  # Individual PM job                                                           #
  ###############################################################################
261
262
263
264
265
266
  '/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
267
268
269
          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.          
270
271
272
        in: path
        type: string
        required: true
273
274
275
276
277
278
279
280
281
282
283
284
285
      - 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
286

287
    get:
rameshnaraya's avatar
rameshnaraya committed
288
      summary: Read a single PM job.
289
290
291
292
293
294
      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.
295
            Reference: IETF RFC 7231.
296
297
298
299
300
          in: header
          required: true
          type: string
      responses:
        200:
301
302
          description: >
            200 OK
303

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

346
    delete:
rameshnaraya's avatar
rameshnaraya committed
347
      summary: Delete a PM job.
348
349
350
351
      description: >
        This method terminates an individual PM job.
      responses:
        204:
352
          description: >
353
            204 NO CONTENT
354

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

389
390
391
  ###############################################################################
  # Individual performance report                                               #
  ###############################################################################
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
  '/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
407
408
409
410
411
412
413
414
415
416
417
418
419
      - 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
420

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

482
483
484
  ###############################################################################
  # Thresholds                                                                  #
  ###############################################################################
485
  '/thresholds':
486
    #ETSI GS NFV-SOL 005 V2.4.1 location: 7.4.5
487
488
489
490
491
492
493
494
495
496
497
498
499
500
    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
501

502
    post:
rameshnaraya's avatar
rameshnaraya committed
503
      summary: Create a threshold.
504
      description: >
505
        The POST method can be used by the client to create a threshold.
506

507
508
509
        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.        
510
      parameters:
511
512
513
514
        - name: CreateThresholdRequest
          in: body
          required: true
          schema:
515
            $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/CreateThresholdRequest"
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
            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
532
533
      responses:
        201:
534
          description: >
535
            201 CREATED
536

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

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

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

  ###############################################################################
  # Individual threshold                                                        #
  ###############################################################################
670
  '/thresholds/{thresholdId}':
671
672
    #ETSI GS NFV-SOL 005 V2.4.1 location: 7.4.6
    parameters:
673
674
675
676
677
678
679
680
681
682
      - 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
683
684
685
686
687
688
689
690
691
692
693
694
695
      - 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
696

697
    get:
rameshnaraya's avatar
rameshnaraya committed
698
      summary: Query a single threshold.
699
700
      description: >
        The client can use this method for reading an individual threshold.
rameshnaraya's avatar
rameshnaraya committed
701
702
703
        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.
704
705
706
707
708
709
710
711
712
713
      parameters:
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
            Reference: IETF RFC 7231
          in: header
          required: true
          type: string
      responses:
        200:
714
715
          description: >
            200 OK
716

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

759
    delete:
rameshnaraya's avatar
rameshnaraya committed
760
      summary: Delete a threshold.
761
762
763
764
765
766
767
768
769
770
771
772
      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:
773
          description: >
774
            204 No Content
775

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

810
811
812
  ###############################################################################
  # Subscriptions                                                               #
  ###############################################################################
813
814
  '/subscriptions':
    #ETSI GS NFV-SOL 005 V2.4.1 location: 7.4.7
815
816
817
818
819
820
821
822
823
824
825
826
827
828
    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
829

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

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

918
    get:
919
      summary: Query PM related subscriptions.
920
      description: >
rameshnaraya's avatar
rameshnaraya committed
921
922
923
924
        The client can use this method to query the list of active subscriptions to Performance management notifications
        subscribed by the client.
        This method shall follow the provisions specified in the Tables 7.4.7.3.2-1 and 7.4.7.3.2-2 for URI query parameters,
        request and response data structures, and response codes.
925
      parameters:
926
927
        - name: filter
          in: query
928
          required: false
929
930
          type: string
          description: >
931
932
933
934
            Attribute-based filtering expression according to clause 4.3.2.
            The NFVO shall support receiving