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

info:
Giacomo Bernini's avatar
Giacomo Bernini committed
4
  version: "1.1.0-impl:etsi.org:ETSI_NFV_OpenAPI:2"
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.6.1
  url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.06.01_60/gs_NFV-SOL005v020601p.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
  ###############################################################################
  # API Versions                                                                #
  ###############################################################################
Giacomo Bernini's avatar
Giacomo Bernini committed
39
  '/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
            Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV-SOL 013.
155
156
            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
          type: string
          description: >
164
165
166
            Include all complex attributes in the response. See clause 5.3 of ETSI GS NFV-SOL 013
            for details. The NFVO shall support this parameter.
        - name: fields
167
          in: query
168
          required: false
169
170
          type: string
          description: >
171
172
173
            Complex attributes to be included into the response. See clause 5.3 of ETSI GS NFV-SOL 013
            for details. The NFVO should support this parameter.
        - name: exclude_fields
174
          in: query
175
          required: false
176
177
          type: string
          description: >
178
179
            Complex attributes to be excluded from the response. See clause 5.3 of ETSI GS NFV-SOL 013
            for details. The NFVO should support this parameter.
180
181
        - 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
            See clause 5.3 of ETSI GS NFV-SOL 013 for details. The NFVO shall support this 
            parameter.
188
189
190
            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:
191
192
193
194
            reports.
        - name: nextpage_opaque_marker
          description: >
            Marker to obtain the next page of a paged response. Shall be supported by the NFVO
195
196
            if the NFVO supports alternative 2 (paging) according to clause 5.4.2.1 of 
            ETSI GS NFV-SOL 013 for this resource.
197
198
199
          in: query
          required: false
          type: string
200
201
202
203
204
205
206
207
208
209
210
211
212
        - 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
213
          type: string
214
      responses:
rameshnaraya's avatar
rameshnaraya committed
215
216
        200:
          description: >
217
            200 OK
218

219
220
            Shall be returned when information about zero or more PM jobs has been queried successfully.
            The response body shall contain in an array the representations of
221
            zero or more PM jobs, as defined in clause 7.5.2.7.
222
223
224
225
226
227
228
229
230
231

            If the "filter" URI parameter or one of the "all_fields", "fields", "include_fields",
            "exclude_fields" or "exclude_default" URI parameters was supplied in the request and is
            supported, the data in the response body shall have been transformed according to the 
            rules specified in clauses 5.2.2 and 5.3.2 of ETSI GS NFV SOL 013, respectively.
            
            If the NFVO supports alternative 2 (paging) according to clause 5.4.2.1 of 
            ETSI GS NFV SOL 013 for this resource, inclusion of the Link HTTP header 
            in this response shall follow the provisions in clause 5.4.2.3 of 
            ETSI GS NFV SOL 013.
232
          headers:
rameshnaraya's avatar
rameshnaraya committed
233
234
235
236
237
238
            Content-Type:
              description: The MIME type of the body of the response.
              type: string
              maximum: 1
              minimum: 1
            WWW-Authenticate:
239
              type: string
rameshnaraya's avatar
rameshnaraya committed
240
241
              description: >
                Challenge if the corresponding HTTP request has not provided
242
243
244
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
              maximum: 1
245
246
247
248
249
250
251
252
253
254
255
256
257
              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
258
259
260
          schema:
            type: array
            items:
261
              $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/PmJob"
262
        400:
263
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
264
        401:
265
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
266
        403:
267
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
268
269
        404:
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
270
        405:
271
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
272
        406:
273
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
274
        500:
275
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
276
        503:
277
          $ref: "../responses/SOL005_resp.yaml#/responses/503"
278
279
280
281

  ###############################################################################
  # Individual PM job                                                           #
  ###############################################################################
282
283
284
285
286
287
  '/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
288
289
290
          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.          
291
292
293
        in: path
        type: string
        required: true
294
295
296
297
298
299
300
301
302
303
304
305
306
      - 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
307

308
    get:
rameshnaraya's avatar
rameshnaraya committed
309
      summary: Read a single PM job.
310
311
312
313
314
315
      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.
316
            Reference: IETF RFC 7231.
317
318
319
320
321
          in: header
          required: true
          type: string
      responses:
        200:
322
323
          description: >
            200 OK
324

325
326
            Shall be returned when information about an individual 
            PM job has been queried successfully.
327
328
            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
329
          schema:
330
            $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/PmJob"
331
          headers:
rameshnaraya's avatar
rameshnaraya committed
332
            Content-Type:
333
              type: string
rameshnaraya's avatar
rameshnaraya committed
334
335
336
              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.
337
            WWW-Authenticate:
338
              type: string
339
340
              description: >
                Challenge if the corresponding HTTP request has not provided
rameshnaraya's avatar
rameshnaraya committed
341
342
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
343
344
              maximum: 1
              minimum: 0
345
346
347
348
349
350
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
              minimum: 1
351
        400:
352
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
353
        401:
354
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
355
        403:
356
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
357
358
        404:
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
359
        405:
360
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
361
        406:
362
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
363
        500:
364
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
365
        503:
366
367
          $ref: "../responses/SOL005_resp.yaml#/responses/503"

368
    delete:
rameshnaraya's avatar
rameshnaraya committed
369
      summary: Delete a PM job.
370
371
      description: >
        This method terminates an individual PM job.
372
373
374
375
376
        This method shall follow the provisions specified in the Tables 7.4.3.3.5-1 
        and 7.4.3.3.5-2 for URI query parameters, request and response data structures, 
        and response codes. 
        As the result of successfully executing this method, the "Individual PM job" 
        resource shall not exist any longer.
377
378
      responses:
        204:
379
          description: >
380
            204 NO CONTENT
381

382
            Shall be returned when the PM job has been deleted successfully.
383
384
385
            The response body shall be empty.
          headers:
            WWW-Authenticate:
386
              type: string
387
388
              description: >
                Challenge if the corresponding HTTP request has not provided
389
390
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
391
392
              maximum: 1
              minimum: 0
393
394
395
396
397
398
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
              minimum: 1
399
        400:
400
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
401
        401:
402
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
403
        403:
404
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
405
406
        404:
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
407
        405:
408
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
409
        406:
410
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
411
        500:
412
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
413
        503:
414
          $ref: "../responses/SOL005_resp.yaml#/responses/503"
415

416
417
418
  ###############################################################################
  # Individual performance report                                               #
  ###############################################################################
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
  '/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
434
435
436
437
438
439
440
441
442
443
444
445
446
      - 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
447

448
    get:
rameshnaraya's avatar
rameshnaraya committed
449
      summary: Read an individual performance report.
450
451
452
453
454
455
456
      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.
457
            Reference: IETF RFC 7231.
458
459
460
461
462
          in: header
          required: true
          type: string
      responses:
        200:
463
464
465
          description: >
            200 OK

466
467
468
469
            Shall be returned when information of an individual performance 
            report has been 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
470
          schema:
471
            $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/PerformanceReport"
472
          headers:
rameshnaraya's avatar
rameshnaraya committed
473
            Content-Type:
474
              type: string
rameshnaraya's avatar
rameshnaraya committed
475
476
477
              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.
478
            WWW-Authenticate:
479
              type: string
480
481
              description: >
                Challenge if the corresponding HTTP request has not provided
rameshnaraya's avatar
rameshnaraya committed
482
483
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
484
485
              maximum: 1
              minimum: 0
486
487
488
489
490
491
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
              minimum: 1
492
        400:
493
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
494
        401:
495
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
496
        403:
497
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
498
499
        404:
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
500
        405:
501
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
502
        406:
503
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
504
        500:
505
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
506
        503:
507
          $ref: "../responses/SOL005_resp.yaml#/responses/503"
508

509
510
511
  ###############################################################################
  # Thresholds                                                                  #
  ###############################################################################
512
  '/thresholds':
513
    #ETSI GS NFV-SOL 005 V2.4.1 location: 7.4.5
514
515
516
517
518
519
520
521
522
523
524
525
526
527
    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
528

529
    post:
rameshnaraya's avatar
rameshnaraya committed
530
      summary: Create a threshold.
531
      description: >
532
        The POST method can be used by the client to create a threshold.
533

534
535
        This method shall follow the provisions specified in the 
        table 7.4.5.3.1-2 for URI query parameters,
536
537
538
539
540
        request and response data structures, and response codes.  
        
        As the result of successfully executing this method, a new 
        "Individual threshold" resource shall exist as defined 
        in clause 7.4.6.      
541
      parameters:
542
543
544
545
        - name: CreateThresholdRequest
          in: body
          required: true
          schema:
546
            $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/CreateThresholdRequest"
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
            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
563
564
      responses:
        201:
565
          description: >
566
            201 CREATED
567

568
            Shall be returned when a threshold has been created successfully.
569
570
571
572
573
            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
574
          schema:
575
            $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/Threshold"
576
          headers:
rameshnaraya's avatar
rameshnaraya committed
577
            Content-Type:
578
              type: string
rameshnaraya's avatar
rameshnaraya committed
579
580
581
582
              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.
583
            WWW-Authenticate:
584
              type: string
585
586
              description: >
                Challenge if the corresponding HTTP request has not provided
rameshnaraya's avatar
rameshnaraya committed
587
588
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
589
590
              maximum: 1
              minimum: 0
591
592
593
594
595
596
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
              minimum: 1
597
        400:
598
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
599
        401:
600
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
601
        403:
602
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
603
604
        404:
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
605
        405:
606
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
607
        406:
608
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
609
        500:
610
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
611
        503:
612
613
          $ref: "../responses/SOL005_resp.yaml#/responses/503"

614
    get:
615
      summary: Query thresholds.
616
617
618
      description: >
        The client can use this method to query information about thresholds.
      parameters:
619
620
        - name: filter
          in: query
621
          required: false
622
623
          type: string
          description: >
624
            Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV-SOL 013.
625
626
627
628
            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.
629
630
631
632
633
634
        - 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
635
636
            if the NFVO supports alternative 2 (paging) according to clause 5.4.2.1 of 
            ETSI GS NFV SOL 013for this resource.
637
638
639
640
641
642
643
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
            Reference: IETF RFC 7231
          in: header
          required: true
          type: string
644
645
      responses:
        200:
rameshnaraya's avatar
rameshnaraya committed
646
          description: >
647
            200 OK
648

649
650
651
652
653
654
655
656
657
658
659
            Shall be returned when information about zero or more thresholds was queried 
            successfully.
            If the "filter" URI parameter was supplied in the request, the data in the 
            response body shall have been transformed according to the rules specified 
            in clause 5.2.2 of ETSI GS NFV-SOL 013.
            The response body shall contain representations of zero or more thresholds,
            as defined in clause 7.5.2.9.
            If the NFVO supports alternative 2 (paging) according to clause 5.4.2.1 of 
            ETSI GS NFV SOL 013 for this resource, inclusion of the Link HTTP header 
            in this response shall follow the provisions in clause 5.4.2.3 of 
            ETSI GS NFV SOL 013.
660
          headers:
rameshnaraya's avatar
rameshnaraya committed
661
662
            Content-Type:
              description: The MIME type of the body of the response.
663
              type: string
rameshnaraya's avatar
rameshnaraya committed
664
665
              maximum: 1
              minimum: 1
666
            WWW-Authenticate:
667
              type: string
668
669
              description: >
                Challenge if the corresponding HTTP request has not provided
670
671
672
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
              maximum: 1
673
674
675
676
677
678
679
680
681
682
683
684
685
              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
686
687
          schema:
            type: array
rameshnaraya's avatar
rameshnaraya committed
688
            items:
689
              $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/Threshold"
690
        400:
691
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
692
        401:
693
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
694
        403:
695
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
696
697
        404:
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
698
        405:
699
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
700
        406:
701
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
702
        500:
703
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
704
        503:
705
          $ref: "../responses/SOL005_resp.yaml#/responses/503"
706
707
708
709

  ###############################################################################
  # Individual threshold                                                        #
  ###############################################################################
710
  '/thresholds/{thresholdId}':
711
712
    #ETSI GS NFV-SOL 005 V2.4.1 location: 7.4.6
    parameters:
713
714
715
716
717
718
719
720
721
722
      - 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
723
724
725
726
727
728
729
730
731
732
733
734
735
      - 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
736

737
    get:
rameshnaraya's avatar
rameshnaraya committed
738
      summary: Query a single threshold.
739
740
      description: >
        The client can use this method for reading an individual threshold.
rameshnaraya's avatar
rameshnaraya committed
741
742
743
        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.
744
745
746
747
748
749
750
751
752
753
      parameters:
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
            Reference: IETF RFC 7231
          in: header
          required: true
          type: string
      responses:
        200:
754
755
          description: >
            200 OK
756

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

800
    delete:
rameshnaraya's avatar
rameshnaraya committed
801
      summary: Delete a threshold.
802
803
      description: >
        This method allows to delete a threshold.
804
805
806
        
        As the result of successfully executing this method, the 
        "Individual threshold" resource shall not exist any longer.
807
808
809
810
811
812
813
814
815
816
      parameters:
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
            Reference: IETF RFC 7231
          in: header
          required: true
          type: string
      responses:
        204:
817
          description: >
moscatelli's avatar
moscatelli committed
818
            204 NO CONTENT
819

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

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

874
    post:
rameshnaraya's avatar
rameshnaraya committed
875
      summary: Subscribe to PM notifications.
876
877
878
879
      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.
880
881
        As the result of successfully executing this method, a new "Individual subscription" resource shall exist as defined 
        in clause 7.4.8. This method shall not trigger any notification.
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: