SOL003VNFLifecycleManagement_def.yaml 224 KB
Newer Older
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      vnfInstanceName:
        description: >
          Name of the VNF instance.
          This attribute can be modified with the PATCH method.
        type: string
      vnfInstanceDescription:
        description: >
          Human-readable description of the VNF instance.
          This attribute can be modified with the PATCH method.
        type: string
      vnfdId:
        description: >
          Identifier of the VNFD on which the VNF instance is based. See note 1.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      vnfProvider:
        description: >
          Provider of the VNF and the VNFD. The value is copied from the VNFD.
        type: string
      vnfProductName:
        description: >
          Name to identify the VNF Product. The value is copied from the VNFD.
        type: string
      vnfSoftwareVersion:
        description: >
          Software version of the VNF. The value is copied from the VNFD.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Version"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      vnfdVersion:
        description: >
          Identifies the version of the VNFD. The value is copied from the VNFD.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Version"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      vnfConfigurableProperties:
        description: >
          Additional VNF-specific attributes that provide the current values of the configurable 
          properties of the VNF instance.
          
          These attributes represent values that are stored persistently in the VnfInstance structure
          and that correspond to configuration parameters of the VNF instance.
          
          Modifying these attributes affects the configuration of the VNF instance either directly 
          (if the VNF instance is in INSTANTIATED state at the time of the modification) or as part 
          of the subsequent VNF instantiation operation (if the VNF instance is in NOT_INSTANTIATED 
          state at the time of the modification).
          
          Configurable properties referred in these attributes are declared in the VNFD. The declaration 
          of configurable properties in the VNFD can optionally contain the specification of initial values. 
          See notes 2, 3 and 4. The VNFM shall reject requests to write configurable properties that are 
ishaqm's avatar
ishaqm committed
          not declared in the VNFD with a "422 Unprocessable Content" error response as defined in clause 
          6.4 of ETSI GS NFV SOL 013.
          
          These configurable properties include the following standard attributes, which are declared in 
          the VNFD if auto-scaling and/or auto-healing are supported by the VNF: 
          -	isAutoscaleEnabled: If present, the VNF supports auto-scaling. If set to true, auto-scaling 
                                is currently enabled. If set to false, auto-scaling is currently disabled.
          -	isAutohealEnabled:  If present, the VNF supports auto-healing. If set to true, auto-healing is 
                                currently enabled. If set to false, auto-healing is currently disabled.
          These configurable properties can be initialized with default values from the VNFD (see note 4).

          Configurable properties can be modified with values passed in the request structures of certain 
          LCM operations, such as the InstantiateVnfRequest structure.
          
          Further, these configurable properties can be created, modified or deleted with the PATCH method.
          In addition, the provisions in clause 5.7 shall apply.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      vimConnectionInfo:
        description: >
          Information about VIM or CISM connections to be used for managing the resources for
          the VNF instance. The keys of the map, each of which identifies information about a
          particular VIM connection, are managed by the NFVO and referenced from other data
          structures via the "vimConnectionId" attribute.
          This attribute shall only be supported and present if
          - the resources of at least of the VNFCs are managed by a VIM and
          VNF-related resource management in direct mode is applicable.
          - the resources of at least of the VNFCs are managed by a CISM.
          This attribute can be modified with the PATCH method.
          If VIM connection information is provisioned to the VNFM by means outside the scope of
          the present document, the information in the "vimConnectionInfo" attribute provides
          necessary information for binding the VnfInstance representing the "Individual VNF
          instance" to the applicable VIM connection information used to perform resource
          management for the VNF instance. See also the definition of the "VimConnectionInfo" in
ishaqm's avatar
ishaqm committed
          clause 4.4.1.6.
        type: object
        additionalProperties:
          $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/VimConnectionInfo"
      cirConnectionInfo:
        description: >
          Information about the CIR connection for
          managing OS container images for the VNF
          instance.
          Shall be present when all or part of the VNF
          is realized by a set of OS containers and
          shall be absent otherwise.
        type: object
        additionalProperties:
          $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/VimConnectionInfo"
      mciopRepositoryInfo:
        description: >
          Information about the MCIOP repository for
          the VNF instance.
          Shall be present when all or part of the VNF
          is realized by a set of OS containers and
          shall be absent otherwise.
          See note 1.
Francesca Moscatelli's avatar
Francesca Moscatelli committed
        type: object
        additionalProperties:
          $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/VimConnectionInfo"
      certificateInfo:
        description: >
          Information about certificate and certificate management in this VNF. Shall be present 
          when using delegation mode, otherwise shall be absent.This attribute can be modified with the 
          PATCH method.Content of this attribute shall not be either added (if previously not set) or removed (if 
          previously set) by using the Modify VNF Information operation. See note 3.
        $ref: "#/definitions/CertificateInfo"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      instantiationState:
        description: >
          The instantiation state of the VNF.
          Permitted values:
          - NOT_INSTANTIATED: The VNF instance is terminated or not instantiated.
          - INSTANTIATED: The VNF instance is instantiated.
Francesca Moscatelli's avatar
Francesca Moscatelli committed
        type: string
        enum:
          - NOT_INSTANTIATED
          - INSTANTIATED
      instantiatedVnfInfo:
        description: >
          Information specific to an instantiated VNF instance. This attribute
          shall be present if the instantiateState attribute value is
          INSTANTIATED.
        type: object
        required:
          - flavourId
          - vnfState
        properties:
          flavourId:
            description: >
              Identifier of the VNF deployment flavour applied to this VNF instance.
            $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnfd"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
          vnfState:
            description: >
              The state of the VNF instance.
            $ref: "#/definitions/VnfOperationalStateType"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
          scaleStatus:
            description: >
              Scale status of the VNF, one entry per aspect. Represents for every scaling aspect 
              how "big" the VNF has been scaled w.r.t. that aspect.
              
              This attribute shall be present if the VNF supports scaling.
Francesca Moscatelli's avatar
Francesca Moscatelli committed
              See clause B.2 for an explanation of VNF scaling.
              
              For an aspect that has not been deployed because the related deployableModule has 
              not been selected, it indicates the scale level that has been requested in the instantiation 
              or in a scaling operation, or, if none has been requested in any of them, the scale level 
              applicable to the aspect based on the default instantiation level. See note 8.
Francesca Moscatelli's avatar
Francesca Moscatelli committed
            type: array
            items:
              $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/ScaleInfo"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
          maxScaleLevels:
            description: >
              Maximum allowed scale levels of the VNF, one entry per aspect.
              This attribute shall be present if the VNF supports scaling.
            type: array
            items:
              $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/ScaleInfo"
          selectedDeployableModule:
            description: >
              References a currently selected deployable module, as defined in the VNFD, that has 
              already completed the instantiation of its VNFCs.
            type: array
            items:
              $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnfd"
Muhammad Umair Khan's avatar
Muhammad Umair Khan committed
          resourceCapacityDefinition: 
            description: >
              Shows current values of VDU attributes related to resource capacity, 
              if different to the default values from the VNFD, as indicated in the 
              (one or more) request(s) of all completed VNF LCM operation(s) that 
              contain this attribute. If an attribute value has been modified multiple times,
              only the last value is shown. The values indicated in this attribute are 
              applicable to all VNFC instances based on the VDU to which the 
              resourceCapacityDefinition is related.
            type: array
            items:
              $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/ResourceCapacityDefinition"

Francesca Moscatelli's avatar
Francesca Moscatelli committed
          extCpInfo:
            description: >
              Information about the external CPs exposed by the VNF instance. When trunking is enabled,
              the list of entries includes both, external CPs corresponding to parent ports of a trunk,
              and external CPs associated to sub-ports of a trunk.See note 7.
Francesca Moscatelli's avatar
Francesca Moscatelli committed
            type: array
            items:
              $ref: "#/definitions/VnfExtCpInfo"
          vipCpInfo:
            description: >
              VIP CPs that are part of the VNF instance. Shall be present when that particular VIP CP of the VNFC
              instance is associated to an external CP of the VNF instance.
              May be present otherwise.
            type: array
            minItems: 1
            items:
              $ref: "#/definitions/VipCpInfo"
          virtualCpInfo:
            description: >
              Virtual CPs that are part of the VNF instance. Shall be present when a particular Virtual CP
              is associated to an external CP of the VNF instance.
              May be present otherwise.
            type: array
            items:
              $ref: "#/definitions/VirtualCpInfo"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
          extVirtualLinkInfo:
            description: >
              Information about the external VLs the VNF instance is connected to.
            type: array
            items:
              $ref: "#/definitions/ExtVirtualLinkInfo"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
          extManagedVirtualLinkInfo:
            description: >
              Information about the externally-managed internal VLs of the VNF instance. See notes 5 and 6.
Francesca Moscatelli's avatar
Francesca Moscatelli committed
            type: array
            items:
              $ref: "#/definitions/ExtManagedVirtualLinkInfo"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
          monitoringParameters:
            description: >
              Active monitoring parameters.
            type: array
            items:
              $ref: "#/definitions/MonitoringParameter"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
          localizationLanguage:
            description: >
              Information about localization language of the VNF (includes e.g.
              strings in the VNFD). The localization languages supported by a VNF
              can be declared in the VNFD, and localization language selection can
              take place at instantiation time.
              The value shall comply with the format defined in IETF RFC 5646.
            type: string
          vnfcResourceInfo:
            description: >
              Information about the virtualised compute and storage resources used
              by the VNFCs of the VNF instance.
            type: array
            items:
              $ref: "#/definitions/VnfcResourceInfo"
          vnfVirtualLinkResourceInfo:
Francesca Moscatelli's avatar
Francesca Moscatelli committed
            description: >
              Information about the virtualised network resources used by the VLs of the VNF instance. See note 6.
Francesca Moscatelli's avatar
Francesca Moscatelli committed
            type: array
            items:
              $ref: "#/definitions/VnfVirtualLinkResourceInfo"
          virtualStorageResourceInfo:
            description: >
              Information on the virtualised storage resource(s) used as storage for the VNF instance.
            type: array
            items:
              $ref: "#/definitions/VirtualStorageResourceInfo"
          mcioInfo:
            description: >
              Information on the MCIO(s) representing
              VNFC instance(s) realized by one or a set of
              OS containers and created from the same
              VDU for the VNF instance.
            type: array
            items:
              $ref: "#/definitions/McioInfo"
          vnfPaasServiceInfo:
            description: >
              Information on the PaaS Services assigned and used by the VNF instance.
            type: array
            items:
              $ref: "#/definitions/PaasServiceInfo"          
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      metadata:
        description: >
          Additional VNF-specific attributes that provide metadata describing the VNF instance.
          
          These attributes represent values that are stored persistently in the VnfInstance structure for 
          consumption by functional blocks that invoke the VNF lifecycle management interface. They are not 
          consumed by the VNFM, or the lifecycle management scripts.
          
          Modifying the values of these attributes has no effect on the VNF instance, it only affects the 
          information represented in the VnfInstance structure.
          
          Metadata that the VNF provider foresees are expected to be declared in the VNFD. The declaration 
          of metadata in the VNFD can optionally contain the specification of initial values. See notes 2 and 4. 
Francesca Moscatelli's avatar
Francesca Moscatelli committed
          The VNFM shall accept requests to write metadata that are not declared in the VNFD.
          
          These attributes can be initialized with default values from the VNFD (see note 4) or with values 
Francesca Moscatelli's avatar
Francesca Moscatelli committed
          passed in the CreateVnfRequest structure (see clause 5.4.2.3.1).
          
          These attributes can be created, modified or removed with the PATCH method.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      extensions:
        description: >
          Additional VNF-specific attributes that affect the lifecycle management of this VNF instance.
          
          These attributes represent values that are stored persistently in the VnfInstance structure for 
          consumption by the VNFM or the lifecycle management scripts during the execution of VNF lifecycle 
          management operations. 
          
          All extensions that are allowed for the VNF are declared in the VNFD. The declaration of an extension 
          in the VNFD contains information on whether its presence is optional or required, and optionally can 
          specify an initial value. See notes 2 and 4. The VNFM shall reject requests to write extension attributes 
ishaqm's avatar
ishaqm committed
          that are not declared in the VNFD with a "422 Unprocessable Content" error response as defined in clause 
          6.4 of ETSI GS NFV-SOL 013.
          
          Modifying the values of these attributes has no direct effect on the VNF instance; however, the modified 
          attribute values can be considered during subsequent VNF lifecycle management operations, which means that 
Francesca Moscatelli's avatar
Francesca Moscatelli committed
          the modified values can indirectly affect the configuration of the VNF instance.
          
          These attributes can be initialized with default values from the VNFD (see note 4).
          
          These attributes can be modified with values passed in the request structures of certain LCM operations, 
Francesca Moscatelli's avatar
Francesca Moscatelli committed
          such as the InstantiateVnfRequest structure.
Francesca Moscatelli's avatar
Francesca Moscatelli committed
          Further, these attributes can be created, modified or deleted with the PATCH method.
          In addition, the provisions in clause 5.7 shall apply.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      _links:
        description: >
          Links to resources related to this resource.
        type: object
        required:
          - self
        properties:
          self:
            description: URI of this resource.
            $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
          indicators:
            description: Indicators related to this VNF instance, if applicable.
            $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
          instantiate:
            description: >
              Link to the "Instantiate VNF task" resource, if the related operation
              is possible based on the current status of this VNF instance
              resource (i.e. VNF instance in NOT_INSTANTIATED state).
            $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
          terminate:
            description: >
              Link to the "Terminate VNF task" resource, if the related operation
              is possible based on the current status of this VNF instance
              resource (i.e. VNF instance is in INSTANTIATED state).
            $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
          scale:
            description: >
              Link to the "Scale VNF task" resource, if the related operation is
              supported for this VNF instance, and is possible based on the
              current status of this VNF instance resource (i.e. VNF instance
              is in INSTANTIATED state).
            $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
          scaleToLevel:
            description: >
              Link to the "Scale VNF to level task" resource, if the related
              operation is supported for this VNF instance, and is possible
              based on the current status of this VNF instance resource
              (i.e. VNF instance is in INSTANTIATED state).
            $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
          changeFlavour:
            description: >
              Link to the "Change VNF flavour task" resource, if the related
              operation is supported for this VNF instance, and is possible
              based on the current status of this VNF instance resource
              (i.e. VNF instance is in INSTANTIATED state).
            $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
          heal:
            description: >
              Link to the "Heal VNF task" resource, if the related operation is
              supported for this VNF instance, and is possible based on the
              current status of this VNF instance resource
              (i.e. VNF instance is in INSTANTIATED state).
            $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
          operate:
            description: >
              Link to the "Operate VNF task" resource, if the related operation is
              supported for this VNF instance, and is possible based on the
              current status of this VNF instance resource
              (i.e. VNF instance is in INSTANTIATED state).
            $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
          changeExtConn:
            description: >
              Link to the "Change external VNF connectivity task" resource, if the related
              operation is possible based on the current status of this VNF
              instance resource (i.e. VNF instance is in INSTANTIATED state).
            $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
          createSnapshot:
            description: >
              Link to the "Create VNF snapshot task" resource, if the related operation is
              supported for this VNF instance and is possible based on the current status of
              this VNF instance resource (i.e., VNF instance is in INSTANTIATED state).
            $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
          revertToSnapshot:
            description: >
              Link to the "Revert to VNF snapshot task" resource, if the related operation is
              supported for this VNF instance and is possible based on the current status of
              this VNF instance resource (i.e., VNF instance is in INSTANTIATED state).
            $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
          changeCurrentVnfPkg:
            description: >
              Link to the "Change current VNF package task" resource, if the related
              operation is possible based on the current status of this VNF instance resource
              (i.e. VNF instance is in INSTANTIATED state).
            $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
  ExtManagedVirtualLinkInfo:
    type: object
    required:
      - id
      - vnfVirtualLinkDescId
      - networkResource
    properties:
      id:
        description: >
          Identifier of the externally-managed internal VL and the related
          externally-managed VL information instance.
          The identifier is assigned by the NFV-MANO entity that manages this
          VL instance.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
      vnfVirtualLinkDescId:
        description: >
          Identifier of the VNF Virtual Link Descriptor (VLD) in the VNFD.
        $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"
      networkResource:
        description: >
          Reference to the VirtualNetwork resource providing this VL.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/ResourceHandle"
      vnfLinkPorts:
        description: >
          Link ports of this VL.
        type: array
        items:
          $ref: "#/definitions/VnfLinkPortInfo"
      vnfNetAttDefResource:
        description: >
          Network attachment definition resources that provide the specification of the interface to attach connection
          points to this VL.
        type: array
        items:
          $ref: "#/definitions/NetAttDefResourceInfo"
      extManagedMultisiteVirtualLinkId:
        description: >
          Identifier of the externally-managed multi-site VL instance. The identifier is assigned by the NFV-MANO entity
          that manages the externally managed multi-site VL instance. It shall be present when the externally-managed
          internal VL is part of a multi-site VL, e.g., in support of multi-site VNF spanning several VIMs.
          All externally-managed internal VL instances corresponding to an internal VL created based on the same
          virtualLinkDescId shall refer to the same extManagedMultisiteVirtualLinkId.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"

  VirtualStorageResourceInfo:
    description: >
      This type represents the information that allows addressing a virtualised
      resource that is used by a VNF instance.

      Note: If only the value or the presence of this attribute is changed in the "VirtualStorageResourceInfo"
            structure by an LCM operation occurrence, this does not represent a change that requires
            including a related "AffectedVirtualStorage" structure in the VNF LCM operation occurrence
            notifications or the "VnfLcmOpOcc" structure related to this LCM operation occurrence.
    type: object
    required:
      - id
      - virtualStorageDescId
      - storageResource
    properties:
      id:
        description: >
          Identifier of this VirtualStorageResourceInfo instance.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
      virtualStorageDescId:
        description: >
          Identifier of the VirtualStorageDesc 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.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
      storageResource:
        description: >
          Reference to the VirtualStorage resource or reference to a Storage MCIO.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/ResourceHandle"
      zoneId:
        description: >
          The identifier of the resource zone, as managed by the resource
          management layer (typically, the VIM), where the referenced
          VirtualStorage resource is placed. Shall be provided if this
          information is available from the VIM.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
      reservationId:
        description: >
          The reservation identifier applicable to the resource. It shall be
          present when an applicable reservation exists.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
      metadata:
        description: >
          Metadata about this resource.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
  VnfcResourceInfo:
    description: >
      This type represents the information on virtualised compute and storage resources used by a VNFC in a VNF instance.
      Depending on the form of virtualisation container of the VNFC:
        - For a VNFC based on VM, a reference to the corresponding VirtualCompute shall be provided, and
        - For a VNFC based on OS container(s), a reference to the Compute MCIO shall be provided. Hence, exposure of
          information by the VNFM to the NFVO is at the MCIO level.
      In addition, the references to the storage resources depend on the form of the VNFC:
        a) For a VNFC based on VM, storage resource identifiers shall refer to VirtualStorage resources, and
        b) For a VNFC based on OS container(s), storage resource identifiers shall refer to Storage MCIOs.

      NOTE 1:	ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on 
              TOSCA specifications.
      NOTE 2:	A VNFC CP is "connected to" an external CP if the VNFC CP is connected to an 
              internal VL that exposes an external CP. A VNFC CP is "exposed as" an external 
              CP if it is connected directly to an external VL.
      NOTE 3:	The information can be omitted because it is already available as part of the 
              external CP information.
      NOTE 4: If only the value or the presence of this attribute is changed in the "VnfcResourceInfo"
              structure by an LCM operation occurrence, this does not represent a change that requires
              including a related "AffectedVnfc" structure in the VNF LCM operation occurrence notifications
              or the "VnfLcmOpOcc" structure related to this LCM operation occurrence.
      NOTE 5: 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 internal CP, e.g. to build a link
              redundant mated pair in SR-IOV cases.     
      NOTE 6: When more than one netAttDefResourceId is indicated, all shall belong to the same namespace.
      NOTE 7: Subports need not be used for containerized VNFCs. The application container can send and receive IP 
              packets with any VLAN tag as long as the network interface to connect to the secondary container cluster 
              network has been configured appropriately. Thus, no individual vnfcCpInfo, except the one representing the 
              trunk, need be modelled to allow traffic tagged with a particular VLAN through the connection point.
Francesca Moscatelli's avatar
Francesca Moscatelli committed
    type: object
    required:
      - id
      - vduId
      - computeResource
    properties:
      id:
        description: >
          Identifier of this VnfcResourceInfo instance.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      vduId:
        description: >
          Reference to the applicable VDU in the VNFD. See note 1.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnfd"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      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 4.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      computeResource:
        description: >
          Reference to the VirtualCompute resource or reference to a Compute MCIO.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/ResourceHandle"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      zoneId:
        description: >
          The identifier of the resource zone, as managed by the
          resource management layer (typically, the VIM), where
          the referenced VirtualCompute resource is placed.
          Shall be provided if this information is available from the VIM.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      storageResourceIds:
        description: >
          References to the VirtualStorage resources or references to Storage MCIOs.
          The value refers to a VirtualStorageResourceInfo item in the VnfInstance.
Francesca Moscatelli's avatar
Francesca Moscatelli committed
        type: array
        items:
          $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      reservationId:
        description: >
          The reservation identifier applicable to the resource. It shall be
          present when an applicable reservation exists.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      vnfcCpInfo:
        description: >
          CPs of the VNFC instance. Shall be present when that particular CP of the VNFC instance 
          is exposed as an external CP of the VNF instance or is connected to an external CP of the 
          VNF instance. See note 2. May be present otherwise. See note 7.
Francesca Moscatelli's avatar
Francesca Moscatelli committed
        type: array
        items:
          type: object
          required:
            - id
            - cpdId
          properties:
            id:
              description: >
                Identifier of this VNFC CP instance and the associated array
                entry.
              $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
            cpdId:
              description: >
                Identifier of the VDU CPD, cpdId, in the VNFD. See note 1.
              $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnfd"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
            vnfExtCpId:
              description: >
                Identifier of the related external CP. Shall be present when the VNFC CP is exposed as an 
                external CP of the VNF instance or connected to an external CP of the VNF instance (see note 2) 
                and shall be absent otherwise.
              $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
            cpProtocolInfo:
              description: >
                Network protocol information for this CP. May be omitted if the VNFC CP is exposed as an external CP. 
                See note 3.
Francesca Moscatelli's avatar
Francesca Moscatelli committed
              type: array
              items:
                $ref: "#/definitions/CpProtocolInfo"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
            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)
                of the VNF instance and shall be absent otherwise.
              $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
            parentCpId:
              description: >
                Identifier of another VNFC CP instance that corresponds to the parent port of a trunk that the present VNFC CP
                instance participates in.  Shall be provided if the present CP instance participates in a trunk as subport, and
                the referred VNFC CP instances are also present in the vnfcCpInfo attribute.
              $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"          
            netAttDefResourceId:
              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 5 and 6.
                It shall be present if the internal 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"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
            metadata:
              description: >
                Metadata about this CP.
              $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
            certificateContentId:
              description: > 
                Identifier of the "CertificateContent" structure that provides the information of the certificate that this VNFC 
                CP instance uses. Shall be present when using in delegation-mode. Otherwise shall not be present.
                This attribute shall be supported when delegation mode in certificate management is applicable
              $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      metadata:
        description: >
          Metadata about this resource.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
      certificateContentId:
        description: >
          Identifier of the "CertificateContent" structure that provides the information of the certificate that this VNFC 
          instance uses. Shall be present when using in delegation-mode. Otherwise shall not be present.
          This attribute shall be supported when delegation mode in certificate management is applicable.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
  VnfSnapshotInfo:
    description: >
      This type represents an "Individual VNF snapshot" resource.
    type: object
    required:
      - id
      - _links
    properties:
      id:
        description: >
          Identifier of the "Individual VNF snapshot" resource. This identifier is allocated by the VNFM.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      vnfSnapshotPkgId:
        description: >
          Identifier of the VNF snapshot package information held by the NFVO. Shall be present when the
          “Individual VNF snapshot" resource is created from a VNF snapshot package extraction.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      vnfSnapshot:
        description: >
          Information about the VNF snapshot, content and/or references to its content. Shall be present
          when the "Individual VNF snapshot" resource is associated to a VNF snapshot created via the
          corresponding "Create VNF Snapshot" task resource or extracted from a VNF snapshot package.
        $ref: "#/definitions/VnfSnapshot"
      _links:
        description: >
          Links to resources related to this resource.
        type: object
        required:
          - self
        properties:
          self:
            description: >
              URI of this resource.
            $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
          takenFrom:
            description: >
              Link to the VNF instance from which this snapshot was taken. Shall be present when the
              "Individual VNF snapshot" resource is associated to a VNF snapshot created via the
              corresponding "Create VNF snapshot" task resource.
            $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
Francesca Moscatelli's avatar
Francesca Moscatelli committed

  VnfStateSnapshotInfo:
    description: >
      This type represents information about VNF-specific state snapshot data.
    type: object
    required:
      - checksum
      - isEncrypted
    properties:
      checksum:
        description: >
          Checksum of the VNF state snapshot file. Hash algorithms applicable to VNF snapshot package artifacts
          are defined in ETSI GS NFV-SOL 010.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Checksum"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      isEncrypted:
        description: >
          Reflects whether the VNF state snapshot content is encrypted (true) or not (false).
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Boolean"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      metadata:
        description: >
          The metadata with additional information such as content type, size, creation date, etc.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
Francesca Moscatelli's avatar
Francesca Moscatelli committed

  VnfSnapshot:
    description: >
      This type represents a VNF snapshot.
    type: object
    required:
      - id
      - vnfInstanceId
      - triggeredAt
      - vnfdId
      - vnfInfo
      - vnfcSnapshots
    properties:
      id:
        description: >
          Identifier of the VNF Snapshot. This identifier is allocated by the VNFM.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      vnfInstanceId:
        description: >
          Identifier of the snapshotted VNF instance.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      creationStartedAt:
        description: >
          Timestamp indicating when the VNF snapshot creation has been started by the VNFM.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/DateTime"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      creationFinishedAt:
        description: >
          Timestamp indicating when the VNF snapshot has been completed by the VNFM.
          Shall be present once the VNF snapshot creation has been completed.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/DateTime"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      vnfdId:
        description: >
          Identifier of the VNFD in use at the time the snapshot of the VNF instance has been created.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      vnfInstance:
        description: >
          VNF Instance information of the snapshotted VNF instance. This is a copy of the "ndividual VNF instance" resource.
        $ref: '#/definitions/VnfInstance'
      vnfcSnapshots:
        description: >
          Information about VNFC snapshots constituting this VNF snapshot.
        type: array
        items:
          $ref: '#/definitions/VnfcSnapshotInfo'
      vnfStateSnapshotInfo:
        description: >
          Information about VNF-specific state snapshot data.
          This attribute shall not be present before the VNF snapshot has been completed.
          Otherwise, this attribute shall be present if the VNF snapshot has associated
          additional VNF-specific state data.
        $ref: '#/definitions/VnfStateSnapshotInfo'
      userDefinedData:
        description: >
          User defined data for the VNF snapshot.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      _links:
        description: >
          Links to resources related to this resource.
        type: object
        required:
          - self
        properties:
          self:
            description: >
              URI of this resource.
            $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
          vnfStateSnapshot:
            description: >
              Link to the "VNF state snapshot" resource. This attribute shall not be
              present before the VNF snapshot has been completed. Otherwise, this
              attribute shall be present if the VNF snapshot has associated additional
              VNFspecific state data.
            $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
Francesca Moscatelli's avatar
Francesca Moscatelli committed

  VnfcSnapshotInfo:
    description: >
      This type represents a VNFC snapshot.

      NOTE 1:	The identifier of the compute snapshot resource is assigned during creation of a VNFC snapshot 
              being returned from the VIM as output data in the response message of the individual resource 
              operations. This attribute shall only be present for a VNFC snapshot that has been newly created 
              by the VNFM as a result of the "Create VNF snapshot task".
      NOTE 2:	The identifier of the storage snapshot resource is assigned during creation of a VNFC snapshot being 
              returned from the VIM as output data in the response message of the individual resource operations. 
              This attribute shall only be present for a VNFC snapshot with an associated storage resource and that 
              has been newly created by the VNFM as a result of the "Create VNF snapshot task".
Francesca Moscatelli's avatar
Francesca Moscatelli committed
    type: object
    required:
      - id
      - vnfcInstanceId
      - triggeredAt
      - vnfcResourceId
    properties:
      id:
        description: >
          Identifier of the information held by the VNFM about a specific VNFC snapshot. This identifier is allocated by
          the VNFM and is unique within the scope of a VNF snapshot.
          The attribute also identifies the compute snapshot image associated to this VNFC snapshot within the context of 
          a referred VNF snapshot.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierLocal"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      vnfcInstanceId:
        description: >
          Identifier of the snapshotted VNFC instance.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      creationStartedAt:
        description: >
          Timestamp indicating when the VNF snapshot creation has been started by the VNFM.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/DateTime"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      creationFinishedAt:
        description: >
          Timestamp indicating when the VNFC snapshot has been completed. Shall be present once the VNFC snapshot
          creation has been completed by the VNFM.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/DateTime"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      vnfcResourceInfoId:
        description: >
          Reference to the "VnfcResourceInfo" structure in the "VnfInstance" structure that represents the resource
          of the snapshotted VNFC instance. A snapshot of that structure is available in the "vnfInstance" attribute
          of the "VnfSnapshot" structure.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      computeSnapshotResource:
        description: >
          Reference to a compute snapshot resource. See note 1.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/ResourceHandle"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      storageSnapshotResources:
        description: >
          Mapping of the storage resources associated to the VNFC with the storage snapshot resources.
        type: array
        items:
          type: object
          required:
            - storageResourceId
          properties:
            storageResourceId:
              description: >
                Reference to the "VirtualStorageResourceInfo" structure in the "VnfInstance" structure
                that represents the virtual storage resource.
                The attribute also identifies the storage snapshot image associated to this VNFC snapshot 
                within the context of a referred VNF snapshot.
              $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
            storageSnapshotResource:
              description: >
                Reference to a storage snapshot resource. See note 2.
              $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      userDefinedData:
        description: >
          User defined data for the VNFC snapshot.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
Francesca Moscatelli's avatar
Francesca Moscatelli committed

  VnfVirtualLinkResourceInfo:
    description: >
      This type represents the information that allows addressing a virtualised
      resource that is used by an internal VL instance in a VNF instance.

      Note: If only the value or the presence of this attribute is changed in the "VnfVirtualLinkResourceInfo"
            structure by an LCM operation occurrence, this does not represent a change that requires including
            a related "AffectedVirtualLink" structure in the VNF LCM operation occurrence notifications or the
            "VnfLcmOpOcc" structure related to this LCM operation occurrence.
Francesca Moscatelli's avatar
Francesca Moscatelli committed
    type: object
    required:
      - id
      - vnfVirtualLinkDescId
      - networkResource
    properties:
      id:
        description: >
          Identifier of this VnfVirtualLinkResourceInfo instance.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      vnfVirtualLinkDescId:
        description: >
          Identifier of the VNF Virtual Link Descriptor (VLD) in the VNFD.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnfd"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      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.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      networkResource:
        description: >
          Reference to the VirtualNetwork resource or reference to a Network MCIO.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/ResourceHandle"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      zoneId:
        description: >
          The identifier of the resource zone, as managed by the resource
          management layer (typically, the VIM), where the referenced
          VirtualNetwork resource is placed. Shall be provided if this
          information is available from the VIM.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      reservationId:
        description: >
          The reservation identifier applicable to the resource. It shall be
          present when an applicable reservation exists.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      vnfLinkPorts:
        description: >
          Links ports of this VL.
          Shall be present when the linkPort is used for external connectivity
          by the VNF (refer to VnfLinkPortInfo).
          May be present otherwise.
        type: array
        items:
          $ref: "#/definitions/VnfLinkPortInfo"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      metadata:
        description: >
          Metadata about this resource.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
Francesca Moscatelli's avatar
Francesca Moscatelli committed

  AffectedVnfc:
    description: >
      This type provides information about added, deleted, modified and temporary VNFCs.

      NOTE:	The "resourceDefinitionId" attribute provides information to the API consumer 
            (i.e. the NFVO) to assist in correlating the resource changes performed during 
            the LCM operation with the granted resources in a specific Grant exchange, which 
            is identified by the "grantId" available in the "Individual VNF lifecycle management 
            operation occurrence" and the "id" in the "Individual Grant".
Francesca Moscatelli's avatar
Francesca Moscatelli committed
    type: object
    required:
      - id
      - vduId
      - changeType
      - computeResource
    properties:
      id:
        description: >
          Identifier of the Vnfc instance, identifying the applicable
          "vnfcResourceInfo" entry in the "VnfInstance" data type.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      vduId:
        description: >
          Identifier of the related VDU in the VNFD.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnfd"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      vnfdId:
        description: >
          Identifier of the VNFD.
          Shall be present in case of a "change current VNF Package" to identify whether the affected
          VNFC instance is associated to a VDU which is referred from the source or destination VNFD.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      changeType:
        description: >
          Signals the type of change. Permitted values:
          * ADDED
          * REMOVED
          * MODIFIED
          * TEMPORARY
          For a temporary resource, an AffectedVnfc structure exists as long
          as the temporary resource exists.
        type: string
        enum:
          - ADDED
          - REMOVED
          - MODIFIED
          - TEMPORARY
      computeResource:
        description: >
ishaqm's avatar
ishaqm committed
          Reference to the VirtualCompute resource or reference to a Compute MCIO.
          Detailed information is (for new and modified resources) or has been (for removed resources)
          available from the VIM or the CISM.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/ResourceHandle"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      resourceDefinitionId:
        description: >
          The identifier of the "ResourceDefinition" in the granting exchange related to the LCM operation
          occurrence. It shall be present when an applicable GrantInfo for thegranted resource exists. See note.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierLocal"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      zoneId:
        description: >
          The identifier of the resource zone, as managed by the resource management
          layer (typically, the VIM), where the referenced VirtualCompute resource is placed.
          Shall be provided if this information is available from the VIM.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      metadata:
        description: >
          Metadata about this resource.
          The content of this attribute shall be a copy of the content of the
          "metadata" attribute of the VnfcResourceInfo structure.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      affectedVnfcCpIds:
        description: >
          Identifiers of CP(s) of the VNFC instance that were affected by the
          change.
          Shall be present for those affected CPs of the VNFC instance that
          are associated to an external CP of the VNF instance.
          May be present for further affected CPs of the VNFC instance.
        type: array
        items:
          $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      addedStorageResourceIds:
        description: >
          References to VirtualStorage resources that have been added. Each
          value refers to a VirtualStorageResourceInfo item in the