SOL003VNFLifecycleManagement_def.yaml 191 KB
Newer Older
          oneOf:
            - required:
              - addresses
            - required:
              - addressRange
          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/SOL003_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/SOL003_def.yaml#/definitions/IpAddress"
                maxAddress:
                  description: >
                    Highest IP address belonging to the range
                  $ref: "../../General_Definitions/SOL003_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/SOL003_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/SOL003_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/SOL003_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/SOL003_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/SOL003_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/SOL003_def.yaml#/definitions/NotificationLink"
      subscription:
        description: >
          Link to the related subscription.
        $ref: "../../General_Definitions/SOL003_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/SOL003_def.yaml#/definitions/NotificationLink"
      This type represents information about an external CP of a VNF.

      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: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
      cpdId:
        description: >
          Identifier of the external CPD, VnfExtCpd, in the VNFD.
        $ref: "../../General_Definitions/SOL003_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/SOL003_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/SOL003_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/SOL003_def.yaml#/definitions/Identifier"
      metadata:
        description: >
          Metadata about this external CP.
        $ref: "../../General_Definitions/SOL003_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/SOL003_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/SOL003_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: "../../General_Definitions/SOL003_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/SOL003_def.yaml#/definitions/IdentifierInVnf"
        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: "../../General_Definitions/SOL003_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: "../../General_Definitions/SOL003_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: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
      timeStamp:
        description: >
          Date-time of the generation of the notification.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/DateTime"
      vnfInstanceId:
        description: >
          The created VNF instance identifier.
        $ref: "../../General_Definitions/SOL003_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: "../../General_Definitions/SOL003_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: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
      timeStamp:
        description: >
          Date-time of the generation of the notification.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/DateTime"
      vnfInstanceId:
        description: >
          The deleted VNF instance identifier.
        $ref: "../../General_Definitions/SOL003_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: "../../General_Definitions/SOL003_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/SOL003_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/SOL003_def.yaml#/definitions/IdentifierInVnf"
      vduId:
        description: >
          Reference to the applicable VDU information element in
          the VNFD.
        $ref: "../../General_Definitions/SOL003_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/SOL003_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/SOL003_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/SOL003_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/SOL003_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/SOL003_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/SOL003_def.yaml#/definitions/KeyValuePairs"
      vnfdId:
        description: >
          If present, this attribute signals the new value of the "vnfdId" attribute in "VnfInstance".
        $ref: "../../General_Definitions/SOL003_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/SOL003_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/SOL003_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: "../../General_Definitions/SOL003_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
ishaqm's avatar
ishaqm committed
      - 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: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"

        cpdId:
          description: >
            Identifier of the VipCpd in the VNFD.
          $ref: "../../General_Definitions/SOL003_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/SOL003_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: >
ishaqm's avatar
ishaqm committed
          Identifier of this VIP CP instance and of this VipCpInfo.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
      cpdId:
        description: >
          Identifier of the VIP Connection Point Descriptor, VipCpd, in the VNFD.
        $ref: "../../General_Definitions/SOL003_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/SOL003_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/SOL003_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/SOL003_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/SOL003_def.yaml#/definitions/IdentifierInVnf"
      metadata:
        description: >
          Metadata about this VIP CP.
        type: array
        items:
        $ref: "../../General_Definitions/SOL003_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: > 
          Identifier of the virtual CP instance and the related "VirtualCpInfo" 
          structure in "VnfInstance".
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
      cpdId:
        description: >
          Identifier of the VirtualCpd in the VNFD.
        $ref: "../../General_Definitions/SOL003_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: "../../General_Definitions/SOL003_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: "../../General_Definitions/SOL003_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: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnfd"
      cismId:
        description: >
          Identifier of the CISM managing this MCIO.
        $ref: "../../General_Definitions/SOL003_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: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
      This type provides information related to a virtual CP instance of a VNF.

      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: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
      cpdId:
        description: >
          Identifier of the VirtualCpd in the VNFD.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnfd"
      resourceHandle:
        description: >
          Reference to the virtualised resource realizing this virtual CP.
        $ref: "../../General_Definitions/SOL003_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: "../../General_Definitions/SOL003_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: "../../General_Definitions/SOL003_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: "../../General_Definitions/SOL003_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.

      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: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs" 
      This type describes the service identifying port properties exposed by the virtual CP instance.
    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: "../../General_Definitions/SOL003_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.
    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: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
      netAttDefResource:
        description: >
          Resource handle of the resource in the scope of the CISM.
        $ref: "../../General_Definitions/SOL003_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: "../../General_Definitions/SOL003_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: "../../General_Definitions/SOL003_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.
ishaqm's avatar
ishaqm committed
        $ref: '../../General_Definitions/SOL003_def.yaml#/definitions/IpAddress'
      addressPoolName:
        description: >
          Name of an address pool from which an IP address is
          assigned to the virtual CP.
        type: string