VNFPerformanceManagement.yaml 44.5 KB
Newer Older
1 2 3
swagger: "2.0"

info:
4
  version: "1.2.0"
5
  title: SOL003 - VNF Performance Management interface
6
  description: >
7 8
    SOL003 - VNF Performance Management interface

9

10
    IMPORTANT: Please note that this file might be not aligned to the current
11 12 13
    version of the ETSI Group Specification it refers to. In case of
    discrepancies the published ETSI Group Specification takes precedence.

14 15 16 17 18 19 20
    
    In clause 4.3.2 of ETSI GS NFV-SOL 003 v2.4.1, an attribute-based
    filtering mechanism is defined. This mechanism is currently not
    included in the corresponding OpenAPI design for this GS version. Changes
    to the attribute-based filtering mechanism are being considered in v2.5.1
    of this GS for inclusion in the corresponding future ETSI NFV OpenAPI
    design.
21

22
    Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution=
23 24 25 26
  license:
    name: "ETSI Forge copyright notice"
    url: https://forge.etsi.org/etsi-forge-copyright-notice.txt

27
externalDocs:
28 29
  description: ETSI GS NFV-SOL 003 V2.5.1
  url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.05.01_60/gs_nfv-sol002v020501p.pdf
30

31 32 33 34 35 36 37 38 39 40 41
basePath: "/vnfpm/v1"

schemes:
  - https

consumes:
  - "application/json"
produces:
  - "application/json"

paths:
42 43 44
  ###############################################################################
  # API Versions                                                                #
  ###############################################################################
45
  '/api-versions':
46
    $ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions'
47

48 49 50 51 52 53 54
###############################################################################
# PM jobs                                                                     #
###############################################################################
  '/pm_jobs':
    #SOL003 location: 6.4.2
    post:
      description: >
Gergely Csatari's avatar
Gergely Csatari committed
55 56 57
        Create PM Job


58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
        The POST method creates a PM job.
      parameters:
        - name: CreatePmJobRequest
          description: The VNF creation parameters
          in: body
          required: true
          schema:
            $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/CreatePmJobRequest"
        - 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
        - name: Authorization
          description: >
            The authorization token for the request.
            Reference: IETF RFC 7235
          in: header
Gergely Csatari's avatar
Gergely Csatari committed
85
          required: false
86
          type: string
87 88 89 90 91 92
        - name: Version
          description: >
            Version of the API requested to use when responding to this request.
          in: header
          required: true
          type: string
93 94 95
      responses:
        201:
          description: > 
96 97
            Created

98 99 100 101 102 103 104 105 106
            The PM job was created successfully. The response body shall
            contain a representation of the created PM job resource.
            The HTTP response shall include a "Location" HTTP header that
            points to the created PM job resource.
          headers:
            Location:
              description: The resource URI of the created PM Job
              type: string
              format: url
Gergely Csatari's avatar
Gergely Csatari committed
107 108 109 110 111 112 113 114
            WWW-Authenticate:
              description: >
                Challenge if the corresponding HTTP request has not provided
                authorization, or error details if the corresponding HTTP
                request has provided an invalid authorization token.
              type: string
              maximum: 1
              minimum: 0
115 116 117 118 119 120
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
              minimum: 1
121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138
          schema:
            $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmJob"
        400:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
        401:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
        403:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
        405:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
        406:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
        500:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
        503:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
    get:
      description: >
Gergely Csatari's avatar
Gergely Csatari committed
139 140 141
        Query PM Job


142 143 144 145 146 147 148 149 150 151 152 153 154 155
        The client can use this method to retrieve information about PM jobs.
      parameters:
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
            Reference: IETF RFC 7231
          in: header
          required: true
          type: string
        - name: Authorization
          description: >
            The authorization token for the request.
            Reference: IETF RFC 7235
          in: header
Gergely Csatari's avatar
Gergely Csatari committed
156
          required: false
157
          type: string
158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208
        - name: filter
          description: >
            Attribute-based filtering expression according to clause 4.3.2.
            The VNFM shall support receiving this parameter as part of the 
            URI query string. The NFVO may supply this parameter. 
            All attribute names that appear in the PmJob and in data 
            types referenced from it shall be supported by the VNFM in the 
            filter expression.
          in: query
          required: false
          type: string
        - name: all_fields
          description: >
            Include all complex attributes in the response.
            See clause 4.3.3 for details. The VNFM shall support this parameter.
          in: query
          required: false
          type: string
        - name: fields
          description: >
            Complex attributes to be included into the response.
            See clause 4.3.3 for details. The VNFM should support this parameter.
          in: query
          required: false
          type: string
        - name: exclude_fields
          description: >
            Complex attributes to be excluded from the response.
            See clause 4.3.3 for details. The VNFM should support this parameter.
          in: query
          required: false
          type: string
        - name: exclude_default
          description: >
            Indicates to exclude the following complex attributes from the response.
            See clause 4.3.3 for details. The VNFM shall support this parameter.
            The following attributes shall be excluded from the PmJob structure
            in the response body if this parameter is provided, or none of the parameters
            "all_fields," "fields", "exclude_fields", "exclude_default" are provided:
            -	Reports
          in: query
          required: false
          type: string
        - name: nextpage_opaque_marker
          description: >
            Marker to obtain the next page of a paged response. Shall be supported by the 
            VNFM if the VNFM supports alternative 2 (paging) according to clause 4.7.2.1 
            for this resource.
          in: query
          required: false
          type: string
209 210 211 212 213 214
        - name: Version
          description: >
            Version of the API requested to use when responding to this request.
          in: header
          required: true
          type: string
215 216 217
      responses:
        200:
          description: > 
218 219
            OK

220
            Information about zero or more PM jobs was queried successfully.
221 222 223 224 225 226
            The response body shall contain in an array representations of 
            zero or more PM jobs, as defined in clause 6.5.2.7.
            If the VNFM supports alternative 2 (paging) according to 
            clause 4.7.2.1 for this resource, inclusion of the Link 
            HTTP header in this response shall follow the provisions 
            in clause 4.7.2.3.
227
          headers:
228
            Content-Type:
229
              description: >
230 231
                The MIME type of the body of the request.
                Reference: IETF RFC 7231
232 233
              type: string
              maximum: 1
234
              minimum: 1
Gergely Csatari's avatar
Gergely Csatari committed
235 236 237 238 239 240 241 242
            WWW-Authenticate:
              description: >
                Challenge if the corresponding HTTP request has not provided
                authorization, or error details if the corresponding HTTP
                request has provided an invalid authorization token.
              type: string
              maximum: 1
              minimum: 0
243 244 245 246 247 248
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
              minimum: 1
249 250 251 252 253 254
            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
255 256 257 258 259
          schema:
            type: array
            items:
              $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmJob"
        400:
260
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290
        401:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
        403:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
        405:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
        406:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
        500:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
        503:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
###############################################################################
# Individual PM job                                                           #
###############################################################################
  '/pm_jobs/{pmJobId}':
    #SOL003 location: 6.4.3
    parameters:
      - name: pmJobId
        description: >
          Identifier of the PM job.
          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.
        in: path
        type: string
        required: true
    get:
      description: >
Gergely Csatari's avatar
Gergely Csatari committed
291 292 293
        Query PM Job


294 295 296 297 298 299 300 301 302 303 304 305 306 307
        The client can use this method for reading an individual PM job.
      parameters:
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
            Reference: IETF RFC 7231
          in: header
          required: true
          type: string
        - name: Authorization
          description: >
            The authorization token for the request.
            Reference: IETF RFC 7235
          in: header
Gergely Csatari's avatar
Gergely Csatari committed
308
          required: false
309
          type: string
310 311 312 313 314 315
        - name: Version
          description: >
            Version of the API requested to use when responding to this request.
          in: header
          required: true
          type: string
316 317 318
      responses:
        200:
          description: > 
319 320
            OK

321 322 323 324
            Information about an individual PM job was queried successfully.
            The response body shall contain a representation of the PM job
            resource.
          headers:
325
            Content-Type:
326
              description: >
327 328
                The MIME type of the body of the request.
                Reference: IETF RFC 7231
329 330
              type: string
              maximum: 1
331
              minimum: 1
Gergely Csatari's avatar
Gergely Csatari committed
332 333 334 335 336 337 338 339
            WWW-Authenticate:
              description: >
                Challenge if the corresponding HTTP request has not provided
                authorization, or error details if the corresponding HTTP
                request has provided an invalid authorization token.
              type: string
              maximum: 1
              minimum: 0
340 341 342 343 344 345
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
              minimum: 1
346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363
          schema:
            $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmJob"
        400:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
        401:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
        403:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
        405:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
        406:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
        500:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
        503:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
    delete:
      description: >
Gergely Csatari's avatar
Gergely Csatari committed
364 365 366
        Delete PM Job


367 368 369 370 371 372 373
        This method terminates an individual PM job.
      parameters:
        - name: Authorization
          description: >
            The authorization token for the request.
            Reference: IETF RFC 7235
          in: header
Gergely Csatari's avatar
Gergely Csatari committed
374
          required: false
375
          type: string
376 377 378 379 380 381
        - name: Version
          description: >
            Version of the API requested to use when responding to this request.
          in: header
          required: true
          type: string
382 383 384
      responses:
        204:
          description: > 
385 386
            No Content

387 388
            The PM job was deleted successfully.
            The response body shall be empty.
Gergely Csatari's avatar
Gergely Csatari committed
389 390 391 392 393 394 395 396 397
          headers:
            WWW-Authenticate:
              description: >
                Challenge if the corresponding HTTP request has not provided
                authorization, or error details if the corresponding HTTP
                request has provided an invalid authorization token.
              type: string
              maximum: 1
              minimum: 0
398 399 400 401 402 403
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
              minimum: 1
404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452
        400:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
        401:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
        403:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
        405:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
        406:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
        500:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
        503:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
###############################################################################
# Individual performance report                                               #
###############################################################################
  '/pm_jobs/{pmJobId}/reports/{reportId}':
    #SOL003 location: 6.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
    get:
      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.
            Reference: IETF RFC 7231
          in: header
          required: true
          type: string
        - name: Authorization
          description: >
            The authorization token for the request.
            Reference: IETF RFC 7235
          in: header
Gergely Csatari's avatar
Gergely Csatari committed
453
          required: false
454
          type: string
455 456 457 458 459 460
        - name: Version
          description: >
            Version of the API requested to use when responding to this request.
          in: header
          required: true
          type: string
461 462 463
      responses:
        200:
          description: > 
464 465
            OK

466 467 468 469 470
            Information of an individual performance report was read
            successfully.
            The response body shall contain a representation of the
            performance report resource.
          headers:
471
            Content-Type:
472
              description: >
473 474
                The MIME type of the body of the request.
                Reference: IETF RFC 7231
475 476
              type: string
              maximum: 1
477
              minimum: 1
Gergely Csatari's avatar
Gergely Csatari committed
478 479 480 481 482 483 484 485
            WWW-Authenticate:
              description: >
                Challenge if the corresponding HTTP request has not provided
                authorization, or error details if the corresponding HTTP
                request has provided an invalid authorization token.
              type: string
              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
          schema:
493
            $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PerformanceReport"
494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514
        400:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
        401:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
        403:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
        405:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
        406:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
        500:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
        503:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
###############################################################################
# Thresholds                                                                  #
###############################################################################
  '/thresholds':
    #SOL003 location: 6.4.5
    post:
      description: >
Gergely Csatari's avatar
Gergely Csatari committed
515 516 517
        Create Threshold


518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538
        The POST method can be used by the client to create a threshold.
      parameters:
        - name: CreateThresholdRequest
          description: >
            Request parameters to create a threshold resource.
          in: body
          required: true
          schema:
            $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/CreateThresholdRequest"
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
            Reference: IETF RFC 7231
          in: header
          required: true
          type: string
        - name: Authorization
          description: >
            The authorization token for the request.
            Reference: IETF RFC 7235
          in: header
Gergely Csatari's avatar
Gergely Csatari committed
539
          required: false
540 541 542 543 544 545 546 547
          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
548 549 550 551 552 553
        - name: Version
          description: >
            Version of the API requested to use when responding to this request.
          in: header
          required: true
          type: string
554 555 556
      responses:
        201:
          description: > 
557 558
            Created

559 560 561 562 563 564 565 566 567
            A threshold was created successfully. The response body shall
            contain a representation of the created threshold resource.
            The HTTP response shall include a "Location" HTTP header that
            contains the resource URI of the created threshold resource.
          headers:
            Location:
              description: The resource URI of the created VNF instance
              type: string
              format: url
568
            Content-Type:
569
              description: >
570 571
                The MIME type of the body of the request.
                Reference: IETF RFC 7231
572 573
              type: string
              maximum: 1
574
              minimum: 1
Gergely Csatari's avatar
Gergely Csatari committed
575 576 577 578 579 580 581 582
            WWW-Authenticate:
              description: >
                Challenge if the corresponding HTTP request has not provided
                authorization, or error details if the corresponding HTTP
                request has provided an invalid authorization token.
              type: string
              maximum: 1
              minimum: 0
583 584 585 586 587 588
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
              minimum: 1
589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606
          schema:
            $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/Threshold"
        400:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
        401:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
        403:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
        405:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
        406:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
        500:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
        503:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
    get:
      description: >
Gergely Csatari's avatar
Gergely Csatari committed
607 608 609
        Query Threshold


610 611 612 613 614 615 616 617 618 619 620 621 622 623
        The client can use this method to query information about thresholds.
      parameters:
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
            Reference: IETF RFC 7231
          in: header
          required: true
          type: string
        - name: Authorization
          description: >
            The authorization token for the request.
            Reference: IETF RFC 7235
          in: header
Gergely Csatari's avatar
Gergely Csatari committed
624
          required: false
625
          type: string
626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648
        - name: filter
          description: >
            Attribute-based filtering expression according to clause 4.3.2.
            The VNFM shall support receiving this parameter as part of the 
            URI query string. The NFVO may supply this parameter. 
            All attribute names that appear in the Thresholds and in 
            data types referenced from it shall be supported by the VNFM 
            in the filter expression.
            
            NOTE: There are no attribute selectors defined for this resource as 
            the threshold attributes with cardinality 0..1 or 0..N are not 
            structurally complex in nature.
          in: query
          required: false
          type: string
        - name: nextpage_opaque_marker
          description: >
            Marker to obtain the next page of a paged response. Shall be 
            supported by the VNFM if the VNFM supports alternative 2 (paging) 
            according to clause 4.7.2.1 for this resource.
          in: query
          required: false
          type: string
649 650 651 652 653 654
        - name: Version
          description: >
            Version of the API requested to use when responding to this request.
          in: header
          required: true
          type: string
655 656 657
      responses:
        200:
          description: > 
658 659
            OK

660 661
            Information about zero or more thresholds was queried
            successfully.
662 663 664 665 666 667
            The response body shall contain in an array representations 
            of zero or more thresholds, as defined in 6.5.2.9.
            If the VNFM supports alternative 2 (paging) according to 
            clause 4.7.2.1 for this resource, inclusion of the Link 
            HTTP header in this response shall follow the provisions 
            in clause 4.7.2.3.
668 669 670 671 672
          headers:
            Location:
              description: The resource URI of the created VNF instance
              type: string
              format: url
673
            Content-Type:
674
              description: >
675 676
                The MIME type of the body of the request.
                Reference: IETF RFC 7231
677 678
              type: string
              maximum: 1
679
              minimum: 1
Gergely Csatari's avatar
Gergely Csatari committed
680 681 682 683 684 685 686 687
            WWW-Authenticate:
              description: >
                Challenge if the corresponding HTTP request has not provided
                authorization, or error details if the corresponding HTTP
                request has provided an invalid authorization token.
              type: string
              maximum: 1
              minimum: 0
688 689 690 691 692 693
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
              minimum: 1
694 695 696 697 698 699
            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
700 701 702 703 704
          schema:
            type: array
            items: 
              $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/Threshold"
        400:
705
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735
        401:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
        403:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
        405:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
        406:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
        500:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
        503:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
###############################################################################
# Individual threshold                                                        #
###############################################################################
  '/thresholds/{thresholdId}':
    #SOL003 location: 6.4.6
    parameters: 
      - 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
    get:
      description: >
Gergely Csatari's avatar
Gergely Csatari committed
736 737 738
        Query Threshold


739 740 741 742 743 744 745 746 747 748 749 750 751 752
        The client can use this method for reading an individual threshold.
      parameters:
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
            Reference: IETF RFC 7231
          in: header
          required: true
          type: string
        - name: Authorization
          description: >
            The authorization token for the request.
            Reference: IETF RFC 7235
          in: header
Gergely Csatari's avatar
Gergely Csatari committed
753
          required: false
754
          type: string
755 756 757 758 759 760
        - name: Version
          description: >
            Version of the API requested to use when responding to this request.
          in: header
          required: true
          type: string
761 762 763
      responses:
        200:
          description: > 
764 765
            OK

766 767 768 769
            Information about an individual threshold was queried
            successfully. The response body shall contain a
            representation of the threshold.
          headers:
770
            Content-Type:
771
              description: >
772 773
                The MIME type of the body of the request.
                Reference: IETF RFC 7231
774 775
              type: string
              maximum: 1
776
              minimum: 1
Gergely Csatari's avatar
Gergely Csatari committed
777 778 779 780 781 782 783 784
            WWW-Authenticate:
              description: >
                Challenge if the corresponding HTTP request has not provided
                authorization, or error details if the corresponding HTTP
                request has provided an invalid authorization token.
              type: string
              maximum: 1
              minimum: 0
785 786 787 788 789 790
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
              minimum: 1
791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808
          schema:
            $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/Threshold"
        400:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
        401:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
        403:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
        405:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
        406:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
        500:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
        503:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
    delete:
      description: >
Gergely Csatari's avatar
Gergely Csatari committed
809 810 811
        Delete Threshold


812 813 814 815 816 817 818
        This method allows to delete a threshold.
      parameters:
        - name: Authorization
          description: >
            The authorization token for the request.
            Reference: IETF RFC 7235
          in: header
Gergely Csatari's avatar
Gergely Csatari committed
819
          required: false
820
          type: string
821 822 823 824 825 826
        - name: Version
          description: >
            Version of the API requested to use when responding to this request.
          in: header
          required: true
          type: string
827 828 829
      responses:
        204:
          description: > 
830 831
            No Content

832 833
            The threshold was deleted successfully.
            The response body shall be empty.
Gergely Csatari's avatar
Gergely Csatari committed
834 835 836 837 838 839 840 841 842
          headers:
            WWW-Authenticate:
              description: >
                Challenge if the corresponding HTTP request has not provided
                authorization, or error details if the corresponding HTTP
                request has provided an invalid authorization token.
              type: string
              maximum: 1
              minimum: 0
843 844 845 846 847 848
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
              minimum: 1
849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869
        400:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
        401:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
        403:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
        405:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
        406:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
        500:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
        503:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
###############################################################################
# Subscriptions                                                               #
###############################################################################
  '/subscriptions':
    #SOL003 location: 6.4.7
    post:
      description: >
Gergely Csatari's avatar
Gergely Csatari committed
870 871 872
        Subscribe


873
        The POST method creates a new subscription.
874 875 876 877 878 879 880 881 882 883
        Creation of two subscription resources with the same callbackURI and
        the same filter can result in performance degradation and will provide
        duplicates of notifications to the NFVO, and might make sense only in
        very rare use cases. Consequently, the VNFM 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).
884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903
      parameters:
        - name: PmSubscriptionRequest
          description: >
            Details of the subscription to be created.
          in: body
          required: true
          schema:
            $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmSubscriptionRequest"
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
            Reference: IETF RFC 7231
          in: header
          required: true
          type: string
        - name: Authorization
          description: >
            The authorization token for the request.
            Reference: IETF RFC 7235
          in: header
Gergely Csatari's avatar
Gergely Csatari committed
904
          required: false
905 906 907 908 909 910 911 912
          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
913 914 915 916 917 918
        - name: Version
          description: >
            Version of the API requested to use when responding to this request.
          in: header
          required: true
          type: string
919 920 921
      responses:
        201:
          description: > 
922 923
            Created

924 925 926 927 928 929 930 931 932 933
            The subscription was created successfully. A representation of the
            created subscription resource shall be returned in the response
            body.
            The HTTP response shall include a "Location" HTTP header that
            contains the resource URI of the created subscription resource.
          headers:
            Location:
              description: The resource URI of the created VNF instance
              type: string
              format: url
934
            Content-Type:
935
              description: >
936 937
                The MIME type of the body of the request.
                Reference: IETF RFC 7231
938 939
              type: string
              maximum: 1
940
              minimum: 1
Gergely Csatari's avatar
Gergely Csatari committed
941 942 943 944 945 946 947 948
            WWW-Authenticate:
              description: >
                Challenge if the corresponding HTTP request has not provided
                authorization, or error details if the corresponding HTTP
                request has provided an invalid authorization token.
              type: string
              maximum: 1
              minimum: 0
949 950 951 952 953 954
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
              minimum: 1
955 956
          schema:
            $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmSubscription"
957 958
        303:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/303"
959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974
        400:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
        401:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
        403:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
        405:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
        406:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
        500:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
        503:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
    get:
      description: >
Gergely Csatari's avatar
Gergely Csatari committed
975 976 977
        Query Subscription Information


978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993
        The client can use this method to query the list of active
        subscriptions to Performance management notifications subscribed by
        the client.
      parameters:
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
            Reference: IETF RFC 7231
          in: header
          required: true
          type: string
        - name: Authorization
          description: >
            The authorization token for the request.
            Reference: IETF RFC 7235
          in: header
Gergely Csatari's avatar
Gergely Csatari committed
994
          required: false
995
          type: string
996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014
        - name: filter
          description: >
            Attribute-based filtering expression according to clause 4.3.2.
            The VNFM shall support receiving this parameter as part of the 
            URI query string. The NFVO may supply this parameter. 
            All attribute names that appear in the PmSubscription and in 
            data types referenced from it shall be supported by the VNFM 
            in the filter expression.
          in: query
          required: false
          type: string
        - name: nextpage_opaque_marker
          description: >
            Marker to obtain the next page of a paged response. Shall be 
            supported by the VNFM if the VNFM supports alternative 2 (paging) 
            according to clause 4.7.2.1 for this resource.
          in: query
          required: false
          type: string
1015 1016 1017 1018 1019 1020
        - name: Version
          description: >
            Version of the API requested to use when responding to this request.
          in: header
          required: true
          type: string
1021 1022 1023
      responses:
        200:
          description: > 
1024 1025
            OK

1026
            The list of subscriptions was queried successfully.
1027 1028 1029 1030 1031 1032 1033 1034
            The response body shall contain in an array the representations 
            of all active subscriptions of the functional block that invokes 
            the method, i.e. zero or more representations of PM subscriptions
            as defined in 6.5.2.3.
            If the VNFM supports alternative 2 (paging) according to 
            clause 4.7.2.1 for this resource, inclusion of the Link 
            HTTP header in this response shall follow the provisions 
            in clause 4.7.2.3.
1035 1036 1037 1038 1039 1040 1041 1042
          headers:
            Content-Type:
              description: >
                The MIME type of the body of the request.
                Reference: IETF RFC 7231
              type: string
              maximum: 1
              minimum: 1
Gergely Csatari's avatar
Gergely Csatari committed
1043 1044 1045 1046 1047 1048 1049 1050
            WWW-Authenticate:
              description: >
                Challenge if the corresponding HTTP request has not provided
                authorization, or error details if the corresponding HTTP
                request has provided an invalid authorization token.
              type: string
              maximum: 1
              minimum: 0
1051 1052 1053 1054 1055 1056
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
              minimum: 1
1057 1058 1059 1060 1061 1062
            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
1063 1064 1065 1066 1067
          schema:
            type: array
            items: 
              $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmSubscription"
        400:
1068
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097
        401:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
        403:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
        405:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
        406:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
        500:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
        503:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
###############################################################################
# Individual subscription                                                     #
###############################################################################
  '/subscriptions/{subscriptionId}':
    #SOL003 location: 6.4.8
    parameters:
      - name: subscriptionId
        description: >
          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
    get:
      description: >
Gergely Csatari's avatar
Gergely Csatari committed
1098 1099 1100
        Query Subscription Information


1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115
        The client can use this method for reading an individual subscription
        about Performance management notifications subscribed by the client.
      parameters:
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
            Reference: IETF RFC 7231
          in: header
          required: true
          type: string
        - name: Authorization
          description: >
            The authorization token for the request.
            Reference: IETF RFC 7235
          in: header
Gergely Csatari's avatar
Gergely Csatari committed
1116
          required: false
1117
          type: string
1118 1119 1120 1121 1122 1123
        - name: Version
          description: >
            Version of the API requested to use when responding to this request.
          in: header
          required: true
          type: string
1124 1125 1126
      responses:
        200:
          description: > 
1127 1128
            OK

1129 1130 1131 1132 1133 1134 1135 1136 1137 1138
            The subscription was read successfully. The response body shall
            contain a representation of the subscription resource.
          headers:
            Content-Type:
              description: >
                The MIME type of the body of the request.
                Reference: IETF RFC 7231
              type: string
              maximum: 1
              minimum: 1
Gergely Csatari's avatar
Gergely Csatari committed
1139 1140 1141 1142 1143 1144 1145 1146
            WWW-Authenticate:
              description: >
                Challenge if the corresponding HTTP request has not provided
                authorization, or error details if the corresponding HTTP
                request has provided an invalid authorization token.
              type: string
              maximum: 1
              minimum: 0
1147 1148 1149 1150 1151 1152
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
              minimum: 1
1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170
          schema:
            $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmSubscription"
        400:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
        401:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
        403:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
        405:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
        406:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
        500:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
        503:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
    delete:
      description: >
Gergely Csatari's avatar
Gergely Csatari committed
1171 1172 1173
        Terminate Subscription

        
1174 1175 1176 1177 1178 1179 1180
        This method terminates an individual subscription.
      parameters:
        - name: Authorization
          description: >
            The authorization token for the request.
            Reference: IETF RFC 7235
          in: header
Gergely Csatari's avatar
Gergely Csatari committed
1181
          required: false
1182
          type: string
1183 1184 1185 1186 1187 1188
        - name: Version
          description: >
            Version of the API requested to use when responding to this request.
          in: header
          required: true
          type: string
1189 1190 1191
      responses:
        204:
          description: > 
1192 1193
            No Content

1194 1195
            The subscription resource was deleted successfully.
            The response body shall be empty.
Gergely Csatari's avatar
Gergely Csatari committed
1196 1197 1198 1199 1200 1201 1202 1203 1204
          headers:
            WWW-Authenticate:
              description: >
                Challenge if the corresponding HTTP request has not provided
                authorization, or error details if the corresponding HTTP
                request has provided an invalid authorization token.
              type: string
              maximum: 1
              minimum: 0
1205 1206 1207 1208 1209 1210
            Version:
              description: >
                Version of the API used in the response.
              type: string
              maximum: 1
              minimum: 1
1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224
        400:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
        401:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
        403:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
        405:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
        406:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
        500:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
        503:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"