SOL003VNFLifecycleManagement_def.yaml 193 KB
Newer Older
3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 3040 3041 3042 3043 3044 3045 3046 3047 3048 3049 3050 3051 3052 3053 3054 3055 3056 3057 3058 3059 3060 3061 3062 3063 3064 3065 3066 3067 3068 3069 3070 3071 3072 3073 3074 3075 3076 3077 3078 3079 3080 3081 3082 3083 3084 3085 3086 3087 3088 3089 3090 3091 3092 3093 3094 3095 3096 3097 3098 3099 3100 3101 3102 3103 3104 3105 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 3124 3125 3126 3127 3128 3129 3130 3131 3132 3133 3134 3135 3136 3137 3138 3139 3140 3141 3142 3143 3144 3145 3146 3147 3148 3149 3150 3151 3152 3153 3154 3155 3156 3157 3158 3159 3160 3161 3162 3163 3164 3165 3166 3167 3168 3169 3170 3171 3172 3173 3174 3175 3176 3177 3178 3179 3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 3190 3191 3192 3193 3194 3195 3196 3197 3198 3199 3200 3201 3202 3203 3204 3205 3206 3207 3208 3209 3210 3211 3212 3213 3214 3215 3216 3217 3218 3219 3220 3221 3222 3223 3224 3225 3226 3227 3228 3229 3230 3231 3232 3233 3234 3235 3236 3237 3238 3239 3240 3241 3242 3243 3244 3245 3246 3247 3248 3249 3250 3251 3252 3253 3254 3255 3256 3257 3258 3259 3260 3261 3262 3263 3264 3265 3266 3267 3268 3269 3270 3271 3272 3273 3274 3275 3276 3277 3278 3279 3280 3281 3282 3283 3284 3285 3286 3287 3288 3289 3290 3291 3292 3293 3294 3295 3296 3297 3298 3299 3300 3301 3302 3303 3304 3305 3306 3307 3308 3309 3310 3311 3312 3313 3314 3315 3316 3317 3318 3319 3320 3321 3322 3323 3324 3325 3326 3327 3328 3329 3330 3331 3332 3333 3334 3335 3336 3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 3347 3348 3349 3350 3351 3352 3353 3354 3355 3356 3357 3358 3359 3360 3361 3362 3363 3364 3365 3366 3367 3368 3369 3370 3371 3372 3373 3374 3375 3376 3377 3378 3379 3380 3381 3382 3383 3384 3385 3386 3387 3388 3389 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399 3400 3401 3402 3403 3404 3405 3406 3407 3408 3409 3410 3411 3412 3413 3414 3415 3416 3417 3418 3419 3420 3421 3422 3423 3424 3425 3426 3427 3428 3429 3430 3431 3432 3433 3434 3435 3436 3437 3438 3439 3440 3441 3442 3443 3444 3445 3446 3447 3448 3449 3450 3451 3452 3453 3454 3455 3456 3457 3458 3459 3460 3461 3462 3463 3464 3465 3466 3467 3468 3469 3470 3471 3472 3473 3474 3475 3476 3477 3478 3479 3480 3481 3482 3483 3484 3485 3486 3487 3488 3489 3490 3491 3492 3493 3494 3495 3496 3497 3498 3499 3500 3501 3502 3503 3504 3505 3506 3507 3508 3509 3510 3511 3512 3513 3514 3515 3516 3517 3518 3519 3520 3521 3522 3523 3524 3525 3526 3527 3528 3529 3530 3531 3532 3533 3534 3535 3536 3537 3538 3539 3540 3541 3542 3543 3544 3545 3546 3547 3548 3549 3550 3551 3552 3553 3554 3555 3556 3557 3558 3559 3560 3561 3562 3563 3564 3565 3566 3567 3568 3569 3570 3571 3572 3573 3574 3575 3576 3577 3578 3579 3580 3581 3582 3583 3584 3585 3586 3587 3588 3589 3590 3591 3592 3593 3594 3595 3596 3597 3598 3599 3600 3601 3602 3603 3604 3605 3606 3607 3608 3609 3610 3611 3612 3613 3614 3615 3616 3617 3618 3619 3620 3621 3622 3623 3624 3625 3626 3627 3628 3629 3630 3631 3632 3633 3634 3635 3636 3637 3638 3639 3640 3641 3642 3643 3644 3645 3646 3647 3648 3649 3650 3651 3652 3653 3654 3655 3656 3657 3658 3659 3660 3661 3662 3663 3664 3665 3666 3667 3668 3669 3670 3671 3672 3673 3674 3675 3676 3677 3678 3679 3680 3681 3682 3683 3684 3685 3686 3687 3688 3689 3690 3691 3692 3693 3694 3695 3696 3697 3698 3699 3700 3701 3702 3703 3704 3705 3706 3707 3708 3709 3710 3711 3712 3713 3714 3715 3716 3717 3718 3719 3720 3721 3722 3723 3724 3725 3726 3727 3728 3729 3730 3731 3732 3733 3734 3735 3736 3737 3738 3739 3740 3741 3742 3743 3744 3745 3746 3747 3748 3749 3750 3751 3752 3753 3754 3755 3756 3757 3758 3759 3760 3761 3762 3763 3764 3765 3766 3767 3768 3769 3770 3771 3772 3773 3774 3775 3776 3777 3778 3779 3780 3781 3782 3783 3784 3785 3786 3787 3788 3789 3790 3791 3792 3793 3794 3795 3796 3797 3798 3799 3800 3801 3802 3803 3804 3805 3806 3807 3808 3809 3810 3811 3812 3813 3814 3815 3816 3817 3818 3819 3820 3821 3822 3823 3824 3825 3826 3827 3828 3829 3830 3831 3832 3833 3834 3835 3836 3837 3838 3839 3840 3841 3842 3843 3844 3845 3846 3847 3848 3849 3850 3851 3852 3853 3854 3855 3856 3857 3858 3859 3860 3861 3862 3863 3864 3865 3866 3867 3868 3869 3870 3871 3872 3873 3874 3875 3876 3877 3878 3879 3880 3881 3882 3883 3884 3885 3886 3887 3888 3889 3890 3891 3892 3893 3894 3895 3896 3897 3898 3899 3900 3901 3902 3903 3904 3905 3906 3907 3908 3909 3910 3911 3912 3913 3914 3915 3916 3917 3918 3919 3920 3921 3922 3923 3924 3925 3926 3927 3928 3929 3930 3931 3932 3933 3934 3935 3936 3937 3938 3939 3940 3941 3942 3943 3944 3945 3946 3947 3948 3949 3950 3951 3952 3953 3954 3955 3956 3957 3958 3959 3960 3961 3962 3963 3964 3965 3966 3967 3968 3969 3970 3971
          - ipAddresses
    oneOf:
      - required:
          - addresses
      - required:
          - addressRange
    properties:
      macAddress:
        description: >
          MAC address, if assigned. See note 1.
        $ref: "../../../definitions/SOL002SOL003_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: "../../../definitions/SOL002SOL003_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: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IpAddress"
                maxAddress:
                  description: >
                    Highest IP address belonging to the range
                  $ref: "../../../definitions/SOL002SOL003_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: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVim"

  MonitoringParameter:
    type: object
    required:
      - id
      - performanceMetric
    properties:
      id:
        description: >
          Identifier of the monitoring parameter defined in the VNFD.
        $ref: "../../../definitions/SOL002SOL003_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: "../../../definitions/SOL002SOL003_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. 
      It shall comply with the provisions defined in table 5.5.3.12-1. 
      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: "../../../definitions/SOL002SOL003_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: "../../../definitions/SOL002SOL003_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: "../../../definitions/SOL002SOL003_def.yaml#/definitions/NotificationLink"
      subscription:
        description: >
          Link to the related subscription.
        $ref: "../../../definitions/SOL002SOL003_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: "../../../definitions/SOL002SOL003_def.yaml#/definitions/NotificationLink"

  VnfExtCpInfo:
    description: >
      This type represents information about an external CP of a VNF. 
      It shall comply with the provisions defined in table 5.5.3.17 1.

      NOTE 1:	The attributes "associatedVnfcCpId", "associatedVipCpId", "associatedVirtualCpId" 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.
      NOTE 3: Cardinality greater than 1 is only applicable for specific cases where more than one network 
              attachment definition resource is needed to fulfil the connectivity requirements of the external 
              CP, e.g. to build a link redundant mated pair in SR-IOV cases.
      NOTE 4: When more than one netAttDefResourceId is indicated, all shall belong to the same namespace.
    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: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf"
      cpdId:
        description: >
          Identifier of the external CPD, VnfExtCpd, in the VNFD.
        $ref: "../../../definitions/SOL002SOL003_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: "../../../definitions/SOL002SOL003_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: "../../../definitions/SOL002SOL003_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: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
      metadata:
        description: >
          Metadata about this external CP.
        $ref: "../../../definitions/SOL002SOL003_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: "../../../definitions/SOL002SOL003_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: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf"
      associatedVirtualCpId:
        description: >
          Identifier of the "VirtualCpInfo" structure that represents the Virtual CP that is exposed by this
          external CP instance. Shall be present in case this CP instance maps to a Virtual CP. See note 1.
        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd"
      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: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf"
      netAttDefResourceInfoId:
        description: >
          Identifier of the “NetAttDefResourceInfo” structure that provides the specification of the interface to attach the
          connection point to a secondary container cluster network. See notes 3 and 4.
          It shall be present if the external CP is associated to a VNFC realized by one or a set of OS containers and
          is connected to a secondary container cluster network. It shall not be present otherwise.
        type: array
        items:
          $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"

  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

########################################################################################################################
  VnfIdentifierCreationNotification:
    description: >
      This type represents a VNF identifier creation notification, which
      informs the receiver of the creation of a new "Individual VNF instance" resource and
      the associated VNF instance identifier.
      This notification shall be triggered by the VNFM when it has created an
      "Individual VNF instance" resource and the associated VNF instance identifier.
    type: object
    required:
      - id
      - notificationType
      - subscriptionId
      - timeStamp
      - vnfInstanceId
      - _links
    properties:
      id:
        description: >
          Identifier of the VNF instance.
        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
      notificationType:
        description: >
          Discriminator for the different notification types. Shall be set to
          "VnfIdentifierCreationNotification" for this notification type.
        type: string
        enum:
          - VnfIdentifierCreationNotification
      subscriptionId:
        description: >
          Identifier of the subscription that this notification relates to.
        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
      timeStamp:
        description: >
          Date-time of the generation of the notification.
        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime"
      vnfInstanceId:
        description: >
          The created VNF instance identifier.
        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
      _links:
        description: >
          Links to resources related to this notification.
        $ref: "#/definitions/LccnLinks"

  VnfIdentifierDeletionNotification:
    description: >
      This type represents a VNF identifier deletion notification, which
      informs the receiver of the deletion of a new "Individual VNF instance" resource and
      the associated VNF instance identifier.
      This notification shall be triggered by the VNFM when it has deleted an
      "Individual VNF instance" resource and the associated VNF instance identifier.
    type: object
    required:
      - id
      - notificationType
      - subscriptionId
      - timeStamp
      - vnfInstanceId
      - _links
    properties:
      id:
        description: >
          Identifier of this notification. If a notification is sent multiple
          times due to multiple subscriptions, the "id" attribute of all these
          notifications shall have the same value.
        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
      notificationType:
        description: >
          Discriminator for the different notification types. Shall be set to
          "VnfIdentifierDeletionNotification" for this notification type.
        type: string
        enum:
          - VnfIdentifierDeletionNotification
      subscriptionId:
        description: >
          Identifier of the subscription that this notification relates to.
        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
      timeStamp:
        description: >
          Date-time of the generation of the notification.
        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime"
      vnfInstanceId:
        description: >
          The deleted VNF instance identifier.
        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
      _links:
        description: >
          Links to resources related to this notification.
        $ref: "#/definitions/LccnLinks"

  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: "../../../definitions/SOL002SOL003_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: "../../../definitions/SOL002SOL003_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: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf"
      vduId:
        description: >
          Reference to the applicable VDU information element in
          the VNFD.
        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf"
      vnfcResourceInfoId:
        description: >
          Identifier of the VnfcResourceInfo instance representing
          the virtualised resources used by this VNFC instance. See note.
        $ref: "../../../definitions/SOL002SOL003_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: "../../../definitions/SOL002SOL003_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: "../../../definitions/SOL002SOL003_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.
      The "ModificationsTriggeredByVnfPkgChange" data type shall comply with the provisions defined in table 5.5.3.21-1.

      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: "../../../definitions/SOL002SOL003_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: "../../../definitions/SOL002SOL003_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: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
      vnfdId:
        description: >
          If present, this attribute signals the new value of the "vnfdId" attribute in "VnfInstance".
        $ref: "../../../definitions/SOL002SOL003_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: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Version"
      vnfdVersion:
        description: >
          If present, this attribute signals the new value of the "vnfdVersion" attribute in "VnfInstance". See note 2.
        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Version"
      vimConnectionInfo:
        description: >
          If present, this attribute signals the changes to VIM connection info that were passed in the related 
          "ChangeCurrentVnfPkgRequest" structure. The provisions for sensitive information defined in clause 
          4.4.1.6 apply.
        type: object
        additionalProperties:
          $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/VimConnectionInfo"

  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

  McioTypeName:
    description: >
      The present type definition provides valid string values for the "mcioType" attribute of the "McioInfo" data type , and
      the valid values are defined in table 5.5.4.9-1.
    type: string
    enum:
      - Deployment
      - Statefulset

  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: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf"

        cpdId:
          description: >
            Identifier of the VipCpd in the VNFD.
          $ref: "../../../definitions/SOL002SOL003_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: "../../../definitions/SOL002SOL003_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. It shall comply with the provisions
      defined in table 5.5.3.28-1.

      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 information element.
        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf"
      cpdId:
        description: >
          Identifier of the VIP Connection Point Descriptor, VipCpd, in the VNFD.
        $ref: "../../../definitions/SOL002SOL003_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: "../../../definitions/SOL002SOL003_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: "../../../definitions/SOL002SOL003_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: "../../../definitions/SOL002SOL003_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: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf"
      metadata:
        description: >
          Metadata about this VIP CP.
        type: array
        items:
        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs"

  AffectedVirtualCp:
    description: >
      This type provides information about added, deleted and modified virtual CP instances.
    type: object
    required:
      - cpInstanceId
      - cpdId
      - changeType
    properties: 
      cpInstanceId: 
        description: > 
          dentifier of the virtual CP instance and the related "VirtualCpInfo" 
          structure in "VnfInstance".
        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf"
      cpdId:
        description: >
          Identifier of the VirtualCpd in the VNFD.
        $ref: "../../../definitions/SOL002SOL003_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 VirtualCpd which is referred 
          from the source or destination VNFD.
        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
      changeType:
        description: >
          Signals the type of change.

          Permitted values:
            - ADDED
            - REMOVED
            - MODIFIED
        type: string
        enum:
          - ADDED
          - REMOVED
          - MODIFIED

  McioInfo:
    description: >
      This type provides information about an MCIO representing the set of VNFC instances realized by one 
      or a set of OS containers which have been created based on the same VDU.
      Within the CISM, an MCIO controller monitors the actual state of an MCIO representing the set of VNFC 
      instances realized by one or a set of OS containers and compare it to the desired state as specified 
      in the respective declarative descriptor. It triggers actions toward the CIS to align the actual to 
      the desired state. Monitoring the actual state includes monitoring the number of MCIO instances available 
      at any specific point in time. In addition, an MCIO controller maintains properties and runtime information 
      on the MCIO instances which have been created based on the same VDU.
      The McioInfo data structure provides the runtime information on the MCIOs obtained from the MCIO controller.
      
      NOTE: There are different types of MCIOs. The set of VNFC instances based on the same VDU is represented 
            by one MCIO, e.g. of type Deployment. Each individual VNFC instance is represented by another type 
            of MCIO, e.g. a POD.

      Runtime information of the set of OS containers realizing an individual VNFC instance is not part of the 
      McioInfo data structure; such runtime information is provided in the ResourceHandle data structure 
      referenced from the VnfcResourceInfo. The McioInfo does not provide runtime information of a constituent 
      VNFC instance created based on a specific VDU.

      NOTE 1: The type of MCIO as specified in the declarative descriptor of the MCIO, and that can be read from 
              the CISM. EXAMPLE: In case of MCIOs managed by Kubernetes®, the type of MCIO corresponds to the 
              “kind” property of the declarative descriptor.
      NOTE 2: If the attribute additionalInfo is present, it may contain runtime information on the actual and 
              desired state of the MCIO(s).   
      NOTE 3: When the container infrastructure service is a Kubernetes® instance, the mcioId is the combined 
              values from the kind and name fields of the Kubernetes resource object, separated by a slash. 
              Example: "Deployment/abcd". 
      NOTE 4: When the container infrastructure service is a Kubernetes® instance, the mcioName is the name 
              field of the resource object.          
    type: object
    required: 
      - mcioId
      - mcioName
      - mcioNamespace
      - vduId
      - cismId
      - mcioType
      - desiredInstances
      - availableInstances
    properties:
      mcioId: 
        description: >
          Identifier of this MCIO, created by the CISM. See note 3.
        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
      mcioName:
        description: >
          Human readable name of this MCIO. See note 4.
        type: string
      mcioNamespace:
        description: >
          Namespace of this MCIO.
        type: string
      vduId:
        description: >
          Reference to the related VDU in the VNFD applicable to this resource.
        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd"
      cismId:
        description: >
          Identifier of the CISM managing this MCIO.
        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
      mcioType: 
        description: >
          The type of MCIO. Specific values, their semantics and associated MCIO types are defined in clause 
          5.5.4.9. Additional values are also permitted.
          See note 1.
        type: string
        enum:
          - Deployment
          - Statefulset
      desiredInstances: 
        description: >
          Number of desired MCIO instances.
        type: integer
      availableInstances:
        description: >
          Number of available MCIO instances.
        type: integer
      additionalInfo:
        decription: >
          Additional information which is specific to the MCIO, its type, and which is available 
          from the CISM.
          See note 2. 
        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs"

  VirtualCpInfo:
    description: >
      This type provides information related to a virtual CP instance of a VNF. It shall comply with the provisions 
      in table 5.5.3.31-1.

      NOTE: A consumer of the VNF LCM interface can learn the actual VNFC instances implementing the service 
            accessible via the virtual CP instance by querying the "vnfcResourceInfo" from the "InstantiatedVnfInfo" 
            and filtering by corresponding "vduIds" values.
    type: object
    required:
      - cpInstanceId
      - cpdId
      - resourceHandle
      - vduIds
    properties:
      cpInstanceId:
        description: >
          Identifier of this virtual CP instance.
        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf"
      cpdId:
        description: >
          Identifier of the VirtualCpd in the VNFD.
        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd"
      resourceHandle:
        description: >
          Reference to the virtualised resource realizing this virtual CP.
        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ResourceHandle"
      vnfExtCpId:
        description: >
          When the virtual CP is exposed as external CP of the VNF, the identifier of this external VNF CP instance.
        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf"
      cpProtocolInfo: 
        description: >
          Protocol information for this CP. There shall be one cpProtocolInfo for each layer protocol supported.
        type: array
        items:
          $ref: "#/definitions/CpProtocolInfo"
      vduIds:
        description: >
          Reference to the VDU(s) which implement the service accessible via the virtual CP instance. See note.
        type: array
        minItems: 1
        items: 
          $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd"
      additionalServiceInfo:
        description: >
          Additional service identification information of the virtual CP instance.
        type: array
        items:
          $ref: "#/definitions/AdditionalServiceInfo"
      metadata:
        description: >
          Metadata about this virtual CP instance.
        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" 

  AdditionalServiceInfo:
    description: >
      This type provides additional service information of the virtual CP instance used to expose properties of the 
      virtual CP to NFV-MANO. It shall comply with the provisions in table 5.5.3.32-1.

      NOTE: This attribute shall only be present if additional information is needed to identify the service 
            termination within the VNF, such as for example a URL path information in an HTTP request required 
            to allow a single virtual CP IP address to be used for several HTTP based services that use the 
            same port number.
    type: object
    required:
      - portInfo
    properties:
      portInfo: 
        description: >
          Service port numbers exposed by the virtual CP instance.
        minItems: 1
        type: array
        items:
          $ref: "#/definitions/ServicePortInfo"
      serviceInfo: 
        description: >
          Service matching information exposed by the virtual CP instance.
          See note.
        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" 

  ServicePortInfo:
    description: >
      This type describes the service identifying port properties exposed by the virtual CP instance. It shall 
      comply with the provisions in table 5.5.3.33-1.
    type: object
    required:
      - name
      - port
      - portConfigurable
    properties:
      name:
        description: >
          The name of the port exposed by the virtual CP instance.
        type: string
      protocol:
        description: >
          The L4 protocol for this port exposed by the virtual CP instance.

          Permitted values:
          - TCP
          - UDP
          - SCTP
        type: string
        enum:
          - TCP
          - UDP
          - SCTP
      port:
        description: >
          The L4 port number exposed by the virtual CP instance.
        type: integer 
      portConfigurable: 
        description:
          Specifies whether the port attribute value is allowed to be configurable.
        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Boolean"

  NetAttDefResourceInfo:
    description: >
      This type contains information related to a network attachment definition resource that provides the 
      specification of the interface used to connect one or multiple connection points to a secondary container 
      cluster network. It shall comply with the provisions defined in table 5.5.3.36-1.
    type: object
    required:
      - netAttDefResourceInfoId
      - netAttDefResource
    properties: 
      netAttDefResourceInfoId:
        description: >
          Identifier of this network attachment definition resource as provided by the entity that has 
          created it.
        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
      netAttDefResource:
        description: >
          Resource handle of the resource in the scope of the CISM.
        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ResourceHandle" 
      associatedExtCpId:
        description: >
          Identifier of the external CP associated to this network attachment definition resource. Shall be present 
          when the network attachment definition resource is used for external connectivity by the VNF.
        type: array
        items:
          $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf"
      associatedVnfcCpId:
        description: >
          Identifier of the VNFC CP associated to this network attachment definition resource. May be present when 
          the network attachment definition resource is used for internal connectivity by the VNF.
        type: array
        items:
          $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf"
  
  VirtualCpAddressInfo:
    description: >
      This type represents information about a network address that has been assigned to a virtual CP.
    type: object
    required:
      - type
    properties:
      type:
        description: >
          The type of the IP addresses. Permitted values:
          - IPV4
          - IPV6
        type: string
        enum:
          - IPV4
          - IPV6
      loadBalancerIp:
        description: >
          Fixed addresses assigned to an external load balancer.
        $ref: '../../../definitions/SOL002SOL003_def.yaml#/definitions/IpAddress'