Skip to content
SOL005NSLifecycleManagement_def.yaml 127 KiB
Newer Older
          Identifier of the monitoring parameter defined in the VNFD.
        $ref: "SOL005_def.yaml#/definitions/IdentifierInVnfd"
      name:
        description: >
          Human readable name of the monitoring parameter, as defined in the VNFD.
        type: string
      value:
        description: >
          Value of the monitoring parameter known to the VNFM (e.g. obtained
          The type of the "value" attribute (i.e. scalar, structure (Object in
          JSON), or array (of scalars, arrays or structures/Objects)) is
          assumed to be defined in an external measurement specification.
        type: object
      timeStamp:
        description: >
          Represents the point in time when the measurement has been performed,
          as known to the VNFM.
          Should be formatted according to ETF RFC 3339.
        type: string

  VnfcResourceInfo:
    description: >
      This type represents the information on virtualised compute and storage
      resources used by a VNFC in a VNF instance.
    type: object
    required:
      - id
      - vduId
      - computeResource
    properties:
      id:
        description: >
          Identifier of this VnfcResourceInfo instance.
        $ref: "SOL005_def.yaml#/definitions/IdentifierInVnf"
      vduId:
        description: >
          Reference to the applicable VDU in the VNFD.
        $ref: "SOL005_def.yaml#/definitions/IdentifierInVnfd"
      computeResource:
        description: >
          Reference to the VirtualCompute resource.
        $ref: "SOL005_def.yaml#/definitions/ResourceHandle"
      storageResourceIds:
        description: >
          References to the VirtualStorage resources. The value refers to a
          VirtualStorageResourceInfo item in the VnfInstance.
        type: array
        items:
          $ref: "SOL005_def.yaml#/definitions/Identifier"
      reservationId:
        description: >
          The reservation identifier applicable to the resource. It shall be
          present when an applicable reservation exists.
        $ref: "SOL005_def.yaml#/definitions/Identifier"
      vnfcCpInfo:
        description: >
          CPs of the VNFC instance.
          Shall be present when that particular CP of the VNFC instance is
          associated to an external CP of the VNF instance.
          May be present otherwise.
        type: array
        items:
          type: object
          required:
            - id
            - cpdId
          properties:
            id:
              description: >
                Identifier of this VNFC CP instance and the associated array
                entry.
              $ref: "SOL005_def.yaml#/definitions/IdentifierInVnf"
            cpdId:
              description: >
                Identifier of the VDU CPD, cpdId, in the VNFD.
              $ref: "SOL005_def.yaml#/definitions/IdentifierInVnfd"
            vnfExtCpId:
              description: >
                When the VNFC CP is exposed as external CP of the VNF, the
                identifier of this external VNF CP.
              $ref: "SOL005_def.yaml#/definitions/IdentifierInVnf"
            cpProtocolInfo:
              description: >
                Network protocol information for this CP.
              type: array
              items:
                $ref: "#/definitions/CpProtocolInfo"
            vnfLinkPortId:
              description: >
                Identifier of the "vnfLinkPorts" structure in the
                "VnfVirtualLinkResourceInfo" structure. Shall be present if
                the CP is associated to a link port.
              $ref: "SOL005_def.yaml#/definitions/IdentifierInVnf"
            metadata:
              description: >
                Metadata about this CP.
              $ref: "SOL005_def.yaml#/definitions/KeyValuePairs"
      metadata:
        description: >
          Metadata about this resource.
        $ref: "SOL005_def.yaml#/definitions/KeyValuePairs"

  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.
    type: object
    required:
      - id
      - vnfVirtualLinkDescId
      - networkResource
    properties:
      id:
        description: >
          Identifier of this VnfVirtualLinkResourceInfo instance.
        $ref: "SOL005_def.yaml#/definitions/IdentifierInVnf"
      vnfVirtualLinkDescId:
        description: >
          Identifier of the VNF Virtual Link Descriptor (VLD) in the VNFD.
        $ref: "SOL005_def.yaml#/definitions/IdentifierInVnfd"
      networkResource:
        description: >
          Reference to the VirtualNetwork resource.
        $ref: "SOL005_def.yaml#/definitions/ResourceHandle"
      reservationId:
        description: >
          The reservation identifier applicable to the resource. It shall be
          present when an applicable reservation exists.
        $ref: "SOL005_def.yaml#/definitions/Identifier"
      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"
      metadata:
        description: >
          Metadata about this resource.
        $ref: "SOL005_def.yaml#/definitions/KeyValuePairs"

  VirtualStorageResourceInfo:
    description: >
      This type represents the information that allows addressing a virtualised
      resource that is used by a VNF instance.
    type: object
    required:
      - id
      - virtualStorageDescId
      - storageResource
    properties:
      id:
        description: >
          Identifier of this VirtualStorageResourceInfo instance.
        $ref: "SOL005_def.yaml#/definitions/IdentifierInVnf"
      virtualStorageDescId:
        description: >
          Identifier of the VirtualStorageDesc in the VNFD.
        $ref: "SOL005_def.yaml#/definitions/IdentifierInVnfd"
      storageResource:
        description: >
          Reference to the VirtualStorage resource.
        $ref: "SOL005_def.yaml#/definitions/ResourceHandle"
      reservationId:
        description: >
          The reservation identifier applicable to the resource. It shall be
          present when an applicable reservation exists.
        $ref: "SOL005_def.yaml#/definitions/Identifier"
      metadata:
        description: >
          Metadata about this resource.
        $ref: "SOL005_def.yaml#/definitions/KeyValuePairs"

    description: >
      This type represents information about a link port of a VL instance.
      It shall comply with the provisions defined in Table 6.5.3.55-1.
    type: object
    required:
      - id
      - resourceHandle
    properties:
      id:
        description: >
          Identifier of this link port as provided by the entity that
          has created the link port.
        $ref: "SOL005_def.yaml#/definitions/Identifier"
      resourceHandle:
        description: >
          Identifier of the virtualised network resource realizing
          this link port.
        $ref: "SOL005_def.yaml#/definitions/ResourceHandle"
      nsCpHandle:
        description: >
          Identifier of the CP/SAP instance to be connected to this
          link port. The value refers to a vnfExtCpInfo item in the
          VnfInstance, or a pnfExtCpInfo item in the PnfInfo, or a
          sapInfo item in the NS instance.
          There shall be at most one link port associated with any
          connection point instance.
        type: array
        items:
          $ref: "#/definitions/NsCpHandle"

  AffinityOrAntiAffinityRule:
    description: >
      This type describes the additional affinity or anti-affinity rule
      applicable between the VNF instances to be instantiated
      in the NS instantiation operation request or between the VNF instances
      to be instantiated in the NS instantiation
      operation request and the existing VNF instances..
    type: object
    required:
      - affinityOrAntiAffiinty
      - scope
    properties:
      vnfdId:
        description: >
          Reference to a VNFD.
          When the VNFD which is not used to instantiate VNF, it
          presents all VNF instances of this type as the subjects
          of the affinity or anti-affinity rule. The VNF instance
          which the VNFD presents is not necessary as a part of
          the NS to be instantiated.
        type: array
        items:
          $ref: "SOL005_def.yaml#/definitions/Identifier"
      vnfProfileId:
        description: >
          Reference to a vnfProfile defined in the NSD.
          At least one VnfProfile which is used to instantiate VNF
          for the NS to be instantiated as the subject of the affinity
          or anti-affinity rule shall be present. When the VnfProfile
          which is not used to instantiate VNF, it presents all VNF
          instances of this type as the subjects of the affinity or
          anti-affinity rule. The VNF instance which the VnfProfile
          presents is not necessary as a part of the NS to be instantiated.
        type: array
        items:
          $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd"
      vnfInstanceId:
        description: >
          Reference to the existing VNF instance as the subject of
          the affinity or anti-affinity rule. The existing VNF instance
          is not necessary as a part of the NS to be instantiated.
        type: array
        items:
          $ref: "SOL005_def.yaml#/definitions/Identifier"
      affinityOrAntiAffiinty:
        description: >
          The type of the constraint.
          Permitted values:
          AFFINITY
          ANTI_AFFINITY.
        type: string
        enum:
          - AFFINITY
          - ANTI_AFFINITY
      scope:
        description: >
          Specifies the scope of the rule where the placement
          constraint applies.
          Permitted values:
          NFVI_POP
          ZONE
          ZONE_GROUP
          NFVI_NODE.
        type: string
        enum:
          - NFVI_POP
          - ZONE
          - ZONE_GROUP
          - NFVI_NODE

  InstantiateNsRequest:
    type: object
    required:
    properties:
      nsFlavourId:
        description: >
          Identifier of the NS deployment flavor to be instantiated.
        $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd"
      sapData:
        description: >
          Create data concerning the SAPs of this NS.
      addpnfData:
        description: >
          Information on the PNF(s) that are part of this NS.
        type: array
      vnfInstanceData:
        description: >
          Specify an existing VNF instance to be used in the NS.
          If needed, the VNF Profile to be used for this VNF
          instance is also provided.
          The DF of the VNF instance shall match the VNF DF 
          present in the associated VNF Profile.
          $ref: "#/definitions/VnfInstanceData"
        description: >
          Specify an existing NS instance to be used as a nested
          NS within the NS.
          If needed, the NS Profile to be used for this nested NS 
          instance is also provided.
          NOTE 2: The NS DF of each nested NS shall be one of the 
          allowed flavours in the associated NSD (as referenced in the
          nestedNsd attribute of the NSD of the NS to be instantiated).
          NOTE 3: The NSD of each referenced NSs (i.e. each 
          nestedInstanceId) shall match the one of the nested NSD in 
          the composite NSD.
          $ref: "#/definitions/NestedNsInstanceData"
      localizationLanguage:
        description: >
          Defines the location constraints for the VNF to be
          instantiated as part of the NS instantiation.
          An example can be a constraint for the VNF to be in a
          specific geographic location..
        type: array
        items:
          $ref: "#/definitions/VnfLocationConstraint"
      additionalParamsForNs:
        description: >
          Allows the OSS/BSS to provide additional parameter(s)
          at the composite NS level (as opposed to the VNF level, 
          which is covered in additionalParamsForVnf), and as 
          opposed to the nested NS level, which is covered in
          additionalParamForNestedNs.
        $ref: "SOL005_def.yaml#/definitions/KeyValuePairs"
        description: >
          Allows the OSS/BSS to provide additional parameter(s)
          per nested NS instance (as opposed to the composite NS
          level, which is covered in additionalParamForNs, and as
          opposed to the VNF level, which is covered in
          additionalParamForVnf). This is for nested NS instances
          that are to be created by the NFVO as part of the NS
          instantiation and not for existing nested NS instances that
          are referenced for reuse.
        type: array
        items:
          $ref: "#/definitions/ParamsForNestedNs"
      additionalParamsForVnf:
        description: >
          Allows the OSS/BSS to provide additional parameter(s)
          per VNF instance (as opposed to the composite NS level, 
          which is covered in additionalParamsForNs and as opposed 
          to the nested NS level, which is covered in 
          additionalParamForNestedNs). This is for VNFs that are 
          to be created by the NFVO as part of the NS instantiation 
          and not for existing VNF that are referenced for reuse.
      startTime:
        description: >
          Timestamp indicating the earliest time to instantiate the NS. 
          Cardinality "0" indicates the NS instantiation takes place immediately.
        $ref: "SOL005_def.yaml#/definitions/DateTime"
      nsInstantiationLevelId:
        description: >
          Identifies one of the NS instantiation levels declared in
          the DF applicable to this NS instance. If not present, the
          default NS instantiation level as declared in the NSD
          shall be used.
        $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd"
      additionalAffinityOrAntiAffinityRule:
          Specifies additional affinity or anti-affinity constraint for
          the VNF instances to be instantiated as part of the NS
          instantiation.
          Shall not conflict with rules already specified in the NSD.
          $ref: "#/definitions/AffinityOrAntiAffinityRule"

  ParamsForVnf:
    description: >
      This type defines the additional parameters for the VNF instance
      to be created associated with an NS instance.
      It shall comply with the provisions defined in Table 6.5.3.22-1.
    type: object
    required:
      - vnfProfileId
    properties:
      vnfProfileId:
        description: >
          Identifier of (reference to) a vnfProfile to which the
          additional parameters apply.
        $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd"
      additionalParams:
        description: >
          Additional parameters that are applied for the VNF
          instance to be created.
        $ref: "SOL005_def.yaml#/definitions/KeyValuePairs"

  LocationConstraints:
    description: >
      This type represents location constraints for a VNF to be instantiated.
      The location constraints shall be presented as a
      country code, optionally followed by a civic address based on
      the format defined by IETF RFC 4776 [13].
    type: object
    required:
      - countryCode
    properties:
      countryCode:
        description: >
          The two-letter ISO 3166 [29] country code in capital letters.
        type: string
      civicAddressElement:
        description: >
          Zero or more elements comprising the civic address.
        type: array
        items:
          type: object
          required:
            - caType
            - caValue
          properties:
            caType:
              description: >
                Describe the content type of caValue. The value of
                caType shall comply with Section 3.4 of IETF
                RFC 4776 [13].
              type: integer
            caValue:
              description: >
                Content of civic address element corresponding to the
                caType. The format caValue shall comply with
                Section 3.4 of IETF RFC 4776 [13].
              type: string

  VnfLocationConstraint:
    description: >
      This type represents the association of location constraints to a VNF instance
      to be created according to a specific VNF profile.
      It shall comply with the provisions defined in Table 6.5.3.20-1.
    type: object
    required:
      - vnfProfileId
    properties:
      vnfProfileId:
        description: >
          Identifier of (reference to) a vnfProfile to which the
          additional parameters apply.
        $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd"
      locationConstraints:
        description: >
          Defines the location constraints for the VNF instance to
          be created based on the VNF profile.
        $ref: "#/definitions/LocationConstraints"
    description: >
      This type specifies an existing VNF instance to be used in the NS instance and
      if needed, the VNF Profile to use for this VNF instance.
      It shall comply with the provisions defined in Table 6.5.3.19-1.
    type: object
    required:
      - vnfInstanceId
      - vnfProfileId
    properties:
      vnfInstanceId:
        description: >
          Identifier of the existing VNF instance to be used in the NS.
        $ref: "SOL005_def.yaml#/definitions/Identifier"
      vnfProfileId:
        description: >
          Identifier of (Reference to) a vnfProfile defined in the
          NSD which the existing VNF instance shall be matched
          with. If not present, the NFVO will select the VnfProfile
          matching the information in the VNF instance.
        $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd"

  NestedNsInstanceData:
    description: >
      This type specifies an existing nested NS instance to be used in the NS instance 
      and if needed, the NsProfile to use for this nested NS instance. 
      It shall comply with the provisions defined in Table 6.5.3.19a-1.
    type: object
    required:
      - nestedNsInstanceId
    properties:
      nestedNsInstanceId: 
        description: >
          Identifier of the existing nested NS instance to be used in the NS.
        $ref: "SOL005_def.yaml#/definitions/Identifier"
      nsProfileId:
        description: >
          Identifier of an NsProfile defined in the NSD which the existing 
          nested NS instance shall be matched with.
          If not present, the NFVO will select the NsProfile matching the 
          information in the nested NS instance.
        $ref: "SOL005_def.yaml#/definitions/IdentifierInNs"

    description: >
      This type represents the information related to a SAP of a NS.
      It shall comply with the provisions defined in Table 6.5.3.10-1.
    type: object
    required:
      - sapdId
      - sapName
      - description
    properties:
      sapdId:
        description: >
          Reference to the SAPD for this SAP.
        $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd"
      sapName:
        description: >
          Human readable name for the SAP.
        type: string
      description:
        description: >
          Human readable description for the SAP.
        type: string
      sapProtocolData:
        description: >
          Parameters for configuring the network protocols on the SAP.
        type: array
        items:
          $ref: "SOL005_def.yaml#/definitions/CpProtocolData"
      This type represents a request for the scale NS operation.
    type: object
    required:
          Indicates the type of scaling to be performed.
          Possible values:
          - SCALE_NS
          - SCALE_VNF
        type: string
        enum:
          - SCALE_NS
          - SCALE_VNF
      scaleNsData:
        description: >
          The necessary information to scale the referenced NS instance.
          It shall be present when scaleType = SCALE_NS.
        $ref: "#/definitions/ScaleNsData"
      scaleVnfData:
        description: >
          The necessary information to scale the referenced NS instance.
          It shall be present when scaleType = SCALE_VNF.
        type: array
        items:
          $ref: "#/definitions/ScaleVnfData"
      scaleTime:
        description: >
          Timestamp indicating the scale time of the NS, i.e. the
          NS will be scaled at this timestamp. Cardinality "0"
          indicates the NS scaling takes place immediately".
        $ref: "SOL005_def.yaml#/definitions/DateTime"

  UpdateNsRequest:
    description: >
      This operation supports the update of a NS instance, 
      It shall comply with the provisions defined in Table 6.5.2.12-1.
    type: object
    required:
      - updateType
    properties:
      updateType:
        description: >
          The type of update. It determines also which one of the
          following parameters is present in the operation.
          Possible values include:
          * ADD_VNF: Adding existing VNF instance(s)
          * REMOVE_VNF: Removing VNF instance(s)
          * INSTANTIATE_VNF: Instantiating new VNF(s)
          * CHANGE_VNF_DF: Changing VNF DF
          * OPERATE_VNF: Changing VNF state,
          * MODIFY_VNF_INFORMATION: Modifying
          VNF information and/or the configurable
          properties of VNF instance(s)
          * CHANGE_EXTERNAL_VNF_CONNECTIVITY:
          Changing the external connectivity of VNF
          instance(s)ADD_SAP: Adding SAP(s)
          * REMOVE_SAP: Removing SAP(s)
          * ADD_NESTED_NS: Adding existing NS
          instance(s) as nested NS(s)
          * REMOVE_NESTED_NS: Removing existing
          nested NS instance(s)
          * ASSOC_NEW_NSD_VERSION: Associating a
          new NSD version to the NS instance
          * MOVE_VNF: Moving VNF instance(s) from one
          origin NS instance to another target NS
          instance
          * ADD_VNFFG: Adding VNFFG(s)
          * REMOVE_VNFFG: Removing VNFFG(s)
          * UPDATE_VNFFG: Updating VNFFG(s)
          * CHANGE_NS_DF: Changing NS DF
          * ADD_PNF: Adding PNF
          * MODIFY_PNF: Modifying PNF
          * REMOVE_PNF: Removing PNF
        type: string
          - ADD_VNF
          - REMOVE_VNF
          - INSTANTIATE_VNF
          - CHANGE_VNF_DF
          - OPERATE_VNF
          - MODIFY_VNF_INFORMATION
          - CHANGE_EXTERNAL_VNF_CONNECTIVITY
          - REMOVE_SAP
          - ADD_NESTED_NS
          - REMOVE_NESTED_NS
          - ASSOC_NEW_NSD_VERSION
          - MOVE_VNF
          - ADD_VNFFG
          - REMOVE_VNFFG
          - UPDATE_VNFFG
          - CHANGE_NS_DF
          - ADD_PNF
          - MODIFY_PNF
          - REMOVE_PNF
      addVnfIstance:
        description: >
          Identifies an existing VNF instance to be added to the
          NS instance. It shall be present only if updateType = "ADD_VNF".         
        type: array
          $ref: "#/definitions/VnfInstanceData"
      removeVnfInstanceId:
        description: >
          Identifies an existing VNF instance to be removed from
          the NS instance. It contains the identifier(s) of the VNF
          instances to be removed. It shall be present only if
          updateType = "REMOVE_VNF." Note: If a VNF instance
          is removed from a NS and this NS was the last one for
          which this VNF instance was a part, the VNF instance is
          terminated by the NFVO.
        type: array
        items:
          $ref: "SOL005_def.yaml#/definitions/Identifier"
      instantiateVnfData:
        description: >
          Identifies the new VNF to be instantiated. It can be used
          e.g. for the bottom-up NS creation. It shall be present
          only if updateType = "INSTANTIATE_VNF".
        type: array
        items:
          $ref: "#/definitions/InstantiateVnfData"
      changeVnfFlavourData:
        description: >
          Identifies the new DF of the VNF instance to be
          changed to. It shall be present only if updateType = "CHANGE_VNF_DF".
        type: array
        items:
          $ref: "#/definitions/ChangeVnfFlavourData"
      operateVnfData:
        description: >
          Identifies the state of the VNF instance to be changed. 
          It shall be present only if updateType = "OPERATE_VNF".
        type: array
      modifyVnfInfoData:
        description: >
          Identifies the VNF information parameters and/or the
          configurable properties of VNF instance to be modified.
          It shall be present only if updateType = "MODIFY_VNF_INFORMATION".
        type: array
          $ref: "#/definitions/ModifyVnfInfoData"
      changeExtVnfConnectivityData:
        description: >
          Specifies the new external connectivity data of the VNF
          instance to be changed. It shall be present only if
          updateType = "CHANGE_EXTERNAL_VNF_CONNECTIVITY".
        type: array
        items:
          $ref: "#/definitions/ChangeExtVnfConnectivityData"
      addSap:
        description: >
          Identifies a new SAP to be added to the NS instance.
          It shall be present only if updateType = "ADD_SAP."
        type: array
      removeSapId:
        description: >
          The identifier an existing SAP to be removed from the
          NS instance. It shall be present only if updateType = "REMOVE_SAP."
        type: array
          $ref: "SOL005_def.yaml#/definitions/Identifier"
        description: >
          The identifier of an existing nested NS instance to be
          added to (nested within) the NS instance. It shall be
          present only if updateType = "ADD_NESTED_NS".
        type: array
          $ref: "#/definitions/NestedNsInstanceData"
      removeNestedNsId:
        description: >
          The identifier of an existing nested NS instance to be
          removed from the NS instance. It shall be present only if
          updateType = "REMOVE_NESTED_NS".
        type: array
        items:
          $ref: "SOL005_def.yaml#/definitions/IdentifierInNs"
      assocNewNsdVersionData:
        description: >
          Specify the new NSD to be used for the NS instance. It
          shall be present only if updateType =
          ASSOC_NEW_NSD_VERSION".
        $ref: "#/definitions/AssocNewNsdVersionData"
      moveVnfInstanceData:
        description: >
          Specify existing VNF instance to be moved from one NS
          instance to another NS instance. It shall be present only
          if updateType = MOVE_VNF".
        type: array
        items:
          $ref: "#/definitions/MoveVnfInstanceData"
      addVnffg:
        description: >
          Specify the new VNFFG to be created to the NS
          Instance. It shall be present only if updateType =
          "ADD_VNFFG".
        type: array
      removeVnffgId:
        description: >
          Identifier of an existing VNFFG to be removed from the
          NS Instance. It shall be present only if updateType =
          "REMOVE_VNFFG".
        type: array
          $ref: "SOL005_def.yaml#/definitions/Identifier"
      updateVnffg:
        description: >
          Specify the new VNFFG Information data to be updated
          for a VNFFG of the NS Instance. It shall be present only
          if updateType = "UPDATE_VNFFG".
        type: array
        items:
          $ref: "#/definitions/UpdateVnffgData"
      changeNsFlavourData:
        description: >
          Specifies the new DF to be applied to the NS instance. It
          shall be present only if updateType =
          "CHANGE_NS_DF".
        $ref: "#/definitions/ChangeNsFlavourData"
      addPnfData:
        description: >
          specifies the PNF to be added into the NS instance. 
          It shall be present only if updateType = "ADD_PNF".
        type: array
      modifyPnfData:
        description: >
          Specifies the PNF to be modified in the NS instance. 
          It shall be present only if updateType = "MODIFY_PNF".
        type: array
      removePnfId:
        description: >
          Identifier of the PNF to be deleted from the NS instance.
          It shall be present only if updateType = "REMOVE_PNF".
        type: array
        items:
          $ref: "SOL005_def.yaml#/definitions/Identifier"
      updateTime:
        description: >
          Timestamp indicating the update time of the NS, i.e. the
          NS will be updated at this timestamp. Cardinality "0"
          indicates the NS update takes place immediately.
        $ref: "SOL005_def.yaml#/definitions/DateTime"
  InstantiateVnfData:
    description: >
      This type represents the information related to a SAP of a NS. The InstantiateVnfData data type specifies the
      parameters that are needed for VNF instantiation. This information element is used for the bottom-up NS creation when
      the OSS/BSS explicitly requests VNF instantiation for a given NS. When the NFVO invokes the Instantiate VNF
      update operation, a set of these parameters are then passed by the NFVO to the VNFM. It shall comply with the
      provisions defined in Table 6.5.3.24-1.
    type: object
    required:
      - vnfdId
    properties:
      vnfdId:
        description: >
          Information sufficient to identify the VNFD which defines
          the VNF to be instantiated.
        $ref: "SOL005_def.yaml#/definitions/Identifier"
      vnfFlavourId:
        description: >
          Identifier of the VNF deployment flavor to be instantiated.
        $ref: "SOL005_def.yaml#/definitions/IdentifierInVnfd"
      vnfInstantiationLevelId:
        description: >
          Identifier of the instantiation level of the deployment
          flavor to be instantiated. If not present, the default
          instantiation level as declared in the VNFD is
          instantiated.
        $ref: "SOL005_def.yaml#/definitions/IdentifierInVnfd"
      vnfInstanceName:
        description: >
          Human-readable name of the VNF instance to be created.
        type: string
      vnfInstanceDescription:
        description: >
          Human-readable description of the VNF instance to be created.
        type: string
      extVirtualLinks:
        description: >
          Information about external VLs to connect the VNF to.
        type: array
          $ref: "SOL005_def.yaml#/definitions/ExtVirtualLinkData"
      extManagedVirtualLinks:
        description: >
          Information about internal VLs that are managed by other entities than the VNFM.
        type: array
        items:
          $ref: "SOL005_def.yaml#/definitions/ExtManagedVirtualLinkData"
      localizationLanguage:
        description: >
          Localization language of the VNF to be instantiated.
          The value shall comply with the format defined in IETF RFC 5646 [16].
        type: string
      additionalParams:
        description: >
          Additional input parameters for the instantiation process,
          specific to the VNF being instantiated.
        $ref: "SOL005_def.yaml#/definitions/KeyValuePairs"

  ChangeVnfFlavourData:
    description: >
      The type represents the information that is requested to be changed
      deployment flavor for an existing VNF instance.
      It shall comply with the provisions defined in Table 6.5.3.25-1.
    type: object
    required:
      - vnfInstanceId
      - newFlavourId
    properties:
      vnfInstanceId:
        description: >
          Identifier of the VNF instance to be modified.
        $ref: "SOL005_def.yaml#/definitions/Identifier"
      newFlavourId:
        description: >
          Identifier of the VNF deployment flavor to be instantiated.
        $ref: "SOL005_def.yaml#/definitions/IdentifierInVnfd"
      instantiationLevelId:
        description: >
          Identifier of the instantiation level of the deployment
          flavor to be instantiated. If not present, the default
          instantiation level as declared in the VNFD is
          instantiated.
        $ref: "SOL005_def.yaml#/definitions/IdentifierInVnfd"
      extVirtualLinks:
        description: >
          Information about external VLs to connect the VNF to.
        type: array
        items:
          $ref: "SOL005_def.yaml#/definitions/ExtVirtualLinkData"
      extManagedVirtualLinks:
        description: >
          information about internal VLs that are managed by NFVO.
        type: array
        items:
          $ref: "SOL005_def.yaml#/definitions/ExtManagedVirtualLinkData"
      additionalParams:
        description: >
          Additional input parameters for the flavor change
          process, specific to the VNF being modified, as declared
          in the VNFD as part of "ChangeVnfFlavourOpConfig".
        $ref: "SOL005_def.yaml#/definitions/KeyValuePairs"

  OperateVnfData:
    description: >
      This type represents a VNF instance for which the operational state 
      needs to be changed and the requested new state. It
      shall comply with the provisions defined in Table 6.5.3.31-1.
    type: object
    required:
      - vnfInstanceId
      - changeStateTo
    properties:
      vnfInstanceId:
        description: >
          Identifier of the VNF instance.
        $ref: "SOL005_def.yaml#/definitions/Identifier"
      changeStateTo:
        description: >
          The desired operational state (i.e. started or stopped)
          to change the VNF to.
        $ref: "#/definitions/OperationalStates"
      stopType:
        description: >
          It signals whether forceful or graceful stop is requested.           
        $ref: "#/definitions/StopType"
      gracefulStopTimeout:
        description: >
          The time interval (in seconds) to wait for the VNF to be
          taken out of service during graceful stop, before
          stopping the VNF.
        type: integer

  OperationalStates:
    description: >
      STARTED - The VNF instance is up and running.
      STOPPED - The VNF instance has been shut down.
    type: string
    enum:
      - STARTED
      - STOPPED
  StopType:
    description: >
      * FORCEFUL: The VNFM will stop the VNF immediately after accepting the
        request.
      * GRACEFUL: The VNFM will first arrange to take the VNF out of service
        after accepting the request. Once that operation is successful or once
        the timer value specified in the "gracefulStopTimeout" attribute
        expires, the VNFM will stop the VNF.
    type: string
    enum:
      - FORCEFUL
      - GRACEFUL

  ModifyVnfInfoData:
    description: >
      This type represents the information that is requested to be modified for a VNF instance. The information to be
      modified shall comply with the associated NSD.
      EXAMPLE. The vnfPkgId attribute value for a particular VNF instance can only be updated with a value that
      matches the identifier value of a VNF package whose vnfdId is present in the associated profile of the NSD.
    type: object
    required:
      - vnfInstanceId
    properties:
      vnfInstanceId:
        description: >
          Identifier of the VNF instance.
        $ref: "SOL005_def.yaml#/definitions/Identifier"
      vnfInstanceName:
        description: >
          New value of the "vnfInstanceName" attribute in
          "VnfInstance", or "null" to remove the attribute.
        type: string
      vnfInstanceDescription:
        description: >
          New value of the "vnfInstanceDescription" attribute in "VnfInstance",
          or "null" to remove the attribute.
        type: string
      vnfPkgId:
        description: >
          New value of the "vnfPkgId" attribute in "VnfInstance".
          The value "null" is not permitted
        $ref: "SOL005_def.yaml#/definitions/Identifier"
      vnfConfigurableProperties:
        description: >
          Modifications to entries in the
          "vnfConfigurableProperties" list, as defined below this Table.
        $ref: "SOL005_def.yaml#/definitions/KeyValuePairs"
      Metadata:
        description: >
          Modifications to entries in the "metadata" list, as
          defined below this Table.
        $ref: "SOL005_def.yaml#/definitions/KeyValuePairs"
      Extensions:
        description: >
          Modifications to entries in the "extensions" list, as
          defined below this Table.
        $ref: "SOL005_def.yaml#/definitions/KeyValuePairs"

  ChangeExtVnfConnectivityData:
    description: >
      This type describes the information invoked by the NFVO to change the external VNF connectivity information
      maintained by the VNFM. The types of changes that this operation supports are:
      1) Disconnect the external CPs that are connected to a particular external VL, and connect them to a different
      external VL.
      2) Change the connectivity parameters of the existing external CPs, including changing addresses.
      NOTE: Depending on the capabilities of the underlying VIM resources, certain changes (e.g. modifying the IP
      address assignment) might not be supported without deleting the resource and creating another one with