SOL005NSLifecycleManagement_def.yaml 158 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 82 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

  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.
        $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInNsd"
      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 201
      nsdInfoId:
        description: >
          Identifier of the NSD information object on which the
          NS instance is based. This identifier was 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/SOL005_def.yaml#/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 391 392 393
          Identifier of information held by the NFVO about
          the specific VNF package on which the VNF is
          based. This identifier was allocated by the NFVO.
          This attribute can be modified with the PATCH
          method.
394
        $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419
      vnfConfigurableProperties:
        description: >
          Current values of the configurable properties of the VNF instance. 
          Configurable properties referred in this attribute are declared in
          the VNFD.
          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: 
          * 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. 
          This attribute can be modified with the PATCH method.
420
        $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs"
421 422 423
      vimId:
        description: >
          Identifier of a VIM that manages resources for the VNF instance.
424
        $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443
      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.
444
            $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnfd"
445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461
          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:
462
              $ref: "#/definitions/VnfExtCpInfo"
463 464 465 466 467 468 469 470 471 472 473 474 475 476
          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: >
477 478 479
              Performance metrics tracked by the VNFM (e.g. for 
              auto-scaling purposes) as identified by the VNF 
              provider in the VNFD.
480 481
            type: array
            items:
482
              $ref: "#/definitions/VnfMonitoringParameter"
483 484 485 486 487 488 489 490 491 492
          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: >
493 494
              Information about the virtualised compute and storage resources used
              by the VNFCs of the VNF instance.
495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515
            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: >
          Additional VNF-specific metadata describing the VNF instance.
          Metadata that are writeable are declared in the VNFD.
          This attribute can be modified with the PATCH method.
516
        $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs"
517 518 519 520 521 522
      extensions:
        description: >
          VNF-specific attributes that affect the lifecycle management of this
          VNF instance by the VNFM, or the lifecycle management scripts.
          Extensions that are writeable are declared in the VNFD.
          This attribute can be modified with the PATCH method.
523
        $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs"
524

525 526 527 528
  LccnLinks:
    description: >
      This type represents the links to resources that a notification can contain.
    type: object
529
    required:
530
      - nsInstance
531
    properties:
532 533 534 535
      nsInstance:
        description: >
          Link to the resource representing the NS instance to
          which the notified change applies..
536
        $ref: "../../definitions/SOL005_def.yaml#/definitions/NotificationLink"
537 538 539
      subscription:
        description: >
          Link to the subscription that triggered this notification.
540
        $ref: "../../definitions/SOL005_def.yaml#/definitions/NotificationLink"
541
      nslcmOpOcc:
542 543 544 545
        description: >
          Link to the lifecycle operation occurrence that this
          notification is related to. Shall be present if there is a
          related lifecycle operation occurrence
546
        $ref: "../../definitions/SOL005_def.yaml#/definitions/NotificationLink"
547

548 549 550 551 552
  VnfOperationalStateType:
    type: string
    enum:
      - STARTED
      - STOPPED
553

554 555 556 557 558 559 560 561 562
  VnfScaleInfo:
    required:
      - aspectId
      - scaleLevel
    type: object
    properties:
      aspectId:
        description: >
          Identifier of the scaling aspect.
563
        $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnfd"
564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584
      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.
585
        $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
586 587 588 589 590 591 592
      pnfName:
        description: >
          Name of the PNF.
        type: string
      pnfdId:
        description: >
          Identifier of the PNFD on which the PNF is based.
593
        $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
594 595 596 597
      pnfdInfoId:
        description: >
          Identifier of the PNFD information onject related to this
          PNF. This identifier is allocated by the NFVO
598
        $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
599 600 601 602
      pnfProfileId:
        description: >
          Identifier of the related PnfProfile in the NSD on which
          the PNF is based.
603
        $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInNsd"
604 605 606 607
      cpInfo:
        description: >
          Information on the external CP of the PNF.
        $ref: "#/definitions/PnfExtCpInfo"
608

609 610 611 612 613 614 615 616 617 618 619 620 621
  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.
622
        $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInPnf"
623 624 625 626
      cpdId:
        description: >
          Identifier of (reference to) the Connection Point
          Descriptor (CPD) for this CP.
627
        $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInNsd"
628 629 630 631
      cpProtocolData:
        description: >
          Parameters for configuring the network protocols on the CP.
        type: array
632
        items:
633
          $ref: "#/definitions/CpProtocolData"
634

635 636 637 638 639 640 641 642 643
  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
644
      - nsVirtualLinkProfileId
645 646 647 648
    properties:
      id:
        description: >
          Identifier of the VL instance.
649
        $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInNs"
650 651 652
      nsVirtualLinkDescId:
        description: >
          Identifier of the VLD in the NSD.
653
        $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInNsd"
654 655 656
      nsVirtualLinkProfileId:
        description: >
          Identifier of the VL profile in the NSD.
657
        $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInNsd"
658 659 660 661 662
      resourceHandle:
        description: >
          Identifier(s) of the virtualised network resource(s)
          realizing the VL instance. See note.
        type: array
663
        items:
664
          $ref: "../../definitions/SOL005_def.yaml#/definitions/ResourceHandle"
665 666 667 668 669 670
      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
671
        items:
672 673 674 675 676 677 678 679 680 681 682 683 684 685 686
          $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.
687
        $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
688 689 690
      vnffgdId:
        description: >
          Identifier of the VNFFGD in the NSD.
691
        $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInNsd"
692 693 694 695
      vnfInstanceId:
        description: >
          Identifier(s) of the constituent VNF instance(s) of this VNFFG instance.
        type: array
696
        items:
697
          $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
698 699 700 701 702
      pnfdInfoId:
        description: >
          Identifier(s) of the constituent PNF instance(s) of this
          VNFFG instance.
        type: array
703
        items:
704
          $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
705 706 707 708 709
      nsVirtualLinkInfoId:
        description: >
          Identifier(s) of the constituent VL instance(s) of this
          VNFFG instance.
        type: array
710
        items:
711
          $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInNs"
712 713 714 715 716 717
      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
718
        items:
719 720
          $ref: "#/definitions/NsCpHandle"

721 722 723 724 725 726 727 728 729 730 731 732 733
  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.
734
        $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInNs"
735 736 737 738 739
      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.
740
        $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInNsd"
741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777
      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

778 779 780 781 782
  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.
783
    type: object
784 785 786 787 788
    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.
789
        $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
790 791 792 793 794
      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.
795
        $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnf"
796 797 798 799 800
      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.          
801
        $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
802 803 804 805 806
      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.
807
        $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInPnf"
808 809 810 811 812
      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.           
813
        $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
814 815 816 817 818
      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.           
819
        $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInNs"
820

821 822 823 824 825 826 827 828 829 830 831 832 833
  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.
834
        $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInNs"
835 836 837
      sapdId:
        description: >
          Identifier of the SAPD in the NSD.
838
        $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInNsd"
839 840 841 842 843 844 845 846 847 848 849 850
      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
851
        items:
852
          $ref: "#/definitions/CpProtocolInfo"
853

854 855 856 857 858 859 860 861 862 863 864 865
  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.
866
        $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInNsd"
867 868 869 870 871 872 873 874 875 876
      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

877 878 879 880 881 882 883 884 885 886 887 888
  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.
889
        $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInNsd"
890 891 892 893 894 895 896 897 898 899
      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

900 901 902 903 904 905 906 907 908 909 910 911
  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.
912
        $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnf"
913 914 915
      cpdId:
        description: >
          Identifier of the external CPD, VnfExtCpd, in the VNFD.
916
        $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnfd"
917 918 919 920 921 922
      cpProtocolInfo:
        description: >
          Network protocol information for this CP.
        type: array
        minItems: 1
        items:
923
          $ref: "#/definitions/CpProtocolInfo"
924 925 926 927 928 929 930 931
      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.
932
        $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs"
933 934 935 936 937 938 939
      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.
940
        $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnf"
941 942 943 944 945 946 947
      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.
948
        $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnf"
949

950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985
  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"

986
  CpPairInfo:
987 988 989 990 991 992 993 994 995 996 997 998 999 1000
    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:
1001
          $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnf"
1002 1003 1004 1005 1006 1007 1008 1009 1010
      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:
1011
          $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInPnf"
1012 1013 1014 1015 1016 1017 1018 1019 1020
      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:
1021
          $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInNs"
1022

1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047
  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
1048
          - SOURCE_MAC_HASH
1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059
      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

1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085
  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:
1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099
    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.
1100
        $ref: "../../definitions/SOL005_def.yaml#/definitions/MacAddress"
1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125
      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:
1126
                $ref: "../../definitions/SOL005_def.yaml#/definitions/IpAddress"
1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145
            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.
1146
                  $ref: "../../definitions/SOL005_def.yaml#/definitions/IpAddress"
1147 1148 1149
                maxAddress:
                  description: >
                    Highest IP address belonging to the range
1150
                  $ref: "../../definitions/SOL005_def.yaml#/definitions/IpAddress"
1151 1152 1153 1154 1155 1156
            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.
1157
              $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVim"
Samir Medjiah's avatar
Samir Medjiah committed
1158 1159


1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172
      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:
1173
        $ref: "../../definitions/SOL005_def.yaml#/definitions/IpAddress"
1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193
      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.
1194
            $ref: "../../definitions/SOL005_def.yaml#/definitions/IpAddress"
1195 1196 1197
          maxAddress:
            description: >
              Highest IP address belonging to the range
1198
            $ref: "../../definitions/SOL005_def.yaml#/definitions/IpAddress"
1199 1200 1201
      minAddress:
        description: >
          Lowest IP address belonging to the range
1202
        $ref: "../../definitions/SOL005_def.yaml#/definitions/IpAddress"
1203 1204 1205
      maxAddress:
        description: >
          Highest IP address belonging to the range.
1206
        $ref: "../../definitions/SOL005_def.yaml#/definitions/IpAddress"
1207 1208 1209 1210 1211 1212
      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.
1213
        $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVim"
1214

1215 1216 1217 1218 1219 1220 1221
  ExtVirtualLinkInfo:
    type: object
    required:
      - id
      - resourceHandle
    properties:
      id:
1222 1223 1224 1225 1226
        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.
1227
        $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
1228 1229 1230
      resourceHandle:
        description: >
          Reference to the resource realizing this VL.
1231
        $ref: "../../definitions/SOL005_def.yaml#/definitions/ResourceHandle"
1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251
      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.
1252
        $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
1253 1254 1255
      resourceHandle:
        description: >
          Reference to the virtualised resource realizing this link port.
1256
        $ref: "../../definitions/SOL005_def.yaml#/definitions/ResourceHandle"
1257 1258 1259 1260 1261 1262
      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.
1263
        $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnf"
1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276

  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.
1277
        $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
1278 1279 1280
      vnfVirtualLinkDescId:
        description: >
          Identifier of the VNF Virtual Link Descriptor (VLD) in the VNFD.
1281
        $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnfd"
1282 1283 1284
      networkResource:
        description: >
          Reference to the VirtualNetwork resource.
1285
        $ref: "../../definitions/SOL005_def.yaml#/definitions/ResourceHandle"
1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301
      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.
1302
        $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnf"
1303 1304 1305
      resourceHandle:
        description: >
          Reference to the virtualised network resource realizing this link port.
1306
        $ref: "../../definitions/SOL005_def.yaml#/definitions/ResourceHandle"
1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322
      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.
1323
        $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnf"
1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335
      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
1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346

  MonitoringParameter:
    type: object
    required:
      - id
      - value
      - timeStamp
    properties:
      id:
        description: >
          Identifier of the monitoring parameter defined in the VNFD.
1347
        $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnfd"
1348 1349 1350 1351 1352 1353 1354
      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
1355
          for auto-scaling purposes).
1356 1357 1358 1359
          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
1360 1361 1362 1363 1364 1365
      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
1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379

  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.
1380
        $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnf"
1381 1382 1383
      vduId:
        description: >
          Reference to the applicable VDU in the VNFD.
1384
        $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnfd"
1385 1386 1387
      computeResource:
        description: >
          Reference to the VirtualCompute resource.
1388
        $ref: "../../definitions/SOL005_def.yaml#/definitions/ResourceHandle"
1389 1390 1391 1392 1393 1394
      storageResourceIds:
        description: >
          References to the VirtualStorage resources. The value refers to a
          VirtualStorageResourceInfo item in the VnfInstance.
        type: array
        items:
1395
          $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
1396 1397 1398 1399
      reservationId:
        description: >
          The reservation identifier applicable to the resource. It shall be
          present when an applicable reservation exists.
1400
        $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417
      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.
1418
              $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnf"
1419 1420 1421
            cpdId:
              description: >
                Identifier of the VDU CPD, cpdId, in the VNFD.
1422
              $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnfd"
1423 1424 1425 1426
            vnfExtCpId:
              description: >
                When the VNFC CP is exposed as external CP of the VNF, the
                identifier of this external VNF CP.
1427
              $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnf"
1428 1429 1430 1431 1432 1433 1434 1435 1436
            cpProtocolInfo:
              description: >
                Network protocol information for this CP.
              type: array
              items:
                $ref: "#/definitions/CpProtocolInfo"
            vnfLinkPortId:
              description: >
                Identifier of the "vnfLinkPorts" structure in the
1437
                "VnfVirtualLinkResourceInfo" structure. Shall be present if
1438
                the CP is associated to a link port.
1439
              $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnf"
1440 1441 1442
            metadata:
              description: >
                Metadata about this CP.
1443
              $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs"
1444 1445 1446
      metadata:
        description: >
          Metadata about this resource.
1447
        $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs"
1448 1449

  VnfVirtualLinkResourceInfo:
1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461
    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.
1462
        $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnf"
1463 1464 1465
      vnfVirtualLinkDescId:
        description: >
          Identifier of the VNF Virtual Link Descriptor (VLD) in the VNFD.
1466
        $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnfd"
1467 1468 1469
      networkResource:
        description: >
          Reference to the VirtualNetwork resource.
1470
        $ref: "../../definitions/SOL005_def.yaml#/definitions/ResourceHandle"
1471 1472 1473 1474
      reservationId:
        description: >
          The reservation identifier applicable to the resource. It shall be
          present when an applicable reservation exists.
1475
        $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487
      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.
1488
        $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs"
1489

1490
  VirtualStorageResourceInfo:
1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502
    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.
1503
        $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnf"
1504 1505 1506
      virtualStorageDescId:
        description: >
          Identifier of the VirtualStorageDesc in the VNFD.
1507
        $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnfd"
1508 1509 1510
      storageResource:
        description: >
          Reference to the VirtualStorage resource.
1511
        $ref: "../../definitions/SOL005_def.yaml#/definitions/ResourceHandle"
1512 1513 1514 1515
      reservationId:
        description: >
          The reservation identifier applicable to the resource. It shall be
          present when an applicable reservation exists.
1516
        $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
1517 1518 1519
      metadata:
        description: >
          Metadata about this resource.
1520
        $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs"
1521

1522
  NsLinkPortInfo:
1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534
    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.
1535
        $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
1536 1537 1538 1539
      resourceHandle:
        description: >
          Identifier of the virtualised network resource realizing
          this link port.
1540
        $ref: "../../definitions/SOL005_def.yaml#/definitions/ResourceHandle"
1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552
      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"

1553
  AffinityOrAntiAffinityRule:
1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574
    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:
1575
          $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587
      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:
1588
          $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInNsd"
1589 1590 1591 1592 1593 1594 1595
      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:
1596
          $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621
      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
1622 1623 1624 1625

  InstantiateNsRequest:
    type: object
    required:
1626
      - nsFlavourId
1627 1628 1629 1630
    properties:
      nsFlavourId:
        description: >
          Identifier of the NS deployment flavor to be instantiated.
1631
        $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInNsd"
1632 1633
      sapData:
        description: >
1634
          Create data concerning the SAPs of this NS.
1635
        type: array
1636 1637
        items:
          $ref: "#/definitions/SapData"
1638 1639 1640 1641
      addpnfData:
        description: >
          Information on the PNF(s) that are part of this NS.
        type: array
1642 1643
        items:
          $ref: "#/definitions/AddPnfData"
1644 1645 1646 1647 1648
      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.
1649 1650
          The DF of the VNF instance shall match the VNF DF 
          present in the associated VNF Profile.
1651
        type: array
1652
        items:
1653
          $ref: "#/definitions/VnfInstanceData"
1654
      nestedNsInstanceData:
1655 1656 1657
        description: >
          Specify an existing NS instance to be used as a nested
          NS within the NS.
1658 1659 1660 1661 1662 1663 1664 1665
          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.
1666
        type: array
1667
        items:
1668
          $ref: "#/definitions/NestedNsInstanceData"
1669 1670 1671 1672 1673 1674 1675
      localizationLanguage:
        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
1676 1677
        items:
          $ref: "#/definitions/VnfLocationConstraint"
1678 1679 1680
      additionalParamsForNs:
        description: >
          Allows the OSS/BSS to provide additional parameter(s)
1681 1682 1683 1684
          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.
1685
        $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs"
1686
      additionalParamForNestedNs:
1687 1688
        description: >
          Allows the OSS/BSS to provide additional parameter(s)
1689 1690 1691 1692
          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
1693
          that are to be created by the NFVO as part of the NS
1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707
          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.
1708
        type: array
1709 1710
        items:
          $ref: "#/definitions/ParamsForVnf"
1711 1712 1713 1714
      startTime:
        description: >
          Timestamp indicating the earliest time to instantiate the NS. 
          Cardinality "0" indicates the NS instantiation takes place immediately.
1715
        $ref: "../../definitions/SOL005_def.yaml#/definitions/DateTime"
1716 1717 1718 1719 1720 1721
      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.
1722
        $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInNsd"
1723
      additionalAffinityOrAntiAffinityRule:
1724
        description: >
1725 1726 1727 1728
          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.
1729
        type: array
1730
        items:
1731 1732
          $ref: "#/definitions/AffinityOrAntiAffinityRule"

1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743
  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.
1744
        $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInNsd"
1745 1746 1747 1748 1749
      additionalParam:
        description: >
          Additional parameters that are to be applied on a per nested NS instance.
        type: array
        items:
1750
          $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs"
1751

1752
  ParamsForVnf:
1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764
    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.
1765
        $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInNsd"
1766 1767 1768 1769
      additionalParams:
        description: >
          Additional parameters that are applied for the VNF
          instance to be created.
1770
        $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs"
1771

1772
  LocationConstraints:
1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808
    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

1809
  VnfLocationConstraint:
1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821
    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.
1822
        $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInNsd"
1823 1824 1825 1826 1827
      locationConstraints:
        description: >
          Defines the location constraints for the VNF instance to
          be created based on the VNF profile.
        $ref: "#/definitions/LocationConstraints"
1828 1829

  VnfInstanceData:
1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841
    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.
1842
        $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
1843 1844 1845 1846 1847 1848
      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.
1849
        $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInNsd"
1850

1851 1852 1853 1854 1855 1856 1857 1858 1859
  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:
1860
      nestedNsInstanceId:
1861 1862
        description: >
          Identifier of the existing nested NS instance to be used in the NS.
1863
        $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
1864 1865 1866 1867 1868 1869
      nsProfileId:
        description: >
          Identifier of an NsProfile defined in the NSD which the existing 
          nested NS instance shall be matched with.
          If not present, the NFVO will select the NsProfile matching the 
          information in the nested NS instance.
1870
        $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInNs"
1871

1872
  SapData:
1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884
    description: >
      This type represents the information related to a SAP of a NS.
      It shall comply with the provisions defined in Table 6.5.3.10-1.
    type: object
    required:
      - sapdId
      - sapName
      - description
    properties:
      sapdId:
        description: >
          Reference to the SAPD for this SAP.
1885
        $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInNsd"
1886 1887 1888 1889 1890 1891 1892 1893 1894
      sapName:
        description: >
          Human readable name for the SAP.
        type: string
      description:
        descrip