SOL005NSLifecycleManagement_def.yaml 159 KB
Newer Older
1
# Copyright (c) ETSI 2017.
2 3
# https://forge.etsi.org/etsi-forge-copyright-notice.txt
definitions:
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81

  HealNsRequest:
    description: >
      This operation supports the healing of an NS instance, 
      either by healing the complete NS instance or by healing one of
      more of the VNF instances that are part of this NS. 
      It shall comply with the provisions defined in Table 6.5.2.13-1.
    type: object
    properties:
      healNsData:
        description: >
          Indicates the reason why a healing procedure is required.
        $ref: "#/definitions/HealNsData"
      healVnfData:
        description: >
          Additional parameters passed by the NFVO as input to the healing
          process, specific to the VNF being healed, as declared in the VNFD
          as part of "HealVnfOpConfig".        
        type: array
        items:
          $ref: "#/definitions/HealVnfData"

  CancelMode:
    description: >
      This type represents a parameter to select the mode of canceling an ongoing NS LCM operation occurrence. 
      It shall comply with the provisions defined in Table 6.5.2.16-1.
    type: object
    required:
      - cancelMode
    properties:
      cancelMode:
        description: >
          Cancellation mode to apply.
        $ref: "#/definitions/CancelModeType"

  HealNsData:
    description: >
      This type represents the information used to heal a NS. 
      It shall comply with the provisions defined in Table 6.5.3.43-1.
    type: object
    required:
      - degreeHealing
    properties:
      degreeHealing:
        description: >
          Indicates the degree of healing. Possible values
          include:
          - HEAL_RESTORE: Complete the healing of
          the NS restoring the state of the NS before
          the failure occurred
          - HEAL_QOS: Complete the healing of the NS
          based on the newest QoS values
          - HEAL_RESET: Complete the healing of the
          NS resetting to the original instantiation state of the NS
          - PARTIAL_HEALING
        type: string
        enum:
          - HEAL_RESTORE
          - HEAL_QOS
          - HEAL_RESET
          - PARTIAL_HEALING
      actionsHealing:
        description: >
          Used to specify dedicated healing actions in a
          particular order (e.g. as a script). The actionsHealing
          attribute can be used to provide a specific script whose
          content and actions might only be possible to be
          derived during runtime.
        type: array
        items:
          $ref: "../../definitions/SOL005_def.yaml#/definitions/String"
      healScript:
        description: >
          Reference to a script from the NSD that shall be used
          to execute dedicated healing actions in a particular
          order. The healScript, since it refers to a script in the
          NSD, can be used to execute healing actions which
          are defined during NS design time.
82
        $ref: "#/definitions/IdentifierInNsd"
83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
      additionalParamsforNs:
        description: >
          Allows the OSS/BSS to provide additional
          parameter(s) to the healing process at the NS level.
        $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs"

  HealVnfData:
    description: >
      This type represents the information to heal a VNF that is part of an NS. 
      The NFVO shall then invoke the HealVNF
      operation towards the appropriate VNFM. 
      It shall comply with the provisions defined in Table 6.5.3.44-1.
    type: object
    required:
      - vnfInstanceId
    properties:
      vnfInstanceId:
        description: >
          Identifies the VNF instance, part of the NS, requiring a
          healing action.
        $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
      cause:
        description: >
          Indicates the reason why a healing procedure is required.
        type: string
      additionalParams:
        description: >
          Additional parameters passed by the NFVO as input to
          the healing process, specific to the VNF being healed.
          EXAMPLE: Input parameters to VNF-specific healing procedures.
        $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs"

  TerminateNsRequest:
    description: >
      This type represents a NS termination request. 
      It shall comply with the provisions defined in Table 6.5.2.15-1.
    type: object
    properties:
      terminationTime:
        description: >
          Timestamp indicating the end time of the NS, i.e. the NS
          will be terminated automatically at this timestamp.
          Cardinality "0" indicates the NS termination takes place immediately
        $ref: "../../definitions/SOL005_def.yaml#/definitions/DateTime"

128 129 130 131 132 133 134 135 136 137 138
  CreateNsRequest:
    type: object
    required:
      - nsdId
      - nsName
      - nsDescription
    properties:
      nsdId:
        description: >
          Identifier of the NSD that defines the NS instance to be
          created.
139
        $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
140 141 142 143 144 145 146 147
      nsName:
        description: >
          Human-readable name of the NS instance to be created.
        type: string
      nsDescription:
        description: >
          Human-readable description of the NS instance to be created.
        type: string
148

149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168
  CancelModeType:
    description: >
      Cancellation mode.

      The NFVO shall not start any new VNF lifecycle management and resource
      management operation, and shall wait for the ongoing VNF lifecycle management
      and resource management operations in the underlying system, typically the VNFM
      and VIM, to finish execution or to time out. After that, the NFVO shall put the
      operation occurrence into the FAILED_TEMP state.

      The NFVO shall not start any new VNF lifecycle management and resource
      management operation, shall cancel the ongoing VNF lifecycle management and
      resource management operations in the underlying system, typically the VNFM and
      VIM, and shall wait for the cancellation to finish or to time out. After that, the NFVO
      shall put the operation occurrence into the FAILED_TEMP state.
    type: string
    enum:
      - GRACEFUL
      - FORCEFUL

169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184
  NsInstance:
    description: >
      This type represents a response for Query NS operation. 
      It shall comply with the provisions defined in Table 6.5.2.10-1.
    type: object
    required:
      - id
      - nsInstanceName
      - nsInstanceDescription
      - nsdId
      - nsdInfoId
      - nsState
    properties:
      id:
        description: >
          Identifier of the NS instance.
185
        $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
186 187 188 189 190 191 192 193 194 195 196
      nsInstanceName:
        description: >
          Human readable name of the NS instance.
        type: string
      nsInstanceDescription:
        description: >
          Human readable description of the NS instance.
        type: string
      nsdId:
        description: >
          Identifier of the NSD on which the NS instance is based.
197
        $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
198 199 200
      nsdInfoId:
        description: >
          Identifier of the NSD information object on which the
201
          NS instance is based. This identifier has been allocated by the NFVO.
202
        $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
203 204 205 206 207
      flavourId:
        description: >
          Identifier of the NS deployment flavor applied to
          the NS instance. This attribute shall be present if the nsState attribute
          value is INSTANTIATED.
208
        $ref: "#/definitions/IdentifierInNsd"
209 210 211 212 213
      vnfInstance:
        description: >
          Information on constituent VNF(s) of the NS instance.
        type: array
        items:
214
          $ref: "#/definitions/VnfInstance"
215 216 217 218 219
      pnfInfo:
        description: >
          Information on the PNF(s) that are part of the NS instance.
        type: array
        items:
220
          $ref: "#/definitions/PnfInfo"
221 222 223 224 225 226 227 228
      virtualLinkInfo:
        description: >
          Information on the VL(s) of the NS instance.
          This attribute shall be present if the nsState attribute
          value is INSTANTIATED and if the NS instance has
          specified connectivity.
        type: array
        items:
229
          $ref: "#/definitions/NsVirtualLinkInfo"
230 231 232 233 234
      vnffgInfo:
        description: >
          Information on the VNFFG(s) of the NS instance.
        type: array
        items:
235
          $ref: "#/definitions/VnffgInfo"
236 237 238 239
      sapInfo:
        description: >
          Information on the SAP(s) of the NS instance.
        type: array
240
        items:
241 242 243 244 245
          $ref: "#/definitions/SapInfo"
      nestedNsInstanceId:
        description: >
          Identifier of the nested NS(s) of the NS instance.
        type: array
246
        items:
247
          $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
248 249 250 251 252 253 254 255
      nsState:
        description: >
          The state of the NS instance.
          Permitted values:
          NOT_INSTANTIATED: The NS instance is
          terminated or not instantiated.
          INSTANTIATED: The NS instance is instantiated.
        type: string
256
        enum:
257
          - NOT_INSTANTIATED
258
          - INSTANTIATED
259 260 261 262 263 264 265 266
      monitoringParameter:
        description: >
          Performance metrics tracked by the NFVO (e.g. for
          auto-scaling purposes) as identified by the NS
          designer in the NSD.
        type: array
        items:
          $ref: "#/definitions/NsMonitoringParameter"
267 268 269 270 271 272
      nsScaleStatus:
        description: >
          Status of each NS scaling aspect declared in the
          applicable DF, how "big" the NS instance has been
          scaled w.r.t. that aspect.
          This attribute shall be present if the nsState attribute
273
          value is INSTANTIATED.
274 275
        type: array
        items:
276
          $ref: "#/definitions/NsScaleInfo"
277 278 279 280 281 282
      additionalAffinityOrAntiAffinityRule:
        description: >
          Information on the additional affinity or anti-affinity
          rule from NS instantiation operation. Shall not
          conflict with rules already specified in the NSD.
        type: array
283
        items:
284 285 286
          $ref: "#/definitions/AffinityOrAntiAffinityRule"
      _links:
        type: object
287
        description: Links to resources related to this resource.
288 289 290 291 292 293
        required:
          - self
        properties:
          self:
            description: >
              URI of this resource.
294
            $ref: "../../definitions/SOL005_def.yaml#/definitions/Link"
295 296 297 298 299
          nestedNsInstances:
            description: >
              Links to resources related to this notification.
            type: array
            items:
300
              $ref: "../../definitions/SOL005_def.yaml#/definitions/Link"
301 302 303 304 305 306
          instantiate:
            description: >
              Link to the "instantiate" task resource, if the related
              operation is possible based on the current status of
              this NS instance resource (i.e. NS instance in
              NOT_INSTANTIATED state).
307
            $ref: "../../definitions/SOL005_def.yaml#/definitions/Link"
308 309 310 311 312 313
          terminate:
            description: >
              Link to the "terminate" task resource, if the related
              operation is possible based on the current status of
              this NS instance resource (i.e. NS instance is in
              INSTANTIATED state).
314
            $ref: "../../definitions/SOL005_def.yaml#/definitions/Link"
315 316 317 318 319 320
          update:
            description: >
              Link to the "update" task resource, if the related
              operation is possible based on the current status of
              this NS instance resource (i.e. NS instance is in
              INSTANTIATED state).
321
            $ref: "../../definitions/SOL005_def.yaml#/definitions/Link"
322 323 324 325 326 327 328
          scale:
            description: >
              Link to the "scale" task resource, if the related
              operation is supported for this NS instance, and is
              possible based on the current status of this NS
              instance resource (i.e. NS instance is in
              INSTANTIATED state).
329
            $ref: "../../definitions/SOL005_def.yaml#/definitions/Link"
330 331 332 333 334 335 336
          heal:
            description: >
              Link to the "heal" task resource, if the related
              operation is supported for this NS instance, and is
              possible based on the current status of this NS
              instance resource (i.e. NS instance is in
              INSTANTIATED state).
337
            $ref: "../../definitions/SOL005_def.yaml#/definitions/Link"
338

339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355
  VnfInstance:
    description: >
      This type represents a VNF instance.
    type: object
    required:
      - id
      - vnfdId
      - vnfProvider
      - vnfProductName
      - vnfSoftwareVersion
      - vnfdVersion
      - vnfPkgId
      - instantiationState
    properties:
      id:
        description: >
          Identifier of the VNF instance.
356
        $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
357 358 359 360 361 362 363 364 365 366 367 368 369
      vnfInstanceName:
        description: >
          Name of the VNF instance.
          This attribute can be modified with the PATCH method.
        type: string
      vnfInstanceDescription:
        description: >
          Human-readable description of the VNF instance.
          This attribute can be modified with the PATCH method.
        type: string
      vnfdId:
        description: >
          Identifier of the VNFD on which the VNF instance is based.
370
        $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
371 372 373 374 375 376 377 378 379 380 381
      vnfProvider:
        description: >
          Provider of the VNF and the VNFD. The value is copied from the VNFD.
        type: string
      vnfProductName:
        description: >
          Name to identify the VNF Product. The value is copied from the VNFD.
        type: string
      vnfSoftwareVersion:
        description: >
          Software version of the VNF. The value is copied from the VNFD.
382
        $ref: "../../definitions/SOL005_def.yaml#/definitions/Version"
383 384 385
      vnfdVersion:
        description: >
          Identifies the version of the VNFD. The value is copied from the VNFD.
386
        $ref: "../../definitions/SOL005_def.yaml#/definitions/Version"
387 388
      vnfPkgId:
        description: >
389 390
          Identifier of information held by the NFVO about
          the specific VNF package on which the VNF is
391
          based. This identifier has been allocated by the NFVO.
392 393
          This attribute can be modified with the PATCH
          method.
394
        $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
395 396
      vnfConfigurableProperties:
        description: >
397 398 399 400 401 402 403 404 405 406 407 408
          Additional VNF-specific attributes that provide the current values
          of the configurable properties of the VNF instance.

          These attributes represent values that are stored persistently in the
          VnfInstance structure and that correspond to configuration parameters
          of the VNF instance.
          Modifying these attributes affects the configuration of the VNF instance
          either directly(if the VNF instance is in INSTANTIATED state at the time
          of the modification) or as part of the subsequent VNF instantiation operation
          (if the VNF instance is in NOT_INSTANTIATED state at the time of the modification).

          Configurable properties referred in these attributes are declared in
409
          the VNFD.
410

411 412 413 414 415 416 417 418 419 420 421 422 423
          ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD
          based on TOSCA specifications.
          VNF configurable properties are sometimes also referred to as
          configuration parameters applicable to a VNF. Some of these are set
          prior to instantiation and cannot be modified if the VNF is
          instantiated, some are set prior to instantiation (are part of
          initial configuration) and can be modified later, and others can be
          set only after instantiation. The applicability of certain
          configuration may depend on the VNF and the required operation of
          the VNF at a certain point in time.
          These configurable properties include the following standard
          attributes, which are declared in the VNFD if auto-scaling and/or
          auto-healing are supported by the VNF: 
424 425 426 427 428 429 430 431
            - isAutoscaleEnabled: If present, the VNF supports auto-scaling. If
              set to true, auto-scaling is currently enabled. If set to false,
              auto-scaling is currently disabled.
            - isAutohealEnabled: If present, the VNF supports auto-healing. If
              set to true, auto-healing is currently enabled. If set to false,
              auto-healing is currently disabled.

          These attributea can be modified with the PATCH method.
432
        $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs"
433 434 435
      vimId:
        description: >
          Identifier of a VIM that manages resources for the VNF instance.
436
        $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455
      instantiationState:
        description: >
          The instantiation state of the VNF.
        type: string
        enum:
          - NOT_INSTANTIATED
          - INSTANTIATED
      instantiatedVnfInfo:
        description: >
          Information specific to an instantiated VNF instance. This attribute
          shall be present if the instantiateState attribute value is INSTANTIATED.
        type: object
        required:
          - flavourId
          - vnfState
        properties:
          flavourId:
            description: >
              Identifier of the VNF deployment flavor applied to this VNF instance.
456
            $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnfd"
457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473
          vnfState:
            description: >
              The state of the VNF instance.
            $ref: "#/definitions/VnfOperationalStateType"
          scaleStatus:
            description: >
              Scale status of the VNF, one entry per aspect. Represents for every
              scaling aspect how "big" the VNF has been scaled w.r.t. that aspect.
            type: array
            items:
              $ref: "#/definitions/VnfScaleInfo"
          extCpInfo:
            description: >
              Information about the external CPs exposed by the VNF instance.
            type: array
            minItems: 1
            items:
474
              $ref: "#/definitions/VnfExtCpInfo"
475 476 477 478 479 480 481 482 483 484 485 486 487 488
          extVirtualLinkInfo:
            description: >
              Information about the external VLs the VNF instance is connected to.
            type: array
            items:
              $ref: "#/definitions/ExtVirtualLinkInfo"
          extManagedVirtualLinkInfo:
            description: >
              External virtual links the VNF instance is connected to.
            type: array
            items:
              $ref: "#/definitions/ExtManagedVirtualLinkInfo"
          monitoringParameters:
            description: >
489 490 491
              Performance metrics tracked by the VNFM (e.g. for 
              auto-scaling purposes) as identified by the VNF 
              provider in the VNFD.
492 493
            type: array
            items:
494
              $ref: "#/definitions/VnfMonitoringParameter"
495 496 497 498 499 500 501 502 503 504
          localizationLanguage:
            description: >
              Information about localization language of the VNF (includes e.g.
              strings in the VNFD). The localization languages supported by a VNF
              can be declared in the VNFD, and localization language selection can
              take place at instantiation time.
              The value shall comply with the format defined in IETF RFC 5646.
            type: string
          vnfcResourceInfo:
            description: >
505 506
              Information about the virtualised compute and storage resources used
              by the VNFCs of the VNF instance.
507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524
            type: array
            items:
              $ref: "#/definitions/VnfcResourceInfo"
          virtualLinkResourceInfo:
            description: >
              Information about the virtualised network resources used by the VLs
              of the VNF instance.
            type: array
            items:
              $ref: "#/definitions/VnfVirtualLinkResourceInfo"
          virtualStorageResourceInfo:
            description: >
              Information on the virtualised storage resource(s) used as storage for the VNF instance.
            type: array
            items:
              $ref: "#/definitions/VirtualStorageResourceInfo"
      metadata:
        description: >
525 526 527 528 529 530 531 532 533 534 535
          Additional VNF-specific attributes that provide metadata
          describing the VNF instance.

          These attributes represent values that are stored persistently in the VnfInstance
          structure for consumption by functional blocks that invoke the VNF lifecycle management interface.
          They are not consumed by the VNFM, or the lifecycle management scripts.
          Modifying the values of these attributes has no effect on the VNF instance, it only affects
          the information represented in the VnfInstance structure.
          Metadata that are writeable are declared in the VNFD .
          These attributes can be modified with the PATCH method.
          ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on TOSCA specifications.
536
        $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs"
537 538
      extensions:
        description: >
539 540 541 542 543 544 545
          Additional VNF-specific attributes that affect the lifecycle management of this VNF instance.
          These attributes represent values that are stored persistently in the VnfInstance structure
          for consumption by the VNFM, or by the lifecycle management scripts.  during the execution
          of VNF lifecycle management operations.
          Modifying the values of these attributes has no direct effect on the VNF instance; however,
          the modified attribute values can be considered during subsequent VNF lifecycle management
          operations, which means that the modified values can indirectly affect the configuration of the VNF instance.
546
          Extensions that are writeable are declared in the VNFD.
547 548
          This attribute These attributes can be modified with the PATCH method.
          ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on TOSCA specifications.
549
        $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs"
550

551 552 553 554
  LccnLinks:
    description: >
      This type represents the links to resources that a notification can contain.
    type: object
555
    required:
556
      - nsInstance
557
    properties:
558 559 560 561
      nsInstance:
        description: >
          Link to the resource representing the NS instance to
          which the notified change applies..
562
        $ref: "../../definitions/SOL005_def.yaml#/definitions/NotificationLink"
563 564 565
      subscription:
        description: >
          Link to the subscription that triggered this notification.
566
        $ref: "../../definitions/SOL005_def.yaml#/definitions/NotificationLink"
567
      nslcmOpOcc:
568 569 570 571
        description: >
          Link to the lifecycle operation occurrence that this
          notification is related to. Shall be present if there is a
          related lifecycle operation occurrence
572
        $ref: "../../definitions/SOL005_def.yaml#/definitions/NotificationLink"
573

574 575 576 577 578
  VnfOperationalStateType:
    type: string
    enum:
      - STARTED
      - STOPPED
579

580 581 582 583 584 585 586 587 588
  VnfScaleInfo:
    required:
      - aspectId
      - scaleLevel
    type: object
    properties:
      aspectId:
        description: >
          Identifier of the scaling aspect.
589
        $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnfd"
590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610
      scaleLevel:
        description: >
          Indicates the scale level. The minimum value shall be 0 and the
          maximum value shall be <= maxScaleLevel as described in the VNFD.
        type: integer

  PnfInfo:
    description: >
      This type represents the information about a PNF that is part of an NS instance. 
      It shall comply with the provisions
      defined in Table 6.5.3.13-1.
    type: object
    required:
      - pnfId
      - pnfdId
      - pnfdInfoId
      - pnfProfileId
    properties:
      pnfId:
        description: >
          Identifier of the PNF. This identifier is allocated by the OSS/BSS.
611
        $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
612 613 614 615 616 617 618
      pnfName:
        description: >
          Name of the PNF.
        type: string
      pnfdId:
        description: >
          Identifier of the PNFD on which the PNF is based.
619
        $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
620 621 622 623
      pnfdInfoId:
        description: >
          Identifier of the PNFD information onject related to this
          PNF. This identifier is allocated by the NFVO
624
        $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
625 626 627 628
      pnfProfileId:
        description: >
          Identifier of the related PnfProfile in the NSD on which
          the PNF is based.
629
        $ref: "#/definitions/IdentifierInNsd"
630 631 632 633
      cpInfo:
        description: >
          Information on the external CP of the PNF.
        $ref: "#/definitions/PnfExtCpInfo"
634

635 636 637 638 639 640 641 642 643 644 645 646 647
  PnfExtCpInfo:
    description: >
      This type represents the information about the external CP of the PNF. 
      It shall comply with the provisions defined in
      Table 6.5.3.17-1.
    type: object
    required:
      - cpInstanceId
      - cpdId
    properties:
      cpInstanceId:
        description: >
          Identifier of the CP in the scope of the PNF.
648
        $ref: "#/definitions/IdentifierInPnf"
649 650 651 652
      cpdId:
        description: >
          Identifier of (reference to) the Connection Point
          Descriptor (CPD) for this CP.
653
        $ref: "#/definitions/IdentifierInNsd"
654 655 656 657
      cpProtocolData:
        description: >
          Parameters for configuring the network protocols on the CP.
        type: array
658
        items:
659
          $ref: "#/definitions/CpProtocolData"
660

661 662 663 664 665 666 667 668 669
  NsVirtualLinkInfo:
    description: >
      This type specifies the information about an NS VL instance. 
      It shall comply with the provisions defined in
      Table 6.5.3.53-1
    type: object
    required:
      - id
      - nsVirtualLinkDescId
670
      - nsVirtualLinkProfileId
671 672 673 674
    properties:
      id:
        description: >
          Identifier of the VL instance.
675
        $ref: "#/definitions/IdentifierInNs"
676 677 678
      nsVirtualLinkDescId:
        description: >
          Identifier of the VLD in the NSD.
679
        $ref: "#/definitions/IdentifierInNsd"
680 681 682
      nsVirtualLinkProfileId:
        description: >
          Identifier of the VL profile in the NSD.
683
        $ref: "#/definitions/IdentifierInNsd"
684 685 686 687 688
      resourceHandle:
        description: >
          Identifier(s) of the virtualised network resource(s)
          realizing the VL instance. See note.
        type: array
689
        items:
690
          $ref: "../../definitions/SOL005_def.yaml#/definitions/ResourceHandle"
691 692 693 694 695 696
      linkPort:
        description: >
          Link ports of the VL instance.
          Cardinality of zero indicates that no port has yet been
          created for the VL instance.
        type: array
697
        items:
698 699 700 701 702 703 704 705 706 707 708 709 710 711 712
          $ref: "#/definitions/NsLinkPortInfo"

  VnffgInfo:
    description: >
      Information on the VNFFG(s) of the NS instance.
    type: object
    required:
      - id
      - vnffgdId
      - vnfInstanceId
      - pnfInfoId
    properties:
      id:
        description: >
          Identifier of this VNFFG instance.
713
        $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
714 715 716
      vnffgdId:
        description: >
          Identifier of the VNFFGD in the NSD.
717
        $ref: "#/definitions/IdentifierInNsd"
718 719 720 721
      vnfInstanceId:
        description: >
          Identifier(s) of the constituent VNF instance(s) of this VNFFG instance.
        type: array
722
        items:
723
          $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
724 725 726 727 728
      pnfdInfoId:
        description: >
          Identifier(s) of the constituent PNF instance(s) of this
          VNFFG instance.
        type: array
729
        items:
730
          $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
731 732 733 734 735
      nsVirtualLinkInfoId:
        description: >
          Identifier(s) of the constituent VL instance(s) of this
          VNFFG instance.
        type: array
736
        items:
737
          $ref: "#/definitions/IdentifierInNs"
738 739 740 741 742 743
      nsCpHandle:
        description: >
          Identifiers of the CP instances attached to the
          constituent VNFs and PNFs or the SAP instances of the
          VNFFG. See note.
        type: array
744
        items:
745 746
          $ref: "#/definitions/NsCpHandle"

747 748 749 750 751 752 753 754 755 756 757 758 759
  NfpInfo:
    description: >
      This type represents an NFP instance. It shall comply with 
      the provisions defined in Table 6.5.3.66-1.
    type: object
    required:
      - id
      - nfpRule
      - nfpState
    properties:
      id:
        description: >
          Identifier of this NFP instance.
760
        $ref: "#/definitions/IdentifierInNs"
761 762 763 764 765
      nfpdId:
        description: >
          Identifier of the NFPD used to instantiate this NFP
          instance. It shall be present if the NFP instance is
          instantiated from the NFPD.
766
        $ref: "#/definitions/IdentifierInNsd"
767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803
      nfpName:
        description: >
          Human readable name for the NFP instance.
        type: string
      description:
        description: >
          Human readable description for the NFP instance.
        type: string
      cpGroup:
        description: >
          Group(s) of CPs and/or SAPs which the NFP passes through.
          When multiple identifiers are included, the position of 
          the identifier in the CpGroup data type specifies the 
          position of the group in the path.
        type: array
        minItems: 1
        items:
          $ref: "#/definitions/NsCpHandle"
      totalCp:
        description: >
          Total number of CP and SAP instances in this NFP instance.
        type: integer
      nfpRule:
        description: >
          NFP classification and selection rule.
        $ref: "#/definitions/NfpRule"
      nfpState:
        description: >
          The state of the NFP instance.
          Permitted values:
          * ENABLED: The NFP instance is enabled.
          * DISABLED: The NFP instance is disabled.
        type: string
        enum:
          - ENABLED
          - DISABLED

804 805 806 807 808
  NsCpHandle:
    description: >
      This type represents an identifier of the CP or SAP instance. 
      It shall comply with the provisions defined in
      Table 6.5.3.56-1.
809
    type: object
810 811 812 813 814
    properties:
      vnfInstanceId:
        description: >
          Identifier of the VNF instance associated to the CP instance.
          This attribute shall be present if the CP instance is VNF external CP.
815
        $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
816 817 818 819 820
      vnfExtCpInstanceId:
        description: >
          Identifier of the VNF external CP instance in the scope
          of the VNF instance. This attribute shall be present if the CP instance is VNF
          external CP. See notes 1 and 4.
821
        $ref: "#/definitions/IdentifierInVnf"
822 823 824 825 826
      pnfInfoId:
        description: >
          Identifier of the PNF instance associated to the CP
          instance. This attribute shall be present if the CP instance is PNF
          external CP. See notes 2 and 4.          
827
        $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
828 829 830 831 832
      pnfExtCpInstanceId:
        description: >
          Identifier of the PNF external CP instance in the scope
          of the PNF. This attribute shall be present if the CP instance is PNF
          external CP. See notes 2 and 4.
833
        $ref: "#/definitions/IdentifierInPnf"
834 835 836 837 838
      nsInstanceId:
        description: >
          Identifier of the NS instance associated to the SAP
          instance. This attribute shall be present if the CP instance is NS
          SAP. See notes 3 and 4.           
839
        $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
840 841 842 843 844
      nsSapInstanceId:
        description: >
          Identifier of the SAP instance in the scope of the NS
          instance. This attribute shall be present if the CP instance is NS
          SAP. See notes 3 and 4.           
845
        $ref: "#/definitions/IdentifierInNs"
846

847 848 849 850 851 852 853 854 855 856 857 858 859
  SapInfo:
    description: >
      This type represents an SAP instance. It shall comply with the provisions defined in Table 6.5.3.67-1.
    type: object
    required:
      - id
      - sapdId
      - sapName
      - sapProtocolInfo
    properties:
      id:
        description: >
          Identifier of the SAP instance.
860
        $ref: "#/definitions/IdentifierInNs"
861 862 863
      sapdId:
        description: >
          Identifier of the SAPD in the NSD.
864
        $ref: "#/definitions/IdentifierInNsd"
865 866 867 868 869 870 871 872 873 874 875 876
      sapName:
        description: >
          Human readable name for the SAP instance.
        type: string
      description:
        description: >
          Human readable description for the SAP instance.
        type: string
      sapProtocolInfo:
        description: >
          Network protocol information for this SAP.
        type: array
877
        items:
878
          $ref: "#/definitions/CpProtocolInfo"
879

880 881 882 883 884 885 886 887 888 889 890 891
  NsMonitoringParameter:
    description: >
      This type represents a monitoring parameter that is tracked by the NFVO, for example, 
      for auto-scaling purposes. It shall comply with the provisions defined in Table 6.5.3.68-1.
    type: object
    required:
      - id
      - performanceMetric
    properties:
      id:
        description: >
          Identifier of the monitoring parameter defined in the NSD.
892
        $ref: "#/definitions/IdentifierInNsd"
893 894 895 896 897 898 899 900 901 902
      name:
        description: >
          Human readable name of the monitoring parameter, as defined in the NSD.
        type: string
      performanceMetric:
        description: >
          Performance metric that is monitored. This attribute shall contain the related 
          "Measurement Name" value as defined in clause 7.2 of ETSI GS NFV-IFA 027.
        type: string

903 904 905 906 907 908 909 910 911 912 913 914
  VnfMonitoringParameter:
    description: >
      This type represents a monitoring parameter that is tracked by the VNFM, for example, 
      for auto-scaling purposes. It shall comply with the provisions defined in Table 6.5.3.69-1.
    type: object
    required:
      - id
      - performanceMetric
    properties:
      id:
        description: >
          Identifier of the monitoring parameter defined in the VNFD.
915
        $ref: "#/definitions/IdentifierInNsd"
916 917 918 919 920 921 922 923 924 925
      name:
        description: >
          Human readable name of the monitoring parameter, as defined in the VNFD.
        type: string
      performanceMetric:
        description: >
          Performance metric that is monitored. This attribute shall contain the related 
          "Measurement Name" value as defined in clause 7.2 of ETSI GS NFV-IFA 027.
        type: string

926 927 928 929 930 931 932 933 934 935 936 937
  VnfExtCpInfo:
    description: >
      This type represents information about an external CP of a VNF. It shall comply 
      with the provisions defined in Table 6.5.3.70-1.
    type: object
    required:
      - id
      - cpdId
    properties:
      id:
        description: >
          Identifier of the external CP instance and the related information instance.
938
        $ref: "#/definitions/IdentifierInVnf"
939 940 941
      cpdId:
        description: >
          Identifier of the external CPD, VnfExtCpd, in the VNFD.
942
        $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnfd"
943 944 945 946 947 948
      cpProtocolInfo:
        description: >
          Network protocol information for this CP.
        type: array
        minItems: 1
        items:
949
          $ref: "#/definitions/CpProtocolInfo"
950 951 952 953 954 955 956 957
      extLinkPortId:
        description: >
          Identifier of the "extLinkPortInfo" structure inside the "extVirtualLinkInfo" 
          structure. Shall be present if the CP is associated to a link port.
        $ref: "#/definitions/CpProtocolInfo"
      metadata:
        description: >
          Metadata about this external CP.
958
        $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs"
959 960 961 962 963 964 965
      associatedVnfcCpId:
        description: >
          Identifier of the "vnfcCpInfo" structure in "VnfcResourceInfo" structure 
          that represents the VNFC CP which is exposed by this external CP instance. 
          Shall be present in case this CP instance maps to a VNFC CP(s).
          The attributes "associatedVnfcCpId" and "associatedVnfVirtualLinkId" are 
          mutually exclusive. One and only one shall be present.
966
        $ref: "#/definitions/IdentifierInVnf"
967 968 969 970 971 972 973
      associatedVnfVirtualLinkId:
        description: >
          Identifier of the "VnfVirtualLinkResourceInfo" structure that represents 
          the internal VL, which is exposed by this external CP instance. Shall be 
          present in case this CP instance maps to an internal VL.
          The attributes "associatedVnfcCpId" and "associatedVnfVirtualLinkId" are 
          mutually exclusive. One and only one shall be present.
974
        $ref: "#/definitions/IdentifierInVnf"
975

976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011
  CpGroupInfo:
    description: >
      This type represents describes a group of CPs and/or SAPs pairs associated to 
      the same position in an NFP. It shall comply with the provisions defined in 
      Table 6.5.3.71-1.
    type: object
    properties:
      cpPairInfo:
        description: >
          One or more pair(s) of ingress and egress CPs or SAPs which the NFP passes by.
          All CP or SAP pairs in a group shall be instantiated from connection point 
          descriptors or service access point descriptors referenced in the corresponding 
          NfpPositionDesc.
        type: array
        minItems: 1
        items:
          $ref: "#/definitions/CpPairInfo"
      forwardingBehaviour:
        description: >
          Identifies a rule to apply to forward traffic to the ingress CPs or SAPs of 
          the group.
          Permitted values:
          * ALL = Traffic flows shall be forwarded simultaneously to all CPs or SAPs 
          of the group.
          * LB = Traffic flows shall be forwarded to one CP or SAP of the group selected 
          based on a loadbalancing algorithm.
        type: string
        enum:
          - ALL
          - LB
      forwardingBehaviourInputParameters:
        description: >
          Provides input parameters to configure the forwarding behaviour (e.g. identifies 
          a load balancing algorithm and criteria).
        $ref: "#/definitions/ForwardingBehaviourInputParameters"

1012
  CpPairInfo:
1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026
    description: >
      This type represents describes a pair of ingress and egress CPs or SAPs which 
      the NFP passes by. It shall comply with the provisions defined in Table 6.5.3.72-1.
    type: object
    properties:
      vnfExtCpIds:
        description: >
          Identifier(s) of the VNF CP(s) which form the pair.
          The presence of a single vnfExpCpId, pnfExtCpId, or sapId occurrence indicates 
          that the CP or SAP is used both as an ingress and egress port at a particular 
          NFP position.
        type: array
        maxItems: 2
        items:
1027
          $ref: "#/definitions/IdentifierInVnf"
1028 1029 1030 1031 1032 1033 1034 1035 1036
      pnfExtCpIds:
        description: >
          Identifier(s) of the PNF CP(s) which form the pair.
          The presence of a single vnfExpCpId, pnfExtCpId, or sapId occurrence indicates 
          that the CP or SAP is used both as an ingress and egress port at a particular 
          NFP position.
        type: array
        maxItems: 2
        items:
1037
          $ref: "#/definitions/IdentifierInPnf"
1038 1039 1040 1041 1042 1043 1044 1045 1046
      sapIds:
        description: >
          Identifier(s) of the SAP(s) which form the pair.
          The presence of a single vnfExpCpId, pnfExtCpId, or sapId occurrence indicates 
          that the CP or SAP is used both as an ingress and egress port at a particular 
          NFP position.
        type: array
        maxItems: 2
        items:
1047
          $ref: "#/definitions/IdentifierInNs"
1048

1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073
  ForwardingBehaviourInputParameters:
    description: >
      This type represents provides input parameters to configure the forwarding behaviour. 
      It shall comply with the provisions defined in Table 6.5.3.73-1.
    type: object
    properties:
      algortihmName:
        description: >
          May be included if forwarding behaviour is equal to LB. Shall not be included otherwise.
          Permitted values:
          * ROUND_ROBIN
          * LEAST_CONNECTION
          * LEAST_TRAFFIC
          * LEAST_RESPONSE_TIME
          * CHAINED_FAILOVER
          * SOURCE_IP_HASH
          * SOURCE_MAC_HASH
        type: string
        enum:
          - ROUND_ROBIN
          - LEAST_CONNECTION
          - LEAST_TRAFFIC
          - LEAST_RESPONSE_TIME
          - CHAINED_FAILOVER
          - SOURCE_IP_HASH
1074
          - SOURCE_MAC_HASH
1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085
      algorithmWeights:
        description: >
          Percentage of messages sent to a CP instance. May be included if applicable to 
          the algorithm.
          If applicable to the algorithm but not provided, default values determined by 
          the VIM or NFVI are expected to be used.
          Weight applies to the CP instances in the order they have been created.
        type: array
        items:
          type: integer

1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111
  CpProtocolInfo:
    description: >
      This type describes the protocol layer(s) that a CP or SAP uses together with protocol-related information, like
      addresses. It shall comply with the provisions defined in Table 6.5.3.58-1.
    type: object
    required:
      - layerProtocol
      - ipOverEthernet
    properties:
      layerProtocol:
        description: >
          The identifier of layer(s) and protocol(s)
          associated to the network address information.
          Permitted values: IP_OVER_ETHERNET See note.
        type: string
        enum:
          - IP_OVER_ETHERNET
      ipOverEthernet:
        description: >
          IP addresses over Ethernet to assign to the CP
          or SAP instance. Shall be present if
          layerProtocol is equal to "
          IP_OVER_ETHERNET", and shall be absent otherwise.
        $ref: "#/definitions/IpOverEthernetAddressInfo"

  IpOverEthernetAddressInfo:
1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125
    description: >
      This type represents information about a network address that has been assigned.
      It shall comply with the provisions defined in Table 6.5.3.18-1.
    type: object
    required:
      - macAddress
      - ipAddresses
      - subnetId
      - addresses
      - addressRange
    properties:
      macAddress:
        description: >
          Assigned MAC address.
1126
        $ref: "#/definitions/MacAddress"
1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151
      ipAddresses:
        description: >
          Addresses assigned to the CP instance. Each entry represents IP
          addresses assigned by fixed or dynamic IP address assignment per
          subnet.
        type: array
        items:
          type: object
          required:
            - type
          properties:
            type:
              description: >
                The type of the IP addresses.
                Permitted values: IPV4, IPV6.
              type: string
              enum:
                - IPV4
                - IPV6
            addresses:
              description: >
                Fixed addresses assigned (from the subnet defined by
                "subnetId" if provided).
              type: array
              items:
1152
                $ref: "#/definitions/IpAddress"
1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171
            isDynamic:
              description: >
                Indicates whether this set of addresses was assigned
                dynamically (true) or based on address information provided as
                input from the API consumer (false). Shall be present if
                "addresses" is present and shall be absent otherwise.
              type: boolean
            addressRange:
              description: >
                An IP address range used, e.g., in case of egress connections.
                Exactly one of "addresses" or "addressRange" shall be present.
              type: object
              required:
                - minAddress
                - maxAddress
              properties:
                minAddress:
                  description: >
                    Lowest IP address belonging to the range.
1172
                  $ref: "#/definitions/IpAddress"
1173 1174 1175
                maxAddress:
                  description: >
                    Highest IP address belonging to the range
1176
                  $ref: "#/definitions/IpAddress"
1177 1178 1179 1180 1181 1182
            subnetId:
              description: >
                Subnet defined by the identifier of the subnet resource in
                the VIM.
                In case this attribute is present, IP addresses are bound
                to that subnet.
1183
              $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVim"
Samir Medjiah's avatar
Samir Medjiah committed
1184 1185


1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198
      type:
        description: >
          The type of the IP addresses
        type: string
        enum:
          - PV4
          - PV6
      addresses:
        description: >
          Fixed addresses assigned (from the subnet
          defined by "subnetId" if provided). See note.
        type: array
        items:
1199
        $ref: "#/definitions/IpAddress"
1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219
      isDynamic:
        description: >
          Indicates whether this set of addresses was
          assigned dynamically (true) or based on address
          information provided as input from the API
          consumer (false). Shall be present if "addresses"
          is present and shall be absent otherwise.
        type: boolean
      addressRange:
        description: >
          An IP address range used, e.g. in case of egress
          connections. See note.
        type: object
        required:
          - minAddress
          - maxAddress
        properties:
          minAddress:
            description: >
              Lowest IP address belonging to the range.
1220
            $ref: "#/definitions/IpAddress"
1221 1222 1223
          maxAddress:
            description: >
              Highest IP address belonging to the range
1224
            $ref: "#/definitions/IpAddress"
1225 1226 1227
      minAddress:
        description: >
          Lowest IP address belonging to the range
1228
        $ref: "#/definitions/IpAddress"
1229 1230 1231
      maxAddress:
        description: >
          Highest IP address belonging to the range.
1232
        $ref: "#/definitions/IpAddress"
1233 1234 1235 1236 1237 1238
      subnetId:
        description: >
          Subnet defined by the identifier of the subnet
          resource in the VIM.
          In case this attribute is present, IP addresses
          are bound to that subnet.
1239
        $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVim"
1240

1241 1242 1243 1244 1245 1246 1247
  ExtVirtualLinkInfo:
    type: object
    required:
      - id
      - resourceHandle
    properties:
      id:
1248 1249 1250 1251 1252
        description: >
          Identifier of the external VL and the related external VL
          information instance.
          The identifier is assigned by the NFV-MANO entity that manages this
          VL instance.
1253
        $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
1254 1255 1256
      resourceHandle:
        description: >
          Reference to the resource realizing this VL.
1257
        $ref: "../../definitions/SOL005_def.yaml#/definitions/ResourceHandle"
1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277
      extLinkPorts:
        description: >
          Link ports of this VL.
        type: array
        items:
          $ref: "#/definitions/ExtLinkPortInfo"

  ExtLinkPortInfo:
    description: >
      This type represents information about a link port of an external VL,
      i.e. a port providing connectivity for the VNF to an NS VL. 
    type: object
    required:
      - id
      - resourceHandle
    properties:
      id:
        description: >
          Identifier of this link port as provided by the entity that has
          created the link port.
1278
        $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
1279 1280 1281
      resourceHandle:
        description: >
          Reference to the virtualised resource realizing this link port.
1282
        $ref: "../../definitions/SOL005_def.yaml#/definitions/ResourceHandle"
1283 1284 1285 1286 1287 1288
      cpInstanceId:
        description: >
          Identifier of the external CP of the VNF connected to this link
          port. There shall be at most one link port associated with any
          external connection point instance. The value refers to an
          "extCpInfo" item in the VnfInstance.
1289
        $ref: "#/definitions/IdentifierInVnf"
1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302

  ExtManagedVirtualLinkInfo:
    type: object
    required:
      - id
      - vnfVirtualLinkDescId
    properties:
      id:
        description: >
          Identifier of the externally-managed internal VL and the related
          externally-managed VL information instance.
          The identifier is assigned by the NFV-MANO entity that manages this
          VL instance.
1303
        $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
1304 1305 1306
      vnfVirtualLinkDescId:
        description: >
          Identifier of the VNF Virtual Link Descriptor (VLD) in the VNFD.
1307
        $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnfd"
1308 1309 1310
      networkResource:
        description: >
          Reference to the VirtualNetwork resource.
1311
        $ref: "../../definitions/SOL005_def.yaml#/definitions/ResourceHandle"
1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327
      vnfLinkPorts:
        description: >
          Link ports of this VL.
        type: array
        items:
          $ref: "#/definitions/VnfLinkPortInfo"

  VnfLinkPortInfo:
    type: object
    required:
      - id
      - resourceHandle
    properties:
      id:
        description: >
          Identifier of this link port as provided by the entity that has created the link port.
1328
        $ref: "#/definitions/IdentifierInVnf"
1329 1330 1331
      resourceHandle:
        description: >
          Reference to the virtualised network resource realizing this link port.
1332
        $ref: "../../definitions/SOL005_def.yaml#/definitions/ResourceHandle"
1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348
      cpInstanceId:
        description: >
          When the link port is used for external connectivity by the VNF,
          this attribute represents the identifier of the external CP of the
          VNF to be connected to this link port.
          When the link port is used for internal connectivity in the VNF,
          this attribute represents the VNFC CP to be connected to this link
          port.
          Shall be present when the link port is used for external
          connectivity by the VNF.
          may be present if used to reference a VNFC CP instance.
          There shall be at most one link port associated with any external
          connection point instance or internal connection point
          (i.e. VNFC CP) instance.
          The value refers to an "extCpInfo" item in the VnfInstance or a
          "vnfcCpInfo" item of a "vnfcResouceInfo" item in the VnfInstance.
1349
        $ref: "#/definitions/IdentifierInVnf"
1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361
      cpInstanceType:
        description: >
          Type of the CP instance that is identified by cpInstanceId.
          Shall be present if "cpInstanceId" is present, and shall be
          absent otherwise.
          Permitted values:
          * VNFC_CP: The link port is connected to a VNFC CP
          * EXT_CP: The link port is associated to an external CP.
        type: string
        enum:
          - VNFC_CP
          - EXT_CP
1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372

  MonitoringParameter:
    type: object
    required:
      - id
      - value
      - timeStamp
    properties:
      id:
        description: >
          Identifier of the monitoring parameter defined in the VNFD.
1373
        $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnfd"
1374 1375 1376 1377 1378 1379 1380
      name:
        description: >
          Human readable name of the monitoring parameter, as defined in the VNFD.
        type: string
      value:
        description: >
          Value of the monitoring parameter known to the VNFM (e.g. obtained
1381
          for auto-scaling purposes).
1382 1383 1384 1385
          The type of the "value" attribute (i.e. scalar, structure (Object in
          JSON), or array (of scalars, arrays or structures/Objects)) is
          assumed to be defined in an external measurement specification.
        type: object
1386 1387 1388 1389 1390 1391
      timeStamp:
        description: >
          Represents the point in time when the measurement has been performed,
          as known to the VNFM.
          Should be formatted according to ETF RFC 3339.
        type: string
1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405

  VnfcResourceInfo:
    description: >
      This type represents the information on virtualised compute and storage
      resources used by a VNFC in a VNF instance.
    type: object
    required:
      - id
      - vduId
      - computeResource
    properties:
      id:
        description: >
          Identifier of this VnfcResourceInfo instance.
1406
        $ref: "#/definitions/IdentifierInVnf"
1407 1408 1409
      vduId:
        description: >
          Reference to the applicable VDU in the VNFD.
1410
        $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnfd"
1411 1412 1413
      computeResource:
        description: >
          Reference to the VirtualCompute resource.
1414
        $ref: "../../definitions/SOL005_def.yaml#/definitions/ResourceHandle"
1415 1416 1417 1418 1419 1420
      storageResourceIds:
        description: >
          References to the VirtualStorage resources. The value refers to a
          VirtualStorageResourceInfo item in the VnfInstance.
        type: array
        items:
1421
          $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
1422 1423 1424 1425
      reservationId:
        description: >
          The reservation identifier applicable to the resource. It shall be
          present when an applicable reservation exists.
1426
        $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443
      vnfcCpInfo:
        description: >
          CPs of the VNFC instance.
          Shall be present when that particular CP of the VNFC instance is
          associated to an external CP of the VNF instance.
          May be present otherwise.
        type: array
        items:
          type: object
          required:
            - id
            - cpdId
          properties:
            id:
              description: >
                Identifier of this VNFC CP instance and the associated array
                entry.
1444
              $ref: "#/definitions/IdentifierInVnf"
1445 1446 1447
            cpdId:
              description: >
                Identifier of the VDU CPD, cpdId, in the VNFD.
1448
              $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnfd"
1449 1450 1451 1452
            vnfExtCpId:
              description: >
                When the VNFC CP is exposed as external CP of the VNF, the
                identifier of this external VNF CP.
1453
              $ref: "#/definitions/IdentifierInVnf"
1454 1455 1456 1457 1458 1459 1460 1461 1462
            cpProtocolInfo:
              description: >
                Network protocol information for this CP.
              type: array
              items:
                $ref: "#/definitions/CpProtocolInfo"
            vnfLinkPortId:
              description: >
                Identifier of the "vnfLinkPorts" structure in the
1463
                "VnfVirtualLinkResourceInfo" structure. Shall be present if
1464
                the CP is associated to a link port.
1465
              $ref: "#/definitions/IdentifierInVnf"
1466 1467 1468
            metadata:
              description: >
                Metadata about this CP.
1469
              $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs"
1470 1471 1472
      metadata:
        description: >
          Metadata about this resource.
1473
        $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs"
1474 1475

  VnfVirtualLinkResourceInfo:
1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487
    description: >
      This type represents the information that allows addressing a virtualised
      resource that is used by an internal VL instance in a VNF instance.
    type: object
    required:
      - id
      - vnfVirtualLinkDescId
      - networkResource
    properties:
      id:
        description: >
          Identifier of this VnfVirtualLinkResourceInfo instance.
1488
        $ref: "#/definitions/IdentifierInVnf"
1489 1490 1491
      vnfVirtualLinkDescId:
        description: >
          Identifier of the VNF Virtual Link Descriptor (VLD) in the VNFD.
1492
        $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnfd"
1493 1494 1495
      networkResource:
        description: >
          Reference to the VirtualNetwork resource.
1496
        $ref: "../../definitions/SOL005_def.yaml#/definitions/ResourceHandle"
1497 1498 1499 1500
      reservationId:
        description: >
          The reservation identifier applicable to the resource. It shall be
          present when an applicable reservation exists.
1501
        $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513
      vnfLinkPorts:
        description: >
          Links ports of this VL.
          Shall be present when the linkPort is used for external connectivity
          by the VNF (refer to VnfLinkPortInfo).
          May be present otherwise.
        type: array
        items:
          $ref: "#/definitions/VnfLinkPortInfo"
      metadata:
        description: >
          Metadata about this resource.
1514
        $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs"
1515

1516
  VirtualStorageResourceInfo:
1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528
    description: >
      This type represents the information that allows addressing a virtualised
      resource that is used by a VNF instance.
    type: object
    required:
      - id
      - virtualStorageDescId
      - storageResource
    properties:
      id:
        description: >
          Identifier of this VirtualStorageResourceInfo instance.
1529
        $ref: "#/definitions/IdentifierInVnf"
1530 1531 1532
      virtualStorageDescId:
        description: >
          Identifier of the VirtualStorageDesc in the VNFD.
1533
        $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnfd"
1534 1535 1536
      storageResource:
        description: >
          Reference to the VirtualStorage resource.
1537
        $ref: "../../definitions/SOL005_def.yaml#/definitions/ResourceHandle"
1538 1539 1540 1541
      reservationId:
        description: >
          The reservation identifier applicable to the resource. It shall be
          present when an applicable reservation exists.
1542
        $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
1543 1544 1545
      metadata:
        description: >
          Metadata about this resource.
1546
        $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs"
1547

1548
  NsLinkPortInfo:
1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560
    description: >
      This type represents information about a link port of a VL instance.
      It shall comply with the provisions defined in Table 6.5.3.55-1.
    type: object
    required:
      - id
      - resourceHandle
    properties:
      id:
        description: >
          Identifier of this link port as provided by the entity that
          has created the link port.
1561
        $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
1562 1563 1564 1565
      resourceHandle:
        description: >
          Identifier of the virtualised network resource realizing
          this link port.
1566
        $ref: "../../definitions/SOL005_def.yaml#/definitions/ResourceHandle"
1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578
      nsCpHandle:
        description: >
          Identifier of the CP/SAP instance to be connected to this
          link port. The value refers to a vnfExtCpInfo item in the
          VnfInstance, or a pnfExtCpInfo item in the PnfInfo, or a
          sapInfo item in the NS instance.
          There shall be at most one link port associated with any
          connection point instance.
        type: array
        items:
          $ref: "#/definitions/NsCpHandle"

1579
  AffinityOrAntiAffinityRule:
1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600
    description: >
      This type describes the additional affinity or anti-affinity rule
      applicable between the VNF instances to be instantiated
      in the NS instantiation operation request or between the VNF instances
      to be instantiated in the NS instantiation
      operation request and the existing VNF instances..
    type: object
    required:
      - affinityOrAntiAffiinty
      - scope
    properties:
      vnfdId:
        description: >
          Reference to a VNFD.
          When the VNFD which is not used to instantiate VNF, it
          presents all VNF instances of this type as the subjects
          of the affinity or anti-affinity rule. The VNF instance
          which the VNFD presents is not necessary as a part of
          the NS to be instantiated.
        type: array
        items:
1601
          $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613
      vnfProfileId:
        description: >
          Reference to a vnfProfile defined in the NSD.
          At least one VnfProfile which is used to instantiate VNF
          for the NS to be instantiated as the subject of the affinity
          or anti-affinity rule shall be present. When the VnfProfile
          which is not used to instantiate VNF, it presents all VNF
          instances of this type as the subjects of the affinity or
          anti-affinity rule. The VNF instance which the VnfProfile
          presents is not necessary as a part of the NS to be instantiated.
        type: array
        items:
1614
          $ref: "#/definitions/IdentifierInNsd"
1615 1616 1617 1618 1619 1620 1621
      vnfInstanceId:
        description: >
          Reference to the existing VNF instance as the subject of
          the affinity or anti-affinity rule. The existing VNF instance
          is not necessary as a part of the NS to be instantiated.
        type: array
        items:
1622
          $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647
      affinityOrAntiAffiinty:
        description: >
          The type of the constraint.
          Permitted values:
          AFFINITY
          ANTI_AFFINITY.
        type: string
        enum:
          - AFFINITY
          - ANTI_AFFINITY
      scope:
        description: >
          Specifies the scope of the rule where the placement
          constraint applies.
          Permitted values:
          NFVI_POP
          ZONE
          ZONE_GROUP
          NFVI_NODE.
        type: string
        enum:
          - NFVI_POP
          - ZONE
          - ZONE_GROUP
          - NFVI_NODE
1648 1649 1650 1651

  InstantiateNsRequest:
    type: object
    required:
1652
      - nsFlavourId
1653 1654 1655 1656
    properties:
      nsFlavourId:
        description: >
          Identifier of the NS deployment flavor to be instantiated.
1657
        $ref: "#/definitions/IdentifierInNsd"
1658 1659
      sapData:
        description: >
1660
          Create data concerning the SAPs of this NS.
1661
        type: array
1662 1663
        items:
          $ref: "#/definitions/SapData"
1664 1665 1666 1667
      addpnfData:
        description: >
          Information on the PNF(s) that are part of this NS.
        type: array
1668 1669
        items:
          $ref: "#/definitions/AddPnfData"
1670 1671 1672 1673 1674
      vnfInstanceData:
        description: >
          Specify an existing VNF instance to be used in the NS.
          If needed, the VNF Profile to be used for this VNF
          instance is also provided.
1675 1676
          The DF of the VNF instance shall match the VNF DF 
          present in the associated VNF Profile.
1677
        type: array
1678
        items:
1679
          $ref: "#/definitions/VnfInstanceData"
1680
      nestedNsInstanceData:
1681 1682 1683
        description: >
          Specify an existing NS instance to be used as a nested
          NS within the NS.
1684 1685 1686 1687 1688 1689 1690 1691
          If needed, the NS Profile to be used for this nested NS 
          instance is also provided.
          NOTE 2: The NS DF of each nested NS shall be one of the 
          allowed flavours in the associated NSD (as referenced in the
          nestedNsd attribute of the NSD of the NS to be instantiated).
          NOTE 3: The NSD of each referenced NSs (i.e. each 
          nestedInstanceId) shall match the one of the nested NSD in 
          the composite NSD.
1692
        type: array
1693
        items:
1694
          $ref: "#/definitions/NestedNsInstanceData"
1695
      locationConstraints:
1696 1697 1698 1699 1700 1701
        description: >
          Defines the location constraints for the VNF to be
          instantiated as part of the NS instantiation.
          An example can be a constraint for the VNF to be in a
          specific geographic location..
        type: array
1702 1703
        items:
          $ref: "#/definitions/VnfLocationConstraint"
1704 1705 1706
      additionalParamsForNs:
        description: >
          Allows the OSS/BSS to provide additional parameter(s)
1707 1708 1709 1710
          at the composite NS level (as opposed to the VNF level, 
          which is covered in additionalParamsForVnf), and as 
          opposed to the nested NS level, which is covered in
          additionalParamForNestedNs.
1711
        $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs"
1712
      additionalParamForNestedNs:
1713 1714
        description: >
          Allows the OSS/BSS to provide additional parameter(s)
1715 1716 1717 1718
          per nested NS instance (as opposed to the composite NS
          level, which is covered in additionalParamForNs, and as
          opposed to the VNF level, which is covered in
          additionalParamForVnf). This is for nested NS instances
1719
          that are to be created by the NFVO as part of the NS
1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733
          instantiation and not for existing nested NS instances that
          are referenced for reuse.
        type: array
        items:
          $ref: "#/definitions/ParamsForNestedNs"
      additionalParamsForVnf:
        description: >
          Allows the OSS/BSS to provide additional parameter(s)
          per VNF instance (as opposed to the composite NS level, 
          which is covered in additionalParamsForNs and as opposed 
          to the nested NS level, which is covered in 
          additionalParamForNestedNs). This is for VNFs that are 
          to be created by the NFVO as part of the NS instantiation 
          and not for existing VNF that are referenced for reuse.
1734
        type: array
1735 1736
        items:
          $ref: "#/definitions/ParamsForVnf"
1737 1738 1739 1740
      startTime:
        description: >
          Timestamp indicating the earliest time to instantiate the NS. 
          Cardinality "0" indicates the NS instantiation takes place immediately.
1741
        $ref: "../../definitions/SOL005_def.yaml#/definitions/DateTime"
1742 1743 1744 1745 1746 1747
      nsInstantiationLevelId:
        description: >
          Identifies one of the NS instantiation levels declared in
          the DF applicable to this NS instance. If not present, the
          default NS instantiation level as declared in the NSD
          shall be used.
1748
        $ref: "#/definitions/IdentifierInNsd"
1749
      additionalAffinityOrAntiAffinityRule:
1750
        description: >
1751 1752 1753 1754
          Specifies additional affinity or anti-affinity constraint for
          the VNF instances to be instantiated as part of the NS
          instantiation.
          Shall not conflict with rules already specified in the NSD.
1755
        type: array
1756
        items:
1757 1758
          $ref: "#/definitions/AffinityOrAntiAffinityRule"

1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769
  ParamsForNestedNs:
    description: >
      This type specifies additional parameters on a per-nested NS instance basis. 
      It shall comply with the provisions defined in Table 6.5.3.21a-1.
    type: object
    required:
      - nsProfileId
    properties:
      nsProfileId:
        description: >
          Identifier of a NsProfile to which the additional parameters apply.
1770
        $ref: "#/definitions/IdentifierInNsd"
1771 1772 1773 1774 1775
      additionalParam:
        description: >
          Additional parameters that are to be applied on a per nested NS instance.
        type: array
        items:
1776
          $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs"
1777

1778
  ParamsForVnf:
1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790
    description: >
      This type defines the additional parameters for the VNF instance
      to be created associated with an NS instance.
      It shall comply with the provisions defined in Table 6.5.3.22-1.
    type: object
    required:
      - vnfProfileId
    properties:
      vnfProfileId:
        description: >
          Identifier of (reference to) a vnfProfile to which the
          additional parameters apply.
1791
        $ref: "#/definitions/IdentifierInNsd"
1792 1793 1794 1795
      additionalParams:
        description: >
          Additional parameters that are applied for the VNF
          instance to be created.
1796
        $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs"
1797

1798
  LocationConstraints:
1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834
    description: >
      This type represents location constraints for a VNF to be instantiated.
      The location constraints shall be presented as a
      country code, optionally followed by a civic address based on
      the format defined by IETF RFC 4776 [13].
    type: object
    required:
      - countryCode
    properties:
      countryCode:
        description: >
          The two-letter ISO 3166 [29] country code in capital letters.
        type: string
      civicAddressElement:
        description: >
          Zero or more elements comprising the civic address.
        type: array
        items:
          type: object
          required:
            - caType
            - caValue
          properties:
            caType:
              description: >
                Describe the content type of caValue. The value of
                caType shall comply with Section 3.4 of IETF
                RFC 4776 [13].
              type: integer
            caValue:
              description: >
                Content of civic address element corresponding to the
                caType. The format caValue shall comply with
                Section 3.4 of IETF RFC 4776 [13].
              type: string

1835
  VnfLocationConstraint:
1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847
    description: >
      This type represents the association of location constraints to a VNF instance
      to be created according to a specific VNF profile.
      It shall comply with the provisions defined in Table 6.5.3.20-1.
    type: object
    required:
      - vnfProfileId
    properties:
      vnfProfileId:
        description: >
          Identifier of (reference to) a vnfProfile to which the
          additional parameters apply.
1848
        $ref: "#/definitions/IdentifierInNsd"
1849 1850 1851 1852 1853
      locationConstraints:
        description: >
          Defines the location constraints for the VNF instance to
          be created based on the VNF profile.
        $ref: "#/definitions/LocationConstraints"
1854 1855

  VnfInstanceData:
1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867
    description: >
      This type specifies an existing VNF instance to be used in the NS instance and
      if needed, the VNF Profile to use for this VNF instance.
      It shall comply with the provisions defined in Table 6.5.3.19-1.
    type: object
    required:
      - vnfInstanceId
      - vnfProfileId
    properties:
      vnfInstanceId:
        description: >
          Identifier of the existing VNF instance to be used in the NS.
1868
        $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
1869 1870 1871 1872 1873 1874
      vnfProfileId:
        description: >
          Identifier of (Reference to) a vnfProfile defined in the
          NSD which the existing VNF instance shall be matched
          with. If not present, the NFVO will select the VnfProfile
          matching the information in the VNF instance.
1875
        $ref: "#/definitions/IdentifierInNsd"
1876

1877 1878 1879 1880 1881 1882 1883 1884 1885
  NestedNsInstanceData:
    description: >
      This type specifies an existing nested NS instance to be used in the NS instance 
      and if needed, the NsProfile to use for this nested NS instance. 
      It shall comply with the provisions defined in Table 6.5.3.19a-1.
    type: object
    required:
      - nestedNsInstanceId
    properties:
1886
      nestedNsInstanceId:
Samir Medjiah's avatar