SOL002VNFLifecycleManagement_def.yaml 137 KB
Newer Older
        items:
          $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/ScaleInfo"
      additionalParams:
        description: >
          Additional parameters passed by the NFVO as input to the scaling
          process, specific to the VNF being scaled, as declared in the
          VNFD as part of "ScaleVnfToLevelOpConfig" defined in ETSI GS NFV-IFA 011.
        $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/KeyValuePairs"

  CancelMode:
    description: >
      This type represents a parameter to select the mode of cancelling an
      ongoing VNF LCM operation occurrence.
    type: object
    required:
      - cancelMode
    properties:
      cancelMode:
        description: >
          Cancellation mode to apply.
        $ref: "#/definitions/CancelModeType"

  LccnSubscriptionRequest:
    description: >
      This type represents a subscription request related to notifications
      about VNF lifecycle changes.
    type: object
    required:
      - callbackUri
    properties:
      filter:
        description: >
          Filter settings for this subscription, to define the subset of all
          notifications this subscription relates to. A particular
          notification is sent to the subscriber if the filter matches, or if
          there is no filter.
        $ref: "#/definitions/LifecycleChangeNotificationsFilter"
      callbackUri:
        description: >
          The URI of the endpoint to send the notification to.
        $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/Uri"
      authentication:
        description: >
          Authentication parameters to configure the use of Authorization when
          sending notifications corresponding to this subscription, as defined
          in clause 8.3.4 of ETSI GS NFV-SOL 013.
          This attribute shall only be present if the subscriber requires
          authorization of notifications.
        $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/SubscriptionAuthentication"
      verbosity:
        description: >
          This attribute signals the requested verbosity of LCM operation occurrence notifications. If it is not present,
          it shall default to the value "FULL".
        $ref: "#/definitions/LcmOpOccNotificationVerbosityType"

  LccnSubscription:
    description: >
      This type represents a subscription related to notifications about VNF
      lifecycle changes.
    type: object
    required:
      - id
      - callbackUri
      - verbosity
      - _links
    properties:
      id:
        description: >
          Identifier of this subscription resource.
        $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/Identifier"
      filter:
        description: >
          Filter settings for this subscription, to define the subset of all
          notifications this subscription relates to. A particular
          notification is sent to the subscriber if the filter matches, or if
          there is no filter.
        $ref: "#/definitions/LifecycleChangeNotificationsFilter"
      callbackUri:
        description: >
          The URI of the endpoint to send the notification to.
        $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/Uri"
      verbosity:
        description: >
          This attribute signals the verbosity of LCM operation occurrence notifications.
        $ref: "#/definitions/LcmOpOccNotificationVerbosityType"
      _links:
        description: >
          Links to resources related to this resource.
        type: object
        required:
          - self
        properties:
          self:
            description: >
              URI of this resource.
            $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/Link"
  
  ExtVirtualLinkInfo:
    description: >
      This type represents information about an external VL.

      NOTE:	This attribute reflects the current configuration information that has resulted from merging into this attribute 
            the "VnfExtCpData" information which was passed as part of the "ExtVirtualLinkData" structure in the input of the 
            most recent VNF LCM operation such as "InstantiateVnfRequest", "ChangeExtVnfConnectivityRequest", "ChangeVnfFlavourRequest" 
            or "ChangeCurrentVnfPkgRequest", or in the Grant response. If applying such change results in an empty list of 
            "currentVnfExtCpData" structure instances, the affected instance of "ExtVirtualLinkInfo" shall be removed from its 
            parent data structure.
    type: object
    required:
      - id
      - resourceHandle
      - currentVnfExtCpData
    properties:
      id:
        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.
        $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/Identifier"
      resourceHandle:
        description: >
          Reference to the resource realizing this VL.
        $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/ResourceHandle"
      extLinkPorts:
        description: >
          Link ports of this VL.
        type: array
        items:
          $ref: "#/definitions/ExtLinkPortInfo"
      currentVnfExtCpData:
        description: >
          Allows the API consumer to read the current CP configuration information for the connection of external CPs 
          to the external virtual link. See note.
        type: array
        items:
          $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/VnfExtCpData"

  VnfLinkPortInfo:
    description: >
      This type represents a link port of an internal VL of a VNF.

      NOTE 1: Either cpInstanceId with cpInstanceType set to "EXT_CP" or any combination of cpInstanceId
              with cpInstanceType set to "VNFC_CP" and vipCpInstanceId (i.e. one or both of them) shall be 
              present for a VnfLinkPortInfo. In case both cpInstanceId with cpInstanceType set to "VNFC_CP" 
              and vipCpInstanceId are present, the two different CP instances share the linkport.
      NOTE 2: Annex A.4 of ETSI GS NFV-IFA 007 provides examples for configurations where both vipCpInstanceId
              and vnfcCpInstanceId are present (UC#5 and UC#5-b), only vnfcCpInstanceId is present (UC#2), or 
              only vipCpInstanceId is present (UC6 and UC#6-b).
      NOTE 3: The value of "trunkResourceId" is scoped by the value of "vimConnectionId" in the "resourceHandle"
              attribute.
    type: object
    required:
      - id
      - resourceHandle
    properties:
      id:
        description: >
          Identifier of this link port as provided by the entity that has created the link port.
        $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/IdentifierInVnf"
      resourceHandle:
        description: >
          Reference to the virtualised resource realizing this link
          port.
        $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/ResourceHandle"
      cpInstanceId:
        description: >
          When the link port is used for external connectivity by the VNF, this attribute represents the 
          identifier of the external CP associated with this link port.
          
          When the link port is used for internal connectivity in the VNF, this attribute represents the 
          identifier of 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 "vnfcResourceInfo" 
          item in the VnfInstance. See note 1.
        $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/IdentifierInVnf"
      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.
          See note 1.
        type: string
        enum:
          - VNFC_CP
          - EXT_CP
      vipCpInstanceId:
        description: >
          VIP CP instance of the VNF connected to this link port. May be present. 
          See notes 1, and 2.
        $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/IdentifierInVnf"
      trunkResourceId:
        description: >
          Identifier of the trunk resource in the VIM.
          Shall be present if the present link port corresponds to the parent port that the trunk resource is associated with. 
          See note 3.
        $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/IdentifierInVim"

  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.

      NOTE 1:	The use cases UC#4 and UC#5 in clause A.4 of ETSI GS NFV-IFA 007 provide examples for such a configuration.
      NOTE 2:	The value of "trunkResourceId" is scoped by the value of "vimConnectionId" in the "resourceHandle" attribute.
    type: object
    required:
      - id
      - resourceHandle
    properties:
      id:
        description: >
          Identifier of this link port as provided by the entity that has
          created the link port.
        $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/Identifier"
      resourceHandle:
        description: >
          Reference to the virtualised resource realizing this link
          port.
        $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/ResourceHandle"
      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.
        $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/IdentifierInVnf"
      secondaryCpInstanceId:
        description: >
          Additional external CP of the VNF connected to this link port.
          If present, this attribute shall refer to a "secondary" ExtCpInfo item in the VNF instance that exposes a virtual 
          IP CP instance which shares this linkport with the external CP instance referenced by the "cpInstanceId" attribute. 
          See note 1.
        $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/IdentifierInVnf"
      trunkResourceId:
        description: >
          Identifier of the trunk resource in the VIM.
          Shall be present if the present link port corresponds to the parent port that the trunk resource is associated with. 
          See note 2.
        $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/IdentifierInVim"

  CpProtocolInfo:
    description: >
      This type describes the protocol layer(s) that a CP uses together with protocol-related information, like addresses. 

      NOTE:	This attribute allows to signal the addition of further types of layer and protocol in future versions of the 
            present document in a backwards-compatible way. In the current version of the present document, only IP over 
            Ethernet is supported.
    type: object
    required:
      - layerProtocol
    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 extCP instance. Shall be
          present if layerProtocol is equal to " IP_OVER_ETHERNET", and shall
          be absent otherwise.
        $ref: "#/definitions/IpOverEthernetAddressInfo"

  IpOverEthernetAddressInfo:
    description: >
      This type represents information about a network address that has been assigned.

      NOTE 1:	At least one of "macAddress" or "ipAddresses" shall be present.
      NOTE 2:	Exactly one of "addresses" or "addressRange" shall be present.
      NOTE 3:	If the Cp instance represents a subport in a trunk, segmentationId shall be present. 
              Otherwise it shall not be present.
      NOTE 4:	Depending on the NFVI networking infrastructure, the segmentationId may indicate the 
              actual network segment value (e.g. vlan Id, Vxlan segmentation id, etc.) used in the 
              transport header of the packets or it may be an identifier used between the application 
              and the NFVI networking infrastructure to identify the network sub-interface of the trunk 
              port in question. In the latter case the NFVI infrastructure will map this local segmentationId 
              to whatever segmentationId is actually used by the NFVI’s transport technology.
    type: object
    anyOf:
      - required:
          - macAddress
      - required:
          - ipAddresses
    oneOf:
      - required:
          - addresses
      - required:
          - addressRange
    properties:
      macAddress:
        description: >
          MAC address, if assigned. See note 1.
        $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/MacAddress"
      segmentationId:
        description: >
          Identification of the network segment to which the Cp instance connects to. See notes 3 and 4.
        type: string
      ipAddresses:
        description: >
          Addresses assigned to the CP instance. Each entry represents IP addresses assigned by fixed or 
          dynamic IP address assignment per subnet. See note 1.
        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). See note 2.
              type: array
              items:
                $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/IpAddress"
            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 2.
              type: object
              required:
                - minAddress
                - maxAddress
              properties:
                minAddress:
                  description: >
                    Lowest IP address belonging to the range.
                  $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/IpAddress"
                maxAddress:
                  description: >
                    Highest IP address belonging to the range
                  $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/IpAddress"
            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.
              $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/IdentifierInVim"

  MonitoringParameter:
    type: object
    required:
      - id
      - performanceMetric
    properties:
      id:
        description: >
          Identifier of the monitoring parameter defined in the VNFD.
        $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/IdentifierInVnfd"
      vnfdId:
        description: >
          Identifier of the VNFD.
          Shall be present in case the value differs from the vnfdId attribute of the VnfInstance (e.g. during a "Change
          current VNF package" operation or due to its final failure).
        $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/Identifier"
      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

  LifecycleChangeNotificationsFilter:
    description: >
      This type represents a subscription filter related to notifications about VNF lifecycle changes.
      At a particular nesting level in the filter structure, the following applies: All attributes shall 
      match in order for the filter to match (logical "and" between different filter attributes). 
      If an attribute is an array, the attribute shall match if at least one of the values in the array 
      matches (logical "or" between the values of one filter attribute).

      NOTE:	The permitted values of the "notificationTypes" attribute are spelled exactly as the names of 
            the notification types to facilitate automated code generation systems.
    type: object
    properties:
      vnfInstanceSubscriptionFilter:
        description: >
          Filter criteria to select VNF instances about which to notify.
        $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/VnfInstanceSubscriptionFilter"
      notificationTypes:
        description: >
          Match particular notification types. 
          
          Permitted values:
          -	VnfLcmOperationOccurrenceNotification
          -	VnfIdentifierCreationNotification
          -	VnfIdentifierDeletionNotification
          See note.
        type: array
        items:
          type: string
          enum:
            - VnfLcmOperationOccurrenceNotification
            - VnfIdentifierCreationNotification
            - VnfIdentifierDeletionNotification
      operationTypes:
        description: >
          Match particular VNF lifecycle operation types for the notification
          of type VnfLcmOperationOccurrenceNotification.
          May be present if the "notificationTypes" attribute contains the
          value "VnfLcmOperationOccurrenceNotification", and shall be absent
          otherwise.
        type: array
        items:
          $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/LcmOperationType"
      operationStates:
        description: >
          Match particular LCM operation state values as reported in
          notifications of type VnfLcmOperationOccurrenceNotification.
          May be present if the "notificationTypes" attribute contains the
          value "VnfLcmOperationOccurrenceNotification", and shall be absent
          otherwise.
        type: array
        items:
          $ref: "#/definitions/LcmOperationStateType"

  LccnLinks:
    description: >
      This type represents the links to resources that a notification can
      contain.
    type: object
    required:
      - vnfInstance
      - subscription
    properties:
      vnfInstance:
        description: >
          Link to the resource representing the VNF instance to which the
          notified change applies.
        $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/NotificationLink"
      subscription:
        description: >
          Link to the related subscription.
        $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/NotificationLink"
      vnfLcmOpOcc:
        description: >
          Link to the VNF lifecycle management operation occurrence that this
          notification is related to. Shall be present if there is a related
          lifecycle operation occurrence.
        $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/NotificationLink"

  VnfExtCpInfo:
    description: >
      This type represents information about an external CP of a VNF.
2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 2782

      NOTE 1:	The attributes "associatedVnfcCpId", "associatedVipCpId" and "associatedVnfVirtualLinkId" 
              are mutually exclusive. Exactly one shall be present.
      NOTE 2:	An external CP instance is not associated to a link port in the cases indicated for the 
              “extLinkPorts” attribute in clause 4.4.1.11.
    type: object
    required:
      - id
      - cpdId
      - cpConfigId
      - cpProtocolInfo
    oneOf:
      - required:
          - associatedVnfcCpId
      - required:
          - associatedVipCpId
      - required:
          - associatedVnfVirtualLinkId
    properties:
      id:
        description: >
          Identifier of the external CP instance and the related information instance.
        $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/IdentifierInVnf"
      cpdId:
        description: >
          Identifier of the external CPD, VnfExtCpd, in the VNFD.
        $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/IdentifierInVnfd"
      cpConfigId:
        description: >
          Identifier that references the applied "VnfExtCpConfig" entry in the "cpConfig" map of the "currentVnfExtCpData"
          in the "ExtVirtualLinkInfo" structure.
        $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/IdentifierInVnf"
      vnfdId:
        description: >
          Identifier of the VNFD.
          Shall be present in case the value differs from the vnfdId attribute of the VnfInstance (e.g. during a "Change
          current VNF package" operation or due to its final failure).
        $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/Identifier"
      cpProtocolInfo:
        description: >
          Network protocol information for this CP.
        type: array
        items:
          $ref: "#/definitions/CpProtocolInfo"
      extLinkPortId:
        description: >
          Identifier of the "ExtLinkPortInfo" structure inside the "ExtVirtualLinkInfo" structure. 
          Shall be present if the CP is associated to a link port. See note 2.
        $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/Identifier"
      metadata:
        description: >
          Metadata about this external CP.
        $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/KeyValuePairs"
      associatedVnfcCpId:
        description: >
          Identifier of the "vnfcCpInfo" structure in "VnfcResourceInfo" structure that represents the VNFC CP 
          which is exposed by this external CP instance, either directly or via a floating IP address. 
          Shall be present in case this CP instance maps to a VNFC CP. See note 1.
        $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/IdentifierInVnf"
      associatedVipCpId:
        description: >
          Identifier of the VIP CP instance that is exposed as this VnfExtCp instance, either directly or via a 
          floating IP address, and the related "VipCpInfo" structure in "VnfInstance". Shall be present if the 
          cpdId of this VnfExtCp has a vipCpd attribute. See note 1.
        $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/IdentifierInVnf"
      associatedVnfVirtualLinkId:
        description: >
          Identifier of the "VnfVirtualLinkResourceInfo" structure that represents the internal VL or of the 
          "ExtManagedVirtualLinkInfo" structure that represents the externally-managed internal VL which is 
          exposed by this external CP instance. Shall be present in case this CP instance maps to an internal 
          VL (including externally-managed internal VL). See note 1. 
        $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/IdentifierInVnf"

  VnfOperationalStateType:
    description: >
      STARTED: The VNF instance is up and running.
      STOPPED: The VNF instance has been shut down.
    type: string
    enum:
      - STARTED
      - STOPPED

  LcmOperationStateType:
    description: >
      STARTING: The LCM operation is starting.
      PROCESSING: The LCM operation is currently in execution.
      COMPLETED: The LCM operation has been completed successfully.
      FAILED_TEMP: The LCM operation has failed and execution has stopped,
      but the execution of the operation is not considered to be closed.
      FAILED: The LCM operation has failed and it cannot be retried or rolled back,
      as it is determined that such action won't succeed.
      ROLLING_BACK: The LCM operation is currently being rolled back.
      ROLLED_BACK: The LCM operation has been successfully rolled back,
      i.e. The state of the VNF prior to the original operation invocation has been restored as closely as possible.
    type: string
    enum:
      - STARTING
      - PROCESSING
      - COMPLETED
      - FAILED_TEMP
      - FAILED
      - ROLLING_BACK
      - ROLLED_BACK

  CancelModeType:
    description: >
      Cancellation mode.
      GRACEFUL: If the VNF LCM operation occurrence is in "PROCESSING" or
      "ROLLING_BACK" state, the VNFM shall not start any new resource
      management operation and shall wait for the ongoing resource management
      operations in the underlying system, typically the VIM, to finish
      execution or to time out. After that, the VNFM shall put the operation
      occurrence into the FAILED_TEMP state.
      If the VNF LCM operation occurrence is in "STARTING" state, the VNFM
      shall not start any resource management operation and shall wait for
      the granting request to finish execution or time out. After that, the
      VNFM shall put the operation occurrence into the ROLLED_BACK state.
      FORCEFUL: If the VNF LCM operation occurrence is in "PROCESSING" or
      "ROLLING_BACK" state, the VNFM shall not start any new resource
      management operation, shall cancel the ongoing resource management
      operations in the underlying system, typically the VIM, and shall wait
      for the cancellation to finish or to time out. After that, the VNFM
      shall put the operation occurrence into the FAILED_TEMP state.
      If the VNF LCM operation occurrence is in "STARTING" state, the VNFM
      shall not start any resource management operation and put the operation
      occurrence into the ROLLED_BACK state.
    type: string
    enum:
      - GRACEFUL
      - FORCEFUL

########################################################################################################################

  VnfcInfoModifications:
    description: >
      This type represents modifications of an entry in an array of "VnfcInfo" objects.
      * NOTE:	The attribute "id" in this data type represents the same identifier as the attribute
                "vnfcInstanceId" in other related data types in the present document. For reasons of backward
                compatibility, this misalignment is not corrected.
    type: object
    required:
      - id
      - vnfcConfigurableProperties
    properties:
      id:
        description: >
          Identifier of the VNFC instance of which the information is to be modified.
          The identifier references the "id" attribute in a "VnfcInfo" structure. See note.
        $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/IdentifierInVnf"
      vnfcConfigurableProperties:
        description: >
          Changes of the configurable properties of the VNFC instance.
          When this structure is part of a request, the modifications signalled in this attribute
          shall be applied according to the rules of JSON Merge Patch (see IETF RFC 7396).
          In addition, the provisions in clause 5.7 shall apply.
        $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/KeyValuePairs"

  VnfcInfo:
    description: >
      This type represents the information about a VNFC instance that is part of a VNF instance.
      * NOTE:	This allows to represent the error condition that a VNFC instance has lost its resources.
    type: object
    required:
      - id
      - vduId
      - vnfcState
    properties:
      id:
        description: >
          Identifier of the VNFC instance.
        $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/IdentifierInVnf"
      vduId:
        description: >
          Reference to the applicable VDU in the VNFD.
        $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/IdentifierInVnf"
      vnfcResourceInfoId:
        description: >
          Identifier of the VnfcResourceInfo instance representing
          the virtualised resources used by this VNFC instance. See note.
        $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/IdentifierInVnf"
      vnfcState:
        description: >
          Identifier of the VnfcResourceInfo instance representing
          the virtualised resources used by this VNFC instance.
          State of the VNFC instance.
          Permitted values:
          • STARTED: The VNFC instance is up and
          running.
          • STOPPED: The VNFC instance has been shut down
        type: string
        enum:
          - STARTED
          - STOPPED
        $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/IdentifierInVnf"
      vnfcConfigurableProperties:
        description: >
          Current values of the configurable properties of the
          VNFC instance.
          Configurable properties referred in this attribute are
          declared in the VNFD.
          This attribute can be modified with the PATCH method.
          In addition, the provisions in clause 5.7 shall apply.
        $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/KeyValuePairs"

  ModificationsTriggeredByVnfPkgChange:
    description: >
      This type represents attribute modifications that were performed on an "Individual VNF instance" resource 
      when changing the current VNF package. The attributes that can be included consist of those requested to 
      be modified explicitly in the "ChangeCurrentVnfPkgRequest" data structure, and additional attributes of the 
      "VnfInstance" data structure that were modified implicitly during the operation.

      NOTE 1:	This attribute represents the delta (semantics as per IETF RFC 7396, JSON Merge Patch) between the value 
              of the attribute at the start of the "Change current VNF package" operation and the value of the attribute 
              at its completion.
      NOTE 2:	If present, this attribute (which depends on the value of the "vnfdId" attribute) was modified implicitly 
              during the related operation and contains a copy of the value of the related attribute from the VNFD in the 
              VNF Package identified by the "vnfdId" attribute.
    type: object
    properties:
      vnfConfigurableProperties:
        description: >
          This attribute signals the modifications of the "vnfConfigurableProperties" attribute in "VnfInstance" performed 
          by the operation and shall be present if that attribute was modified during the operation. See note 1.
          In addition, the provisions in clause 5.7 shall apply.
        $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/KeyValuePairs"
      metadata:
        description: >
          This attribute signals the modifications of the "metadata" attribute in "VnfInstance" performed by the operation and 
          shall be present if that attribute was modified during the operation. See note 1.
        $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/KeyValuePairs"
      extensions:
        description: >
          This attribute signals the modifications of the "extensions" attribute in "VnfInstance" performed by the operation and 
          shall be present if that attribute was modified during the operation. See note 1.
          In addition, the provisions in clause 5.7 shall apply.
        $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/KeyValuePairs"
      vnfdId:
        description: >
          If present, this attribute signals the new value of the "vnfdId" attribute in "VnfInstance".
        $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/Identifier"
      vnfProvider:
        description: >
          If present, this attribute signals the new value of the "vnfProvider" attribute in "VnfInstance". See note 2.
        type: string
      vnfProductName:
        description: >
          If present, this attribute signals the new value of the "vnfProductName" attribute in "VnfInstance". See note 2.
        type: string
      vnfSoftwareVersion:
        description: >
          If present, this attribute signals the new value of the "vnfSoftwareVersion" attribute in "VnfInstance". See note 2.
        $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/Version"
      vnfdVersion:
        description: >
          If present, this attribute signals the new value of the "vnfdVersion" attribute in "VnfInstance". See note 2.
        $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/Version"

  LcmOpOccNotificationVerbosityType:
    description: >
      The enumeration LcmOpOccNotificationVerbosityType provides values to control the verbosity of LCM operation
      occurrence notifications.
      * FULL: This signals a full notification which contains all change details.
      * SHORT:  This signals a short notification which omits large-volume change details to reduce the size of data to
                be sent via the notification mechanism.
    type: string
    enum:
      - FULL
      - SHORT

  AffectedVipCp:
    description: >
      This type provides information about added, deleted and modified virtual IP CP instances.
    type: object
    required:
      - cpInstanceId
      - cpdId
      - changeType
    properties:
        cpInstanceId:
          description: >
            Identifier of the virtual IP CP instance and the related "VipCpInfo" structure in "VnfInstance".
          $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/IdentifierInVnf"

        cpdId:
          description: >
            Identifier of the VipCpd in the VNFD.
          $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/IdentifierInVnfd"

        vnfdId:
          description: >
            Reference to the VNFD.
            Shall be present in case of a "change current VNF Package" to
            identify whether the affected virtual CP instance is associated
            to a VipCpd which is referred from the source or destination VNFD.
          $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/Identifier"

        changeType:
          description: >
            Signals the type of change.
            Permitted values:
            -	ADDED
            -	REMOVED
            -	MODIFIED
          type: string
          enum:
              - ADDED
              - REMOVED
              - MODIFIED

  VipCpInfo:
    description: >
      This type provides information related to virtual IP (VIP) CP.

      NOTE 1:	It is possible that there is no associated VnfcCp because the VIP CP is available but not
      associated yet.
      NOTE 2: If only the value or the presence of this attribute is changed in the "VipCpInfo" structure
      by an LCM operation occurrence, this does not represent a change that requires including a related
      "AffectedVipCp" structure in the VNF LCM operation occurrence notifications or the "VnfLcmOpOcc"
      structure related to this LCM operation occurrence.
    type: object
    required:
      - cpInstanceId
      - cpdId
    properties:
      cpInstanceId:
        description: >
          Identifier of this VIP CP instance and of this VipCpInfo.
        $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/IdentifierInVnf"
      cpdId:
        description: >
          Identifier of the VIP Connection Point Descriptor, VipCpd, in the VNFD.
        $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/IdentifierInVnfd"
      vnfdId:
        description: >
          Identifier of the VNFD.
          Shall be present in case the value differs from the vnfdId attribute of the VnfInstance
          (e.g. during a "Change current VNF package" operation or due to its final failure). See note 2.
        $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/Identifier"
      vnfExtCpId:
        description: >
          When the VIP CP is exposed as external CP of the VNF, the identifier of this external VNF CP instance.
        $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/IdentifierInVnf"
      cpProtocolInfo:
        description: >
          Protocol information for this CP. There shall be one cpProtocolInfo for layer 3.
          There may be one cpProtocolInfo for layer 2.
        type: array
        items:
          $ref: "#/definitions/CpProtocolInfo"
      associatedVnfcCpIds:
        description: >
          Identifiers of the VnfcCps that share the virtual IP addresse allocated to the VIP CP instance. See note.
        type: array
        items:
          $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/IdentifierInVnf"
      vnfLinkPortId:
        description: >
          Identifier of the "VnfLinkPortInfo" structure in the "VnfVirtualLinkResourceInfo" or
          "ExtManagedVirtualLinkInfo" structure. Shall be present if the CP is associated to a
          link port on an internal VL (including externally-managed internal VL).
        $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/IdentifierInVnf"
      metadata:
        description: >
          Metadata about this VIP CP.
        type: array
        items:
        $ref: "../../General_Definitions/SOL002_def.yaml#/definitions/KeyValuePairs"