NSPerformanceManagement.yaml 49.5 KB
Newer Older
1
openapi: 3.0.2
2
3

info:
4
5
  title: SOL005 - NS Performance Management Interface 
  description: |
rameshnaraya's avatar
rameshnaraya committed
6
    SOL005 - NS Performance Management Interface
7

8
9
10
11
12
    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
13
14
  contact:
    name: NFV-SOL WG
15
  license:
16
    name: ETSI Forge copyright notice
17
    url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
18
  version: 2.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1
moscatelli's avatar
moscatelli committed
19

20
externalDocs:
21
22
  description: ETSI GS NFV-SOL 005 V3.3.1
  url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.06.01_60/gs_NFV-SOL005v020701p.pdf
moscatelli's avatar
moscatelli committed
23

24
25
26
servers:
  - url: http://127.0.0.1/nspm/v2
  - url: https://127.0.0.1/nspm/v2
moscatelli's avatar
moscatelli committed
27

28
paths:
29
30
31
  ###############################################################################
  # API Versions                                                                #
  ###############################################################################
32
  /api_versions:
33
    $ref: '../endpoints/SOL005_endpoints.yaml#/endpoints/api-versions'
34

35
36
37
  ###############################################################################
  # PM Jobs                                                                     #
  ###############################################################################
38
  /pm_jobs:
39
    #ETSI GS NFV-SOL 005 V2.4.1 location: 7.4.2
40
    parameters:
41
42
43
44
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Version
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept
      - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType
45

46
    post:
rameshnaraya's avatar
rameshnaraya committed
47
      summary: Create a PM job.
48
      description: |
49
50
51
52
        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.
53
        As the result of successfully executing this method, a new 
54
55
        "Individual PM job" resource exist as defined in
        clause 7.4.3 shall have been created.
56
57
      requestBody:
        $ref: '#/components/requestBodies/CreatePmJobRequest'
58
      responses:
59
        201:
60
          $ref: '#/components/responses/PMJobs.Post.201'
61
        400:
62
          $ref: "../responses/SOL005_resp.yaml#/components/responses/400"
63
        401:
64
          $ref: "../responses/SOL005_resp.yaml#/components/responses/401"
65
        403:
66
          $ref: "../responses/SOL005_resp.yaml#/components/responses/403"
67
        404:
68
          $ref: "../responses/SOL005_resp.yaml#/components/responses/404"
69
        405:
70
          $ref: "../responses/SOL005_resp.yaml#/components/responses/405"
71
        406:
72
          $ref: "../responses/SOL005_resp.yaml#/components/responses/406"
73
        500:
74
          $ref: "../responses/SOL005_resp.yaml#/components/responses/500"
75
        503:
76
          $ref: "../responses/SOL005_resp.yaml#/components/responses/503"
77
78

    get:
rameshnaraya's avatar
rameshnaraya committed
79
      summary: Query PM jobs.
80
      description: |
81
        The API consumer can use this method to retrieve information about PM jobs.
82
      parameters:
83
84
85
86
87
88
        - $ref: ../components/SOL005_params.yaml#/components/parameters/filter
        - $ref: ../components/SOL005_params.yaml#/components/parameters/all_fields
        - $ref: ../components/SOL005_params.yaml#/components/parameters/fields
        - $ref: ../components/SOL005_params.yaml#/components/parameters/exclude_fields
        - $ref: ../components/SOL005_params.yaml#/components/parameters/exclude_default
        - $ref: ../components/SOL005_params.yaml#/components/parameters/nextpage_opaque_marker
89
      responses:
rameshnaraya's avatar
rameshnaraya committed
90
        200:
91
          $ref: '#/components/responses/PMJobs.Get.200'
92
        400:
93
          $ref: "../responses/SOL005_resp.yaml#/components/responses/400"
94
        401:
95
          $ref: "../responses/SOL005_resp.yaml#/components/responses/401"
96
        403:
97
          $ref: "../responses/SOL005_resp.yaml#/components/responses/403"
98
        404:
99
          $ref: "../responses/SOL005_resp.yaml#/components/responses/404"
100
        405:
101
          $ref: "../responses/SOL005_resp.yaml#/components/responses/405"
102
        406:
103
          $ref: "../responses/SOL005_resp.yaml#/components/responses/406"
104
        500:
105
          $ref: "../responses/SOL005_resp.yaml#/components/responses/500"
106
        503:
107
          $ref: "../responses/SOL005_resp.yaml#/components/responses/503"
108
109
110
111

  ###############################################################################
  # Individual PM job                                                           #
  ###############################################################################
112
  /pm_jobs/{pmJobId}:
113
114
    #ETSI GS NFV-SOL 005 V2.4.1 location: 7.4.3
    parameters:
115
116
117
      - $ref: '#/components/parameters/PmJobId'
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Version
118

119
    get:
rameshnaraya's avatar
rameshnaraya committed
120
      summary: Read a single PM job.
121
      description: |
122
        The API consumer can use this method for reading an individual PM job.
123
      parameters:
124
        - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept
125
126
      responses:
        200:
127
          $ref: '#/components/responses/IndividualPMJob.Get.200'
128
        400:
129
          $ref: "../responses/SOL005_resp.yaml#/components/responses/400"
130
        401:
131
          $ref: "../responses/SOL005_resp.yaml#/components/responses/401"
132
        403:
133
          $ref: "../responses/SOL005_resp.yaml#/components/responses/403"
134
        404:
135
          $ref: "../responses/SOL005_resp.yaml#/components/responses/404"
136
        405:
137
          $ref: "../responses/SOL005_resp.yaml#/components/responses/405"
138
        406:
139
          $ref: "../responses/SOL005_resp.yaml#/components/responses/406"
140
        500:
141
          $ref: "../responses/SOL005_resp.yaml#/components/responses/500"
142
        503:
143
          $ref: "../responses/SOL005_resp.yaml#/components/responses/503"
144

145
146
    patch:
      summary: Modify a PM job.
147
      description: |
148
149
150
151
152
        This method allows to modify an "individual PM job" resource.
        This method shall follow the provisions specified in the
        Tables 7.4.3.3.4-1 and 7.4.3.3.4-2 for URI query parameters,
        request and response data structures, and response codes.
      parameters:
153
154
155
        - $ref: '#/components/parameters/ContentTypeMergePatchJSON'
      requestBody:
        $ref: '#/components/requestBodies/PmJobModifications'
156
157
      responses:
        200:
158
          $ref: '#/components/responses/IndividualPMJob.Patch.200'
159
        400:
160
          $ref: "../responses/SOL005_resp.yaml#/components/responses/400"
161
        401:
162
          $ref: "../responses/SOL005_resp.yaml#/components/responses/401"
163
        403:
164
          $ref: "../responses/SOL005_resp.yaml#/components/responses/403"
165
        404:
166
          $ref: "../responses/SOL005_resp.yaml#/components/responses/404"
167
        405:
168
          $ref: "../responses/SOL005_resp.yaml#/components/responses/405"
169
        406:
170
          $ref: "../responses/SOL005_resp.yaml#/components/responses/406"
171
        412:
172
          $ref: "../responses/SOL005_resp.yaml#/components/responses/412"
173
        500:
174
          $ref: "../responses/SOL005_resp.yaml#/components/responses/500"
175
        503:
176
          $ref: "../responses/SOL005_resp.yaml#/components/responses/503"
177

178
    delete:
rameshnaraya's avatar
rameshnaraya committed
179
      summary: Delete a PM job.
180
      description: |
181
        This method terminates an individual PM job.
182
183
184
185
186
        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.
187
188
      responses:
        204:
189
          $ref: '#/components/responses/IndividualPMJob.Delete.204'
190
        400:
191
          $ref: "../responses/SOL005_resp.yaml#/components/responses/400"
192
        401:
193
          $ref: "../responses/SOL005_resp.yaml#/components/responses/401"
194
        403:
195
          $ref: "../responses/SOL005_resp.yaml#/components/responses/403"
196
        404:
197
          $ref: "../responses/SOL005_resp.yaml#/components/responses/404"
198
        405:
199
          $ref: "../responses/SOL005_resp.yaml#/components/responses/405"
200
        406:
201
          $ref: "../responses/SOL005_resp.yaml#/components/responses/406"
202
        500:
203
          $ref: "../responses/SOL005_resp.yaml#/components/responses/500"
204
        503:
205
          $ref: "../responses/SOL005_resp.yaml#/components/responses/503"
206

207
208
209
  ###############################################################################
  # Individual performance report                                               #
  ###############################################################################
210
  /pm_jobs/{pmJobId}/reports/{reportId}:
211
212
    #ETSI GS NFV-SOL 005 V2.4.1 location: 7.4.4
    parameters:
213
214
215
216
      - $ref: '#/components/parameters/PmJobId'
      - $ref: '#/components/parameters/ReportId'
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Version
217

218
    get:
rameshnaraya's avatar
rameshnaraya committed
219
      summary: Read an individual performance report.
220
      description: |
221
        The API consumer can use this method for reading an individual performance
222
223
        report.
      parameters:
224
        - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept
225
226
      responses:
        200:
227
          $ref: '#/components/responses/IndividualPerformanceReport.Get.200'
228
        400:
229
          $ref: "../responses/SOL005_resp.yaml#/components/responses/400"
230
        401:
231
          $ref: "../responses/SOL005_resp.yaml#/components/responses/401"
232
        403:
233
          $ref: "../responses/SOL005_resp.yaml#/components/responses/403"
234
        404:
235
          $ref: "../responses/SOL005_resp.yaml#/components/responses/404"
236
        405:
237
          $ref: "../responses/SOL005_resp.yaml#/components/responses/405"
238
        406:
239
          $ref: "../responses/SOL005_resp.yaml#/components/responses/406"
240
        500:
241
          $ref: "../responses/SOL005_resp.yaml#/components/responses/500"
242
        503:
243
          $ref: "../responses/SOL005_resp.yaml#/components/responses/503"
244

245
246
247
  ###############################################################################
  # Thresholds                                                                  #
  ###############################################################################
248
  /thresholds:
249
    #ETSI GS NFV-SOL 005 V2.4.1 location: 7.4.5
250
    parameters:
251
252
253
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Version
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept
254

255
    post:
rameshnaraya's avatar
rameshnaraya committed
256
      summary: Create a threshold.
257
      description: |
258
259
        The POST method can be used by the API consumer to create
        a threshold.
260

261
262
        This method shall follow the provisions specified in the 
        table 7.4.5.3.1-2 for URI query parameters,
263
264
265
        request and response data structures, and response codes.  
        
        As the result of successfully executing this method, a new 
266
267
        "Individual threshold" resource as defined
        in clause 7.4.6 shall have been created.
268
      parameters:
269
270
271
        - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType
      requestBody:
        $ref: '#/components/requestBodies/CreateThresholdRequest'
272
273
      responses:
        201:
274
          $ref: '#/components/responses/Thresholds.Post.201'
275
        400:
276
          $ref: "../responses/SOL005_resp.yaml#/components/responses/400"
277
        401:
278
          $ref: "../responses/SOL005_resp.yaml#/components/responses/401"
279
        403:
280
          $ref: "../responses/SOL005_resp.yaml#/components/responses/403"
281
        404:
282
          $ref: "../responses/SOL005_resp.yaml#/components/responses/404"
283
        405:
284
          $ref: "../responses/SOL005_resp.yaml#/components/responses/405"
285
        406:
286
          $ref: "../responses/SOL005_resp.yaml#/components/responses/406"
287
        500:
288
          $ref: "../responses/SOL005_resp.yaml#/components/responses/500"
289
        503:
290
          $ref: "../responses/SOL005_resp.yaml#/components/responses/503"
291

292
    get:
293
      summary: Query thresholds.
294
      description: |
295
        The API consumer can use this method to query information about thresholds.
296
      parameters:
297
298
        - $ref: ../components/SOL005_params.yaml#/components/parameters/filter
        - $ref: ../components/SOL005_params.yaml#/components/parameters/nextpage_opaque_marker
299
300
      responses:
        200:
301
          $ref: '#/components/responses/Thresholds.Get.200'
302
        400:
303
          $ref: "../responses/SOL005_resp.yaml#/components/responses/400"
304
        401:
305
          $ref: "../responses/SOL005_resp.yaml#/components/responses/401"
306
        403:
307
          $ref: "../responses/SOL005_resp.yaml#/components/responses/403"
308
        404:
309
          $ref: "../responses/SOL005_resp.yaml#/components/responses/404"
310
        405:
311
          $ref: "../responses/SOL005_resp.yaml#/components/responses/405"
312
        406:
313
          $ref: "../responses/SOL005_resp.yaml#/components/responses/406"
314
        500:
315
          $ref: "../responses/SOL005_resp.yaml#/components/responses/500"
316
        503:
317
          $ref: "../responses/SOL005_resp.yaml#/components/responses/503"
318
319
320
321

  ###############################################################################
  # Individual threshold                                                        #
  ###############################################################################
322
  /thresholds/{thresholdId}:
323
324
    #ETSI GS NFV-SOL 005 V2.4.1 location: 7.4.6
    parameters:
325
326
327
      - $ref: '#/components/parameters/ThresholdId'
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization
      - $ref: ../components/SOL005_params.yaml#/components/parameters/Version
328

329
    get:
rameshnaraya's avatar
rameshnaraya committed
330
      summary: Query a single threshold.
331
      description: |
332
333
        The API consumer can use this method for reading an individual
        threshold.
rameshnaraya's avatar
rameshnaraya committed
334
335
336
        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.
337
      parameters:
338
        - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept
339
340
      responses:
        200:
341
          $ref: '#/components/responses/IndividualThreshold.Get.200'
342
        400:
343
          $ref: "../responses/SOL005_resp.yaml#/components/responses/400"
344
        401:
345
          $ref: "../responses/SOL005_resp.yaml#/components/responses/401"
346
        403:
347
          $ref: "../responses/SOL005_resp.yaml#/components/responses/403"
348
        404:
349
          $ref: "../responses/SOL005_resp.yaml#/components/responses/404"
350
        405:
351
          $ref: "../responses/SOL005_resp.yaml#/components/responses/405"
352
        406:
353
          $ref: "../responses/SOL005_resp.yaml#/components/responses/406"
354
        500:
355
          $ref: "../responses/SOL005_resp.yaml#/components/responses/500"
356
        503:
357
          $ref: "../responses/SOL005_resp.yaml#/components/responses/503"
358

359
360
    patch:
      summary: Modify a Threshold
361
      description: |
362
363
364
365
        This method allows to modify an "Individual threshold" resource.
        This method shall follow the provisions specified in the Tables
        7.4.6.3.4-1 and 7.4.6.3.4-2 for URI query parameters, request
        and response data structures, and response codes.
366
      parameters:
367
368
369
        - $ref: '#/components/parameters/ContentTypeMergePatchJSON'
      requestBody:
        $ref: '#/components/requestBodies/ThresholdModifications'
370
371
      responses:
        200:
372
          $ref: '#/components/responses/IndividualThreshold.Patch.200'
373
        400:
374
          $ref: "../responses/SOL005_resp.yaml#/components/responses/400"
375
        401:
376
          $ref: "../responses/SOL005_resp.yaml#/components/responses/401"
377
        403:
378
          $ref: "../responses/SOL005_resp.yaml#/components/responses/403"
379
        404:
380
          $ref: "../responses/SOL005_resp.yaml#/components/responses/404"
381
        405:
382
          $ref: "../responses/SOL005_resp.yaml#/components/responses/405"
383
        406:
384
          $ref: "../responses/SOL005_resp.yaml#/components/responses/406"
385
        412:
386
          $ref: "../responses/SOL005_resp.yaml#/components/responses/412"
387
        500:
388
          $ref: "../responses/SOL005_resp.yaml#/components/responses/500"
389
        503:
390
          $ref: "../responses/SOL005_resp.yaml#/components/responses/503"
391

392
    delete:
393
      summary: Delete a Threshold.
394
      description: |
395
396
        This method allows to delete a threshold.
        
397
        As the result of successfully executing this method, the 
398
        "Individual threshold" resource shall not exist any longer.
399
      parameters:
400
        - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept
401
402
      responses:
        204:
403
          $ref: '#/components/responses/IndividualThreshold.Delete.204'
404
        400:
405
          $ref: "../responses/SOL005_resp.yaml#/components/responses/400"
406
        401:
407
          $ref: "../responses/SOL005_resp.yaml#/components/responses/401"
408
        403:
409
          $ref: "../responses/SOL005_resp.yaml#/components/responses/403"
410
        404:
411
          $ref: "../responses/SOL005_resp.yaml#/components/responses/404"
412
        405:
413
          $ref: "../responses/SOL005_resp.yaml#/components/responses/405"
414
        406:
415
          $ref: "../responses/SOL005_resp.yaml#/components/responses/406"
416
        500:
417
          $ref: "../responses/SOL005_resp.yaml#/components/responses/500"
418
        503:
419
          $ref: "../responses/SOL005_resp.yaml#/components/responses/503"
420
421
422
423
424
425
426
427

  ###############################################################################
  # Subscriptions                                                               #
  ###############################################################################
#  '/subscriptions':
#    #ETSI GS NFV-SOL 005 V2.4.1 location: 7.4.7
#    parameters:
#      - name: Authorization
428
#        description: |
429
430
431
432
433
434
#          The authorization token for the request.
#          Reference: IETF RFC 7235.
#        in: header
#        required: false
#        type: string
#      - name: Version
435
#        description: |
436
437
438
439
440
441
442
#          Version of the API requested to use when responding to this request.
#        in: header
#        required: true
#        type: string
#
#    post:
#      summary: Subscribe to PM notifications.
443
#      description: |
444
445
446
447
448
449
450
451
452
453
454
455
456
#        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.
#        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.
#        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.
#        Consequently, the NFVO may either allow creating a subscription resource if another subscription resource with the
#        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)
#      parameters:
#        - name: Accept
457
#          description: |
458
459
460
461
462
463
#            Content-Types that are acceptable for the response.
#            Reference: IETF RFC 7231.
#          in: header
#          required: true
#          type: string
#        - name: Content-Type
464
#          description: |
465
466
467
468
469
470
471
472
473
474
#            The MIME type of the body of the request.
#            Reference: IETF RFC 7231.
#          in: header
#          required: true
#          type: string
#        - name: body
#          in: body
#          required: true
#          schema:
#            $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/PmSubscriptionRequest"
475
#            description: |
476
477
478
#              Details of the subscription to be created.
#      responses:
#        201:
479
#          description: |
480
481
482
483
484
485
486
487
488
489
490
491
#            201 CREATED
#
#            Shall be returned when the subscription has been 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.
#          schema:
#            $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/PmSubscription"
#          headers:
#            Content-Type:
#              type: string
492
#              description: |
493
494
495
496
497
498
499
#                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
#              minimum: 1
#            WWW-Authenticate:
#              type: string
500
#              description: |
501
502
503
504
505
506
#                Challenge if the corresponding HTTP request has not provided
#                authorization, or error details if the corresponding HTTP request
#                has provided an invalid authorization token.
#              maximum: 1
#              minimum: 0
#            Version:
507
#              description: |
508
509
510
511
512
#                Version of the API used in the response.
#              type: string
#              maximum: 1
#              minimum: 1
#        303:
513
#          $ref: "../responses/SOL005_resp.yaml#/components/responses/303"
514
#        400:
515
#          $ref: "../responses/SOL005_resp.yaml#/components/responses/400"
516
#        401:
517
#          $ref: "../responses/SOL005_resp.yaml#/components/responses/401"
518
#        403:
519
#          $ref: "../responses/SOL005_resp.yaml#/components/responses/403"
520
#        404:
521
#          $ref: "../responses/SOL005_resp.yaml#/components/responses/404"
522
#        405:
523
#          $ref: "../responses/SOL005_resp.yaml#/components/responses/405"
524
#        406:
525
#          $ref: "../responses/SOL005_resp.yaml#/components/responses/406"
526
#        500:
527
#          $ref: "../responses/SOL005_resp.yaml#/components/responses/500"
528
#        503:
529
#          $ref: "../responses/SOL005_resp.yaml#/components/responses/503"
530
531
532
#
#    get:
#      summary: Query PM related subscriptions.
533
#      description: |
534
535
536
537
538
539
540
541
542
#        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.
#      parameters:
#        - name: filter
#          in: query
#          required: false
#          type: string
543
#          description: |
544
545
546
547
548
549
550
551
552
#            Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV-SOL 013.
#            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 PmSubscription and in data types referenced from it
#            shall be supported by the NFVO in the filter expression.
#        - name: nextpage_opaque_marker
#          in: query
#          required: false
#          type: string
553
#          description: |
554
555
556
557
#            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 5.4.2.1 of
#            ETSI GS NFV-SOL 013 for this resource.
#        - name: Accept
558
#          description: |
559
560
561
562
563
564
565
#            Content-Types that are acceptable for the response.
#            Reference: IETF RFC 7231.
#          in: header
#          required: true
#          type: string
#      responses:
#        200:
566
#          description: |
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
#            200 OK
#
#            Shall be returned when the list of subscriptions has
#            been queried successfully.
#            The response body shall contain the representations of
#            all active subscriptions of the functional block that
#            invokes the method, as defined in clause 7.5.2.3.
#            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.
#            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.
#
#          headers:
#            Content-Type:
#              description: The MIME type of the body of the response.
#              type: string
#              maximum: 1
#              minimum: 1
#            WWW-Authenticate:
#              type: string
592
#              description: |
593
594
595
596
597
598
#                Challenge if the corresponding HTTP request has not provided
#                authorization, or error details if the corresponding HTTP request
#                has provided an invalid authorization token.
#              maximum: 1
#              minimum: 0
#            Version:
599
#              description: |
600
601
602
603
604
#                Version of the API used in the response.
#              type: string
#              maximum: 1
#              minimum: 1
#            Link:
605
#              description: |
606
607
608
609
610
611
612
613
614
#                Reference to other resources. Used for paging in the present document, see clause 4.7.2.1.
#              type: string
#              maximum: 1
#              minimum: 0
#          schema:
#            type: array
#            items:
#              $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/PmSubscription"
#        400:
615
#          $ref: "../responses/SOL005_resp.yaml#/components/responses/400"
616
#        401:
617
#          $ref: "../responses/SOL005_resp.yaml#/components/responses/401"
618
#        403:
619
#          $ref: "../responses/SOL005_resp.yaml#/components/responses/403"
620
#        404:
621
#          $ref: "../responses/SOL005_resp.yaml#/components/responses/404"
622
#        405:
623
#          $ref: "../responses/SOL005_resp.yaml#/components/responses/405"
624
#        406:
625
#          $ref: "../responses/SOL005_resp.yaml#/components/responses/406"
626
#        500:
627
#          $ref: "../responses/SOL005_resp.yaml#/components/responses/500"
628
#        503:
629
#          $ref: "../responses/SOL005_resp.yaml#/components/responses/503"
630
631
632
633
634
635
636
637

  ###############################################################################
  # Individual subscription                                                     #
  ###############################################################################
#  '/subscriptions/{subscriptionId}':
#    #ETSI GS NFV-SOL 005 V2.4.1 location: 7.4.8
#    parameters:
#      - name: subscriptionId
638
#        description: |
639
640
641
642
643
644
645
646
#          Identifier of the subscription.
#          This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response
#          to a POST request creating a new subscription resource. It can also be retrieved from the "id" attribute in the
#          payload body of that response.
#        in: path
#        type: string
#        required: true
#      - name: Authorization
647
#        description: |
648
649
650
651
652
653
#          The authorization token for the request.
#          Reference: IETF RFC 7235
#        in: header
#        required: true
#        type: string
#      - name: Version
654
#        description: |
655
656
657
658
659
660
661
#          Version of the API requested to use when responding to this request.
#        in: header
#        required: true
#        type: string
#
#    get:
#      summary: Query a single PM related subscription.
662
#      description: |
663
664
665
666
667
668
#        The client can use this method for reading an individual subscription about Performance management notifications
#        subscribed by the client.
#        This method shall follow the provisions specified in the Tables 7.4.8.3.2-1 and 7.4.8.3.2-2 for URI query parameters,
#        request and response data structures, and response codes.
#      parameters:
#        - name: Accept
669
#          description: |
670
671
672
673
674
675
676
#            Content-Types that are acceptable for the response.
#            Reference: IETF RFC 7231
#          in: header
#          required: true
#          type: string
#      responses:
#        200:
677
#          description: |
678
679
680
681
682
683
684
685
686
687
#            200 OK
#
#            Shall be returned when the subscription has been read successfully.
#            The response body shall contain a representation of
#            the subscription resource, as defined in clause 7.5.2.3.
#          schema:
#            $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/PmSubscription"
#          headers:
#            Content-Type:
#              type: string
688
#              description: |
689
690
691
692
693
#                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:
#              type: string
694
#              description: |
695
696
697
698
699
700
#                Challenge if the corresponding HTTP request has not provided
#                authorization, or error details if the corresponding HTTP request
#                has provided an invalid authorization token.
#              maximum: 1
#              minimum: 0
#            Version:
701
#              description: |
702
703
704
705
706
#                Version of the API used in the response.
#              type: string
#              maximum: 1
#              minimum: 1
#        400:
707
#          $ref: "../responses/SOL005_resp.yaml#/components/responses/400"
708
#        401:
709
#          $ref: "../responses/SOL005_resp.yaml#/components/responses/401"
710
#        403:
711
#          $ref: "../responses/SOL005_resp.yaml#/components/responses/403"
712
#        404:
713
#          $ref: "../responses/SOL005_resp.yaml#/components/responses/404"
714
#        405:
715
#          $ref: "../responses/SOL005_resp.yaml#/components/responses/405"
716
#        406:
717
#          $ref: "../responses/SOL005_resp.yaml#/components/responses/406"
718
#        500:
719
#          $ref: "../responses/SOL005_resp.yaml#/components/responses/500"
720
#        503:
721
#          $ref: "../responses/SOL005_resp.yaml#/components/responses/503"
722
723
724
#
#    delete:
#      summary: Terminate a subscription.
725
#      description: |
726
727
728
729
730
731
732
733
734
735
736
737
738
#        This method terminates an individual subscription.
#        This method shall follow the provisions specified in the
#        Tables 7.4.8.3.5-1 and 7.4.8.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 subscription" resource shall not exist any longer.
#        This means that no notifications for that subscription shall
#        be sent to the formerly-subscribed API consumer.
#        NOTE: Due to race conditions, some notifications might still be
#        received by the formerly-subscribed API consumer for a
#        certain time period after the deletion.
#      parameters:
#        - name: Accept
739
#          description: |
740
741
742
743
744
745
746
#            Content-Types that are acceptable for the response.
#            Reference: IETF RFC 7231.
#          in: header
#          required: true
#          type: string
#      responses:
#        204:
747
#          description: |
748
749
750
751
752
753
754
755
#            204 NO CONTENT
#
#            Shall be returned when the subscription resource has been
#            deleted successfully.
#            The response body shall be empty.
#          headers:
#            WWW-Authenticate:
#              type: string
756
#              description: |
757
758
759
760
761
762
#                Challenge if the corresponding HTTP request has not provided
#                authorization, or error details if the corresponding HTTP request
#                has provided an invalid authorization token.
#              maximum: 1
#              minimum: 0
#            Version:
763
#              description: |
764
765
766
767
768
#                Version of the API used in the response.
#              type: string
#              maximum: 1
#              minimum: 1
#        400:
769
#          $ref: "../responses/SOL005_resp.yaml#/components/responses/400"
770
#        401:
771
#          $ref: "../responses/SOL005_resp.yaml#/components/responses/401"
772
#        403:
773
#          $ref: "../responses/SOL005_resp.yaml#/components/responses/403"
774
#        404:
775
#          $ref: "../responses/SOL005_resp.yaml#/components/responses/404"
776
#        405:
777
#          $ref: "../responses/SOL005_resp.yaml#/components/responses/405"
778
#        406:
779
#          $ref: "../responses/SOL005_resp.yaml#/components/responses/406"
780
#        500:
781
#          $ref: "../responses/SOL005_resp.yaml#/components/responses/500"
782
#        503:
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908