SOL003VNFLifecycleManagement_def.yaml 191 KB
Newer Older
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"
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.
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.
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"
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

  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
          VnfInstance that was added to the VNFC. It shall be provided if at
          least one storage resource was added to the VNFC.
        type: array
        items:
          $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      removedStorageResourceIds:
        description: >
          References to VirtualStorage resources that have been removed.
          The value contains the identifier of a VirtualStorageResourceInfo
          item that has been removed from the VNFC, and might no longer exist
          in the VnfInstance.
          It shall be provided if at least one storage resource was removed
          from the VNFC.
        type: array
        items:
          $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
Francesca Moscatelli's avatar
Francesca Moscatelli committed

  VnfLcmOpOcc:
    description: >
      This type represents a VNF lifecycle management operation occurrence.

      NOTE 1:	This allows the NFVO to obtain the information contained in the latest 
              "result" notification if it has not received it due to an error or a 
              wrongly configured subscription filter.
      NOTE 2:	Not more than one of changedInfo and modificationsTriggeredByVnfPkgChange 
              shall be present.
      NOTE 3:	For a particular affected VL, there shall be as many "AffectedVirtualLink" 
              entries as needed for signalling the different types of changes, i.e. one 
              per virtual link and change type. For instance, in the case of signaling 
              affected VL instances involving the addition of a particular VL instance 
              with links ports, one "AffectedVirtualLink" entry signals the addition of 
              the VL by using the "changeType" attribute of "AffectedVirtualLink" structure 
              equal to "ADDED", and another "AffectedVirtualLink" entry signals the addition 
              of externally visible VNF link ports of the VL by using the "changeType" equal 
              to "LINK_PORT_ADDED".
      NOTE 4:	A coordination action has timed out if the VNFM has not been able to read the 
              "Individual coordination action" resource within a timeout interval after requesting 
              the coordination to be started or to be cancelled. The length of the timeout interval 
              is defined by means outside the scope of the present document.
      NOTE 5:   The list of rejected coordinations may be garbage collected if the LCM operation
              occurrence has reached a terminal state, i.e. one of "COMPLETED", "FAILED" and "ROLLED_BACK".
Francesca Moscatelli's avatar
Francesca Moscatelli committed
    type: object
    oneOf:
      - required:
          - changedInfo
      - required:
          - modificationsTriggeredByVnfPkgChange
    required:
      - id
      - operationState
      - stateEnteredTime
      - startTime
      - vnfInstanceId
      - operation
      - isAutomaticInvocation
      - isCancelPending
    properties:
      id:
        description: >
          Identifier of this VNF lifecycle management operation occurrence.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      operationState:
        description: >
          The state of the LCM operation.
        $ref: "#/definitions/LcmOperationStateType"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      stateEnteredTime:
        description: >
          Date-time when the current state has been entered.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/DateTime"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      startTime:
        description: >
          Date-time of the start of the operation.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/DateTime"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      vnfInstanceId:
        description: >
          Identifier of the VNF instance to which the operation applies
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      grantId:
        description: >
          Identifier of the grant related to this VNF LCM operation
          occurrence. Shall be set to the value of the "id" attribute
          in the "Grant" representing the associated "Individual Grant",
          if such grant exists.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      operation:
        description: >
          Type of the actual LCM operation represented by this VNF LCM
          operation occurrence.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/LcmOperationType"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      isAutomaticInvocation:
        description: >
          Set to true if this VNF LCM operation occurrence has been triggered
          by an automated procedure inside the VNFM (i.e.
          ScaleVnf / ScaleVnfToLevel triggered by auto-scale, or HealVnf
          triggered by auto-heal). Set to false otherwise.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Boolean"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      operationParams:
        description: >
          Input parameters of the LCM operation. This attribute shall be
          formatted according to the request data type of the related LCM
          operation. In addition, the provisions in clause 5.7 shall apply. 
          
          The following mapping between operationType and the
Francesca Moscatelli's avatar
Francesca Moscatelli committed
          data type of this attribute shall apply:
          * INSTANTIATE: InstantiateVnfRequest
          * SCALE: ScaleVnfRequest
          * SCALE_TO_LEVEL: ScaleVnfToLevelRequest
          * CHANGE_FLAVOUR: ChangeVnfFlavourRequest
          * OPERATE: OperateVnfRequest
          * HEAL: HealVnfRequest
          * CHANGE_EXT_CONN: ChangeExtVnfConnectivityRequest
          * TERMINATE: TerminateVnfRequest
          * MODIFY_INFO: VnfInfoModifications
          * CREATE_SNAPSHOT: CreateVnfSnapshotRequest
          * REVERT_TO_SNAPSHOT: RevertToVnfSnapshotRequest
          * CHANGE_VNFPKG: ChangeCurrentVnfPkgRequest
        type: object
      isCancelPending:
        description: >
          If the VNF LCM operation occurrence is in "STARTING", "PROCESSING"
          or "ROLLING_BACK" state and the operation is being cancelled, this
          attribute shall be set to true. Otherwise, it shall be set to false.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Boolean"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      cancelMode:
        description: >
          The mode of an ongoing cancellation. Shall be present when
          isCancelPending=true, and shall be absent otherwise.
        $ref: "#/definitions/CancelModeType"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      error:
        description: >
          If "operationState" is "FAILED_TEMP" or "FAILED" or "operationState"
          is "PROCESSING" or "ROLLING_BACK" and previous value of
          "operationState" was "FAILED_TEMP", this attribute shall be present
          and contain error information, unless it has been requested to be
          excluded via an attribute selector.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/ProblemDetails"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      resourceChanges:
        description: >
          This attribute contains information about the cumulative changes to
          virtualised resources that were performed so far by the LCM
          operation since its start, if applicable.
        type: object
        properties:
          affectedVnfcs:
            description: >
              Information about VNFC instances that were affected during the lifecycle operation. 
              See note 1.
Francesca Moscatelli's avatar
Francesca Moscatelli committed
            type: array
            items:
              $ref: "#/definitions/AffectedVnfc"
          affectedVirtualLinks:
            description: >
              Information about VL instances that were affected during the lifecycle operation. 
              See notes 1 and 3.
Francesca Moscatelli's avatar
Francesca Moscatelli committed
            type: array
            items:
              $ref: "#/definitions/AffectedVirtualLink"
          affectedExtLinkPorts:
            description: >
              Information about external VNF link ports that were affected during the lifecycle operation. 
              See note 1.
Francesca Moscatelli's avatar
Francesca Moscatelli committed
            type: array
            items:
              $ref: "#/definitions/AffectedExtLinkPort"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
          affectedVirtualStorages:
            description: >
              Information about virtualised storage instances that were affected during the lifecycle operation. 
              See note 1.
Francesca Moscatelli's avatar
Francesca Moscatelli committed
            type: array
            items:
              $ref: "#/definitions/AffectedVirtualStorage"
      changedInfo:
        description: >
          Information about the changed VNF instance information, including VNF configurable properties, 
          if applicable. See note 1 and note 2.
        $ref: "#/definitions/VnfInfoModifications"
      affectedVipCps:
        description: >
          Information about virtual IP CP instances that were affected during
          the execution of the lifecycle management operation.
        type: array
        items:
          $ref: "#/definitions/AffectedVipCp"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      changedExtConnectivity:
        description: >
          Information about changed external connectivity, if applicable. See note 1.
Francesca Moscatelli's avatar
Francesca Moscatelli committed
        type: array
        items:
          $ref: "#/definitions/ExtVirtualLinkInfo"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      modificationsTriggeredByVnfPkgChange:
        description: >
          Information about performed changes of "VnfInstance" attributes triggered by changing the current VNF package, 
          if applicable. Shall be absent if the "operation" attribute is different from "CHANGE_VNFPKG". 
          See notes 1 and 2.
        $ref: "#/definitions/ModificationsTriggeredByVnfPkgChange"
Francesca Moscatelli's avatar
Francesca Moscatelli committed
      vnfSnapshotInfoId:
        description: >
          Identifier of the "individual VNF snapshot" resource. Shall be present if applicable to the type of LCM operation,
          i.e., if the value of the "operation" attribute is either "CREATE_SNAPSHOT" or "REVERT_TO_SNAPSHOT".
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
      lcmCoordinations:
        description: >
          Information about LCM coordination actions (see clause 10 in ETSI GS NFV-SOL002) related to this LCM operation occurrence.
        type: array
        items:
          type: object
          required:
            - id
            - coordinationActionName
            - startTime
            - endpointType
          properties:
            id:
              description: >
                Identifier of this coordination action.
              $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
            coordinationActionName:
              description: >
                Indicator of the actual coordination action.
              $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
                The result of executing the coordination action which also implies the action to be performed by the VNFM as 
                the result of this coordination. 
                
                Shall be present if the coordination has been finished. Shall be absent if the coordination is ongoing or has 
                timed out (see note 4).
              $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/LcmCoordResultType"
                The time when the VNFM has received the confirmation that the coordination action has been started.
              $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/DateTime"