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

367
    delete:
rameshnaraya's avatar
rameshnaraya committed
368
      summary: Delete a PM job.
369
370
371
372
      description: >
        This method terminates an individual PM job.
      responses:
        204:
373
          description: >
374
            204 NO CONTENT
375

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

410
411
412
  ###############################################################################
  # Individual performance report                                               #
  ###############################################################################
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
  '/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
428
429
430
431
432
433
434
435
436
437
438
439
440
      - 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
441

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

503
504
505
  ###############################################################################
  # Thresholds                                                                  #
  ###############################################################################
506
  '/thresholds':
507
    #ETSI GS NFV-SOL 005 V2.4.1 location: 7.4.5
508
509
510
511
512
513
514
515
516
517
518
519
520
521
    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
522

523
    post:
rameshnaraya's avatar
rameshnaraya committed
524
      summary: Create a threshold.
525
      description: >
526
        The POST method can be used by the client to create a threshold.
527

528
529
530
        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.        
531
      parameters:
532
533
534
535
        - name: CreateThresholdRequest
          in: body
          required: true
          schema:
536
            $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/CreateThresholdRequest"
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
            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
553
554
      responses:
        201:
555
          description: >
556
            201 CREATED
557

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

604
    get:
605
      summary: Query thresholds.
606
607
608
      description: >
        The client can use this method to query information about thresholds.
      parameters:
609
610
        - name: filter
          in: query
611
          required: false
612
613
          type: string
          description: >
614
615
616
617
618
            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.
619
620
621
622
623
624
625
        - 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.
626
627
628
629
630
631
632
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
            Reference: IETF RFC 7231
          in: header
          required: true
          type: string
633
634
      responses:
        200:
rameshnaraya's avatar
rameshnaraya committed
635
          description: >
636
            200 OK
637

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

  ###############################################################################
  # Individual threshold                                                        #
  ###############################################################################
691
  '/thresholds/{thresholdId}':
692
693
    #ETSI GS NFV-SOL 005 V2.4.1 location: 7.4.6
    parameters:
694
695
696
697
698
699
700
701
702
703
      - 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
704
705
706
707
708
709
710
711
712
713
714
715
716
      - 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
717

718
    get:
rameshnaraya's avatar
rameshnaraya committed
719
      summary: Query a single threshold.
720
721
      description: >
        The client can use this method for reading an individual threshold.
rameshnaraya's avatar
rameshnaraya committed
722
723
724
        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.
725
726
727
728
729
730
731
732
733
734
      parameters:
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
            Reference: IETF RFC 7231
          in: header
          required: true
          type: string
      responses:
        200:
735
736
          description: >
            200 OK
737

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

780
    delete:
rameshnaraya's avatar
rameshnaraya committed
781
      summary: Delete a threshold.
782
783
784
785
786
787
788
789
790
791
792
793
      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:
794
          description: >
moscatelli's avatar
moscatelli committed
795
            204 NO CONTENT
796

797
798
799
800
            The threshold was deleted successfully.
            The response body shall be empty.
          headers:
            WWW-Authenticate:
801
              type: string
802
803
              description: >
                Challenge if the corresponding HTTP request has not provided
804
805
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
806
807
              maximum: 1
              minimum: 0
808
809
810
811
812
813
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
              minimum: 1
814
        400:
815
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
816
        401:
817
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
818
        403:
819
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
820
821
        404:
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
822
        405:
823
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
824
        406:
825
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
826
        500:
827
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
828
        503:
829
830
          $ref: "../responses/SOL005_resp.yaml#/responses/503"

831
832
833
  ###############################################################################
  # Subscriptions                                                               #
  ###############################################################################
834
835
  '/subscriptions':
    #ETSI GS NFV-SOL 005 V2.4.1 location: 7.4.7
836
837
838
839
840
841
842
843
844
845
846
847
848
849
    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
850

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

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