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

info:
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"
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
22

23
basePath: /nspm/v1
24

25
schemes:
26
  - http
27
  - https
28

29
consumes:
30
  - application/json
31

32
produces:
33
  - application/json
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
            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 536
        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.        
537
      parameters:
538 539 540 541
        - name: CreateThresholdRequest
          in: body
          required: true
          schema:
542
            $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/CreateThresholdRequest"
543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558
            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
559 560
      responses:
        201:
561
          description: >
562
            201 CREATED
563

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

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

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

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

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

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

786
    delete:
rameshnaraya's avatar
rameshnaraya committed
787
      summary: Delete a threshold.
788 789 790 791 792 793 794 795 796 797 798 799
      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:
800
          description: >
801
            204 NO CONTENT
802

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

837 838 839
  ###############################################################################
  # Subscriptions                                                               #
  ###############################################################################
840 841
  '/subscriptions':
    #ETSI GS NFV-SOL 005 V2.4.1 location: 7.4.7
842 843 844 845 846 847 848 849 850 851 852 853 854 855
    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
856

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

896 897 898 899 900
            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
901
          schema:
902
            $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/PmSubscription"
903
          headers:
rameshnaraya's avatar
rameshnaraya committed
904
            Content-Type:
905
              type: string
rameshnaraya's avatar
rameshnaraya committed
906 907 908 909 910
              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
911
              minimum: 1
912
            WWW-Authenticate:
913
              type: string
914 915
              description: >
                Challenge if the corresponding HTTP request has not provided
rameshnaraya's avatar
rameshnaraya committed
916 917
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
918
              maximum: 1
919 920 921 922 923 924 925
              minimum: 0
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
              minimum: 1
926
        303:
927
          $ref: "../responses/SOL005_resp.yaml#/responses/303"
928
        400:
929
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
930
        401:
931
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
932
        403:
933
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
934 935
        404:
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
936
        405:
937
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
938
        406:
939
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
940
        500:
941
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
942
        503:
943 944
          $ref: "../responses/SOL005_resp.yaml#/responses/503"

945
    get:
946
      summary: Query PM related subscriptions.
947
      description: >
rameshnaraya's avatar
rameshnaraya committed
948 949 950 951
        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.
952
      parameters:
953 954
        - name: filter
          in: query
955
          required: false
956 957
          type: string
          description: >
958 959 960 961
            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 PmSubscription and in data types referenced from it
962
            shall be supported by the NFVO in the filter expression.
963 964 965 966 967 968 969
        - 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.
970 971 972
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
973
            Reference: IETF RFC 7231.
974 975 976 977 978
          in: header
          required: true
          type: string
      responses:
        200:
rameshnaraya's avatar
rameshnaraya committed
979
          description: >
980
            200 OK
981

982
            The list of subscriptions was queried successfully.
rameshnaraya's avatar
rameshnaraya committed
983 984 985
            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.
986 987
          headers:
            Content-Type:
rameshnaraya's avatar
rameshnaraya committed
988
              description: The MIME type of the body of the response.
989 990 991 992
              type: string
              maximum: 1
              minimum: 1
            WWW-Authenticate:
993
              type: string
994 995
              description: >
                Challenge if the corresponding HTTP request has not provided
996 997 998
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
              maximum: 1
999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011
              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
1012 1013
          schema:
            type: array
rameshnaraya's avatar
rameshnaraya committed
1014
            items:
1015
              $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/PmSubscription"
1016
        400:
1017
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
1018
        401:
1019
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
1020
        403:
1021
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
1022 1023
        404:
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
1024
        405:
1025
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
1026
        406:
1027
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
1028
        500:
1029
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
1030
        503:
1031 1032
          $ref: "../responses/SOL005_resp.yaml#/responses/503"

1033 1034 1035
  ###############################################################################
  # Individual subscription                                                     #
  ###############################################################################
1036 1037 1038 1039 1040
  '/subscriptions/{subscriptionId}':
    #ETSI GS NFV-SOL 005 V2.4.1 location: 7.4.8
    parameters:
      - name: subscriptionId
        description: >
rameshnaraya's avatar
rameshnaraya committed
1041 1042 1043 1044
          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.
1045 1046 1047
        in: path
        type: string
        required: true
1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060
      - 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
1061

1062
    get:
rameshnaraya's avatar
rameshnaraya committed
1063
      summary: Query a single PM related subscription.
1064
      description: >
rameshnaraya's avatar
rameshnaraya committed
1065 1066 1067 1068
        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.
1069 1070 1071 1072 1073 1074 1075 1076 1077
      parameters:
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
            Reference: IETF RFC 7231
          in: header
          required: true
          type: string
      responses:
1078 1079 1080
        200:
          description: >
            200 OK
1081

1082 1083 1084
            The subscription was read successfully.
            The response body shall contain a representation of
            the subscription resource, as defined in clause 7.5.2.3.            
rameshnaraya's avatar
rameshnaraya committed
1085
          schema:
1086
            $ref: "definitions/SOL005NSPerformanceManagement_def.yaml#/definitions/PmSubscription"
1087 1088
          headers:
            Content-Type:
1089
              type: string
1090
              description: >
rameshnaraya's avatar
rameshnaraya committed
1091 1092 1093
                The MIME type of the body of the response.This header
                field shall be present if the response has a non-empty message
                body.
1094
            WWW-Authenticate:
1095
              type: string
1096 1097
              description: >
                Challenge if the corresponding HTTP request has not provided
rameshnaraya's avatar
rameshnaraya committed
1098 1099
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
1100 1101
              maximum: 1
              minimum: 0
1102 1103 1104 1105 1106 1107
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
              minimum: 1
1108
        400:
1109
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
1110
        401:
1111
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
1112
        403:
1113
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
1114 1115
        404:
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
1116
        405:
1117
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
1118
        406:
1119
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
1120
        500:
1121
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
1122
        503:
1123 1124
          $ref: "../responses/SOL005_resp.yaml#/responses/503"

1125
    delete:
1126
      summary: Terminate a subscription.
1127 1128
      description: >
        This method terminates an individual subscription.
rameshnaraya's avatar
rameshnaraya committed
1129 1130 1131
        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
1132 1133 1134 1135
      parameters:
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
1136
            Reference: IETF RFC 7231.
1137 1138 1139 1140 1141
          in: header
          required: true
          type: string
      responses:
        204:
1142
          description: >
1143
            204 NO CONTENT
1144

1145 1146 1147 1148
            The subscription resource was deleted successfully.
            The response body shall be empty.
          headers:
            WWW-Authenticate:
1149
              type: string
1150 1151
              description: >
                Challenge if the corresponding HTTP request has not provided
1152 1153 1154
                authorization, or error details if the corresponding HTTP request
                has provided an invalid authorization token.
              maximum: 1
1155 1156 1157 1158 1159 1160 1161
              minimum: 0
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
              minimum: 1
1162
        400:
1163
          $ref: "../responses/SOL005_resp.yaml#/responses/400"
1164
        401:
1165
          $ref: "../responses/SOL005_resp.yaml#/responses/401"
1166
        403:
1167
          $ref: "../responses/SOL005_resp.yaml#/responses/403"
1168 1169 1170 1171 1172 1173
        404:
          $ref: "../responses/SOL005_resp.yaml#/responses/404"
        405:
          $ref: "../responses/SOL005_resp.yaml#/responses/405"
        406:
          $ref: "../responses/SOL005_resp.yaml#/responses/406"
1174
        500:
1175
          $ref: "../responses/SOL005_resp.yaml#/responses/500"
1176
        503:
1177
          $ref: "../responses/SOL005_resp.yaml#/responses/503"