SOL003VNFLifecycleManagement_def.yaml 224 KB
Newer Older
          link:
            description: A link to this end point.
            $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
        description: Supported protocols by CMF instance.
        type: array
        items:
          $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/SupportedProtocol"
      certificateChain:
        description: Certificate chain that this CMF provides.
        type: array
        items:
          $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"

  AffectedCertificate:
    description: >
      This type provides input information about added, deleted, and modified certificate contents.
    type: object
    required:
      - certificateInfoId
      - changeType
    properties:
      certificateInfoId:
        description: Identifier of certificate information.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
      certificateBaseProfileId:
        description: Identifier of certificate base profile.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
      securityPolicyId:
        description: Identifier of security policy.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
      cmfInfoId:
        description: Identifier of CMF information.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
      certificateContentId:
        description: Identifier of certificate content.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
      changeType:
        description: Signals the type of change.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/ChangeType"

  PaasServiceInfo:
    description: >
      This type provides input information about a PaaS Service that is used by
      a VNF instance. The PaasServiceInfo is comprised of various sets of
      information. Some information comes from the VNFD, other information comes
      from the PaaS Service assets provided by the NFVO to the VNFM, and other
      information is provided at runtime information about the usage of the PaaS
    type: object
    required:
      - id
      - paasServiceId
      - paasServiceType
      - paasServiceRequestId
      - paasServiceHandle
    properties:
      id:
        description: Identifier of this PaaS Service Information.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
      paasServiceId:
        description: Identifier of the assigned PaaS Service as managed by the PaaS Services Management (PSM) function.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
      paasServiceType:
        description: The type of PaaS Service. The value of this attribute is expected to be matched against values of the registered PaaS Services in the PSR.
        type: string
      paasServiceVersion:
        description: Version of the PaaS Service. It shall be present if the PaaS Service is versioned.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Version"
      paasServiceRequestId:
        description: Identifier of the PaaS Service request in the VNFD that maps to the assigned PaaS Service.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnfd"
      paasServiceHandle:
        description: A handle enabling the access and use of the PaaS Service by the VNF instance.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/PaasServiceHandle"
      additionalInfo:
        description: Additional information which is specific to the PaaS Service, its type, and which is available from the PaaS Service instance.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"

  CertificateInfo:
    description: >
      This type provides input information related to certificate and certificate management.
    type: object
    required:
      - id
    properties:
      id:
        description: Identifier of this certificate information.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
      certificateConfigurationInfo:
        description: >
          Configuration for certificate management such as certificate profile
          and security policy.
        $ref: "#/definitions/CertificateConfigurationInfo"
      certificateContents:
        description: >
          Information for contents of issued certificates. The information
          contained in this attribute may be updated over time during the VNF
          LCM, e.g., certificate(s) renewal.
        type: array
        items:
          $ref: "#/definitions/CertificateContent"

  CertificateConfigurationInfo:
    description: >
      This type provides input information related to certificate management.
    type: object
    properties:
      certificateBaseProfile:
        description: Information for certificate profile.
        type: array
        items:
          $ref: "#/definitions/CertificateBaseProfile"
      securityPolicy:
        description: Information for security policy to be satisfied for certificate.
        type: array
        items:
          $ref: "#/definitions/SecurityPolicy"
      delegationSupportedCertificateManagements:
        description: Describes supported certificate management information.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
      cmfInfo:
        description: Information for CMF.
        $ref: "#/definitions/CmfInfo"

  CertificateContent:
    description: >
      This type provides input information related to certificate content.
      
      NOTE: The CertificateDesc data type is defined in clause 7.1.19.2 of ETSI GS NFV IFA 011 [10].
    type: object
    required:
      - id
      - certificateDescId
      - certificateType
    properties:
      id:
        description: Identifier of this certificate.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
      certificateDescId:
        description: >
          Identifier of certificate description in VNFD to be used to issue
          this certificate. See note.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnfd"
      certificateType:
        description: Type of this certificate.
        type: string
        enum:
          - VNFCI_CERT
          - VNFOAM_CERT
      supportedCertificateManagements:
        description: Describes supported certificate management information.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
      version:
        description: Version of this certificate.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Version"
      serialNumber:
        description: Serial number of this certificate.
        type: integer
      signatureAlgorithm:
        description: Algorithm of this certificate's signature.
        type: string
      issuer:
        description: Issuer of this certificate.
        type: string
      notBefore:
        description: Start date of the valid period for this certificate.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/DateTime"
      notAfter:
        description: End date of the valid period for this certificate.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/DateTime"
      subject:
        description: Subject of this certificate.
        type: string
      publicKeyAlgorithm:
        description: Algorithm of this certificate's public key.
        type: string
      publicKey:
        description: Public key of this certificate.
        type: string
      certificateExtensions:
        description: Extension of this certificate.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"

    description: >
      This type represents request parameters for the "Create VNF identifier" operation.
    type: object
    required:
      - vnfdId
    properties:
      vnfdId:
        description: >
          Identifier that identifies the VNFD which defines the VNF instance to
          be created.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
      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
      metadata:
        description: >
          If present, this attribute provides additional initial values, overriding those obtained from the VNFD, for
          the "metadata" attribute in "VnfInstance", as defined in clause 5.5.2.2. Provisions for handling metadata
          during the operation are defined in clause 5.4.2.3.1.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
      certificateConfigurationData:
        description: >
          Configuration for certificate management such as certificate profile, information of CMF and security policy 
          in this VNF. It shall be present when using delegation  mode, otherwise it shall be absent.
          This attribute shall be supported when delegation mode of certificate management is applicable.
        $ref: "#/definitions/CertificateConfigurationData"
      This type represents request parameters for the "Scale VNF" operation.
    type: object
    required:
      - type
    properties:
      type:
        description: >
          Indicates the type of the scale operation requested.
          Permitted values:
          * SCALE_OUT: adding additional VNFC instances to the VNF to increase
            capacity
          * SCALE_IN: removing VNFC instances from the VNF in order to release
            unused capacity.
Muhammad Umair Khan's avatar
Muhammad Umair Khan committed
          * SCALE_VERTICAL: increasing or decreasing the resource capacity of all instances of one or multiple VNFCs.
        type: string
        enum:
          - SCALE_OUT
          - SCALE_IN
Muhammad Umair Khan's avatar
Muhammad Umair Khan committed
          - SCALE_VERTICAL
Muhammad Umair Khan's avatar
Muhammad Umair Khan committed
          Identifier of the scaling aspect. It shall be present when ‘type’ indicates SCALE_OUT or SCALE_IN and absent otherwise.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnfd"
      numberOfSteps:
        description: >
          Number of scaling steps to be executed as part of this Scale VNF
          operation. It shall be a positive number and the default value
          shall be 1.
        type: integer
        default: 1
Muhammad Umair Khan's avatar
Muhammad Umair Khan committed
      resourceCapacityDefinition:
        description: >
          Indicates values for resource capacity related attributes pertaining to a descriptor. 
          The indicated values are absolute (target) values, as opposed to relative (delta) values. 
          Values can only be provided for resource capacity related attributes that have been defined 
          in the VNFD as being configurable. Furthermore, provided values shall be within the allowed 
          values indicated in the VNFD. It shall be present when 'type' indicates SCALE_VERTICAL and 
          absent otherwise.
        type: array
        items:
          $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/ResourceCapacityDefinition"
      additionalParams:
        description: >
          Additional parameters passed by the NFVO as input to the scaling
          process, specific to the VNF being scaled, as declared in the VNFD
          as part of "ScaleVnfOpConfig" defined in ETSI GS NFV-IFA 011 [10].
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"

  ScaleVnfToLevelRequest:
    description: >
      This type represents request parameters for the "Scale VNF to Level" operation.
      NOTE 1:	Either the instantiationLevelId attribute or the scaleInfo attribute shall 
              be included.
      NOTE 2: If the referenced instantiationLevel or the scaleInfo attribute contain information related to VNFCs that are not 
              going to be instantiated due to the selection of deployable modules, the information is stored in the VNFM for 
              later use and included in the instantiatedVnfInfo. If, during the lifecycle of the VNF, as a result of a change of 
              the selected deployable modules any of those VNFCs is going to be instantiated, the stored information 
              determines the number of instances, unless the request that triggered the change also contains information 
              about the number of instances
    type: object
    anyOf:
      - oneOf:
          - required:
              - instantiationLevelId
          - required:
              - scaleInfo
    properties:
      instantiationLevelId:
        description: >
          Identifier of the target instantiation level of the current
          deployment flavour to which the VNF is requested to be scaled.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnfd"
      scaleInfo:
        description: >
          For each scaling aspect of the current deployment flavour, indicates
          the target scale level to which the VNF is to be scaled.
          $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/ScaleInfo"
      additionalParams:
        description: >
          Additional parameters passed by the NFVO as input to the scaling
          process, specific to the VNF being scaled, as declared in the
          VNFD as part of "ScaleVnfToLevelOpConfig" defined in ETSI GS NFV-IFA 011 [10].
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"

  CancelMode:
    description: >
      This type represents a parameter to select the mode of cancelling an
      ongoing VNF LCM operation occurrence.
    type: object
    required:
      - cancelMode
    properties:
      cancelMode:
        description: >
          Cancellation mode to apply.
        $ref: "#/definitions/CancelModeType"

  LccnSubscriptionRequest:
    description: >
      This type represents a subscription request related to notifications
      about VNF lifecycle changes.
    type: object
    required:
      - callbackUri
    properties:
      filter:
        description: >
          Filter settings for this subscription, to define the subset of all
          notifications this subscription relates to. A particular
          notification is sent to the subscriber if the filter matches, or if
          there is no filter.
        $ref: "#/definitions/LifecycleChangeNotificationsFilter"
      callbackUri:
        description: >
          The URI of the endpoint to send the notification to.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Uri"
      authentication:
        description: >
          Authentication parameters to configure the use of Authorization when
          sending notifications corresponding to this subscription, as defined
          in clause 8.3.4 of ETSI GS NFV-SOL 013.
          This attribute shall only be present if the subscriber requires
          authorization of notifications.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/SubscriptionAuthentication"
      verbosity:
        description: >
          This attribute signals the requested verbosity of LCM operation occurrence notifications. If it is not present,
          it shall default to the value "FULL".
        $ref: "#/definitions/LcmOpOccNotificationVerbosityType"

  LccnSubscription:
    description: >
      This type represents a subscription related to notifications about VNF
      lifecycle changes.
    type: object
    required:
      - id
      - callbackUri
      - verbosity
      - _links
    properties:
      id:
        description: >
          Identifier of this subscription resource.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
      filter:
        description: >
          Filter settings for this subscription, to define the subset of all
          notifications this subscription relates to. A particular
          notification is sent to the subscriber if the filter matches, or if
          there is no filter.
        $ref: "#/definitions/LifecycleChangeNotificationsFilter"
      callbackUri:
        description: >
          The URI of the endpoint to send the notification to.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Uri"
      verbosity:
        description: >
          This attribute signals the verbosity of LCM operation occurrence notifications.
        $ref: "#/definitions/LcmOpOccNotificationVerbosityType"
      _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"
      This type represents information about an external VL.

      NOTE:	This attribute reflects the current configuration information that has resulted from merging into this attribute 
            the "VnfExtCpData" information which was passed as part of the "ExtVirtualLinkData" structure in the input of the 
            most recent VNF LCM operation such as "InstantiateVnfRequest", "ChangeExtVnfConnectivityRequest", "ChangeVnfFlavourRequest" 
            or "ChangeCurrentVnfPkgRequest", or in the Grant response. If applying such change results in an empty list of 
            "currentVnfExtCpData" structure instances, the affected instance of "ExtVirtualLinkInfo" shall be removed from its 
            parent data structure.
    type: object
    required:
      - id
      - resourceHandle
      - currentVnfExtCpData
    properties:
      id:
        description: >
          Identifier of the external VL and the related external 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"
      resourceHandle:
        description: >
          Reference to the resource realizing this VL.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/ResourceHandle"
      extLinkPorts:
        description: >
          Link ports of this VL.
        type: array
        items:
          $ref: "#/definitions/ExtLinkPortInfo"
      currentVnfExtCpData:
        description: >
          Allows the API consumer to read the current CP configuration information for the connection of external CPs 
          to the external virtual link. See note.
        type: array
        items:
          $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/VnfExtCpData"
      extNetAttDefResource:
        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"

  VnfLinkPortInfo:
    description: >
      This type represents a link port of an internal VL of a VNF.

      NOTE 1: Either cpInstanceId with cpInstanceType set to "EXT_CP" or any combination of cpInstanceId
              with cpInstanceType set to "VNFC_CP" and vipCpInstanceId (i.e. one or both of them) shall be 
              present for a VnfLinkPortInfo. In case both cpInstanceId with cpInstanceType set to "VNFC_CP" 
              and vipCpInstanceId are present, the two different CP instances share the linkport.
      NOTE 2: Annex A.4 of ETSI GS NFV-IFA 007 provides examples for configurations where both vipCpInstanceId
              and vnfcCpInstanceId are present (UC#5 and UC#5-b), only vnfcCpInstanceId is present (UC#2), or 
              only vipCpInstanceId is present (UC6 and UC#6-b).
      NOTE 3: The value of "trunkResourceId" is scoped by the value of "vimConnectionId" in the "resourceHandle"
              attribute.
    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: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
      resourceHandle:
        description: >
          Reference to the virtualised resource realizing this link
          port.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/ResourceHandle"
      cpInstanceId:
        description: >
          When the link port is used for external connectivity by the VNF, this attribute represents the 
          identifier of the external CP associated with this link port.
          
          When the link port is used for internal connectivity in the VNF, this attribute represents the 
          identifier of the VNFC CP to be connected to this link port.
          
          Shall be present when the link port is used for external connectivity by the VNF.
          May be present if used to reference a VNFC CP instance.
          There shall be at most one link port associated with any external connection point instance or 
          internal connection point (i.e. VNFC CP) instance.
          The value refers to an "extCpInfo" item in the VnfInstance or a "vnfcCpInfo" item of a "vnfcResourceInfo" 
          item in the VnfInstance. See note 1.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
      cpInstanceType:
        description: >
          Type of the CP instance that is identified by cpInstanceId. 
          Shall be present if "cpInstanceId" is present and shall be absent otherwise.
          
          Permitted values:
          - VNFC_CP: The link port is connected to a VNFC CP.
          -	EXT_CP: The link port is associated to an external CP.
          See note 1.
        type: string
        enum:
          - VNFC_CP
          - EXT_CP
      vipCpInstanceId:
        description: >
          VIP CP instance of the VNF connected to this link port. May be present. 
          See notes 1, and 2.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
      trunkResourceId:
        description: >
          Identifier of the trunk resource in the VIM.
          Shall be present if the present link port corresponds to the parent port that the trunk resource is associated with. 
          See note 3.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVim"

  ExtLinkPortInfo:
    description: >
      This type represents information about a link port of an external VL, i.e. a port providing connectivity for the VNF to 

      NOTE 1:	The use cases UC#4 and UC#5 in clause A.4 of ETSI GS NFV-IFA 007 provide examples for such a configuration.
      NOTE 2:	The value of "trunkResourceId" is scoped by the value of "vimConnectionId" in the "resourceHandle" attribute.
    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: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
      resourceHandle:
        description: >
          Reference to the virtualised resource realizing this link
          port.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/ResourceHandle"
      cpInstanceId:
        description: >
          Identifier of the external CP of the VNF connected to this link
          port. There shall be at most one link port associated with any
          external connection point instance. The value refers to an
          "extCpInfo" item in the VnfInstance.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
      secondaryCpInstanceId:
        description: >
          Additional external CP of the VNF connected to this link port.
          If present, this attribute shall refer to a "secondary" ExtCpInfo item in the VNF instance that exposes a virtual 
          IP CP instance which shares this linkport with the external CP instance referenced by the "cpInstanceId" attribute. 
          See note 1.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
      trunkResourceId:
        description: >
          Identifier of the trunk resource in the VIM.
          Shall be present if the present link port corresponds to the parent port that the trunk resource is associated with. 
          See note 2.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVim"
      This type describes the protocol layer(s) that a CP uses together with protocol-related information, like addresses.

      NOTE:	This attribute allows to signal the addition of further types of layer and protocol in future versions of the 
            present document in a backwards-compatible way. In the current version of the present document, only IP over 
            Ethernet is supported.
    type: object
    required:
      - layerProtocol
    properties:
      layerProtocol:
        description: >
          The identifier of layer(s) and protocol(s) associated to the network address information.
          
          Permitted values:
            - IP_OVER_ETHERNET
            - IP_FOR_VIRTUAL_CP
          See note.
        type: string
        enum:
          - IP_OVER_ETHERNET
          - IP_FOR_VIRTUAL_CP
      ipOverEthernet:
        description: >
          IP addresses over Ethernet to assign to the extCP instance. Shall be
          present if layerProtocol is equal to " IP_OVER_ETHERNET", and shall
          be absent otherwise.
        $ref: "#/definitions/IpOverEthernetAddressInfo"
      virtualCpAddress:
        description: >
          IP address data assigned to an external CP instance exposing a virtual CP. It shall be present if
          layerProtocol is equal to “IP_FOR_VIRTUAL_CP” and the external CP instance exposes a virtual CP and
          shall not be present otherwise.  
        $ref: "#/definitions/VirtualCpAddressInfo"

  IpOverEthernetAddressInfo:
    description: >
      This type represents information about a network address that has been assigned.

      NOTE 1:	At least one of "macAddress" or "ipAddresses" shall be present.
      NOTE 2:	Exactly one of "addresses" or "addressRange" shall be present.
      NOTE 3:	If the Cp instance represents a subport in a trunk, segmentationId shall be present. 
              Otherwise it shall not be present.
      NOTE 4:	Depending on the NFVI networking infrastructure, the segmentationId may indicate the 
              actual network segment value (e.g. vlan Id, Vxlan segmentation id, etc.) used in the 
              transport header of the packets or it may be an identifier used between the application 
              and the NFVI networking infrastructure to identify the network sub-interface of the trunk 
              port in question. In the latter case the NFVI infrastructure will map this local segmentationId 
              to whatever segmentationId is actually used by the NFVI's transport technology.
    type: object
    anyOf:
      - required:
          - macAddress
      - required:
          - ipAddresses
    properties:
      macAddress:
        description: >
          MAC address, if assigned. See note 1.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/MacAddress"
      segmentationId:
        description: >
          Identification of the network segment to which the Cp instance connects to. See notes 3 and 4.
        type: string
      ipAddresses:
        description: >
          Addresses assigned to the CP instance. Each entry represents IP addresses assigned by fixed or 
          dynamic IP address assignment per subnet. See note 1.
        type: array
        items:
          type: object
          required:
            - type
          oneOf:
            - required:
              - addresses
            - required:
              - addressRange
          properties:
            type:
              description: >
                The type of the IP addresses.
                Permitted values: IPV4, IPV6.
              type: string
              enum:
                - IPV4
                - IPV6
            addresses:
              description: >
                Fixed addresses assigned (from the subnet defined by "subnetId" if provided). See note 2.
              type: array
              items:
                $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IpAddress"
            isDynamic:
              description: >
                Indicates whether this set of addresses was assigned
                dynamically (true) or based on address information provided as
                input from the API consumer (false). Shall be present if
                "addresses" is present and shall be absent otherwise.
              type: boolean
            addressRange:
              description: >
                An IP address range used, e.g. in case of egress connections. See note 2.
              type: object
              required:
                - minAddress
                - maxAddress
              properties:
                minAddress:
                  description: >
                    Lowest IP address belonging to the range.
                  $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IpAddress"
                maxAddress:
                  description: >
                    Highest IP address belonging to the range
                  $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IpAddress"
            subnetId:
              description: >
                Subnet defined by the identifier of the subnet resource in
                the VIM.
                In case this attribute is present, IP addresses are bound
                to that subnet.
              $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVim"
Muhammad Umair Khan's avatar
Muhammad Umair Khan committed
    description: >
      This type represents a monitoring parameter that is tracked by the VNFM,
    type: object
    required:
      - id
      - performanceMetric
    properties:
      id:
        description: >
          Identifier of the monitoring parameter defined in the VNFD.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnfd"
      vnfdId:
        description: >
          Identifier of the VNFD.
          Shall be present in case the value differs from the vnfdId attribute of the VnfInstance (e.g. during a "Change
          current VNF package" operation or due to its final failure).
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
      name:
        description: >
          Human readable name of the monitoring parameter, as defined in the
          VNFD.
        type: string
      performanceMetric:
        description: >
          Performance metric that is monitored. This attribute shall contain the
          related "Measurement Name" value as defined in clause 7.2 of ETSI GS NFV-IFA 027.
        type: string

  LifecycleChangeNotificationsFilter:
    description: >
      This type represents a subscription filter related to notifications about VNF lifecycle changes.

      At a particular nesting level in the filter structure, the following applies: All attributes shall 
      match in order for the filter to match (logical "and" between different filter attributes). 
      If an attribute is an array, the attribute shall match if at least one of the values in the array 
      matches (logical "or" between the values of one filter attribute).

      NOTE:	The permitted values of the "notificationTypes" attribute are spelled exactly as the names of 
            the notification types to facilitate automated code generation systems.
    type: object
    properties:
      vnfInstanceSubscriptionFilter:
        description: >
          Filter criteria to select VNF instances about which to notify.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/VnfInstanceSubscriptionFilter"
      notificationTypes:
        description: >
          Match particular notification types. 
          
          Permitted values:
          -	VnfLcmOperationOccurrenceNotification
          -	VnfIdentifierCreationNotification
          -	VnfIdentifierDeletionNotification
          See note.
        type: array
        items:
          type: string
          enum:
            - VnfLcmOperationOccurrenceNotification
            - VnfIdentifierCreationNotification
            - VnfIdentifierDeletionNotification
      operationTypes:
        description: >
          Match particular VNF lifecycle operation types for the notification
          of type VnfLcmOperationOccurrenceNotification.
          May be present if the "notificationTypes" attribute contains the
          value "VnfLcmOperationOccurrenceNotification", and shall be absent
          otherwise.
        type: array
        items:
          $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/LcmOperationType"
      operationStates:
        description: >
          Match particular LCM operation state values as reported in
          notifications of type VnfLcmOperationOccurrenceNotification.
          May be present if the "notificationTypes" attribute contains the
          value "VnfLcmOperationOccurrenceNotification", and shall be absent
          otherwise.
        type: array
        items:
          $ref: "#/definitions/LcmOperationStateType"

  LccnLinks:
    description: >
      This type represents the links to resources that a notification can
      contain.
    type: object
    required:
      - vnfInstance
      - subscription
    properties:
      vnfInstance:
        description: >
          Link to the resource representing the VNF instance to which the
          notified change applies.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/NotificationLink"
      subscription:
        description: >
          Link to the related subscription.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/NotificationLink"
      vnfLcmOpOcc:
        description: >
          Link to the VNF lifecycle management operation occurrence that this
          notification is related to. Shall be present if there is a related
          lifecycle operation occurrence.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/NotificationLink"
      This type represents information about an external CP of a VNF.

      NOTE 1:	The attributes "associatedVnfcCpId", "associatedVipCpId", "associatedVirtualCpId" and 
              "associatedVnfVirtualLinkId" are mutually exclusive. Exactly one shall be present.
      NOTE 2:	An external CP instance is not associated to a link port in the cases indicated for the 
              “extLinkPorts” attribute in clause 4.4.1.11.
      NOTE 3: Cardinality greater than 1 is only applicable for specific cases where more than one network 
              attachment definition resource is needed to fulfil the connectivity requirements of the external 
              CP, e.g. to build a link redundant mated pair in SR-IOV cases.
      NOTE 4: When more than one netAttDefResourceId is indicated, all shall belong to the same namespace.
    type: object
    required:
      - id
      - cpdId
      - cpConfigId
      - cpProtocolInfo
    oneOf:
      - required:
          - associatedVnfcCpId
      - required:
          - associatedVipCpId
      - required:
          - associatedVnfVirtualLinkId
    properties:
      id:
        description: >
          Identifier of the external CP instance and the related information instance.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
      cpdId:
        description: >
          Identifier of the external CPD, VnfExtCpd, in the VNFD.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnfd"
      cpConfigId:
        description: >
          Identifier that references the applied "VnfExtCpConfig" entry in the "cpConfig" map of the "currentVnfExtCpData"
          in the "ExtVirtualLinkInfo" structure.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
      vnfdId:
        description: >
          Identifier of the VNFD.
          Shall be present in case the value differs from the vnfdId attribute of the VnfInstance (e.g. during a "Change
          current VNF package" operation or due to its final failure).
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
      cpProtocolInfo:
        description: >
          Network protocol information for this CP.
        type: array
        items:
          $ref: "#/definitions/CpProtocolInfo"
      extLinkPortId:
        description: >
          Identifier of the "ExtLinkPortInfo" structure inside the "ExtVirtualLinkInfo" structure. 
          Shall be present if the CP is associated to a link port. See note 2.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
      metadata:
        description: >
          Metadata about this external CP.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
      associatedVnfcCpId:
        description: >
          Identifier of the "vnfcCpInfo" structure in "VnfcResourceInfo" structure that represents the VNFC CP 
          which is exposed by this external CP instance, either directly or via a floating IP address. 
          Shall be present in case this CP instance maps to a VNFC CP. See note 1.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
      associatedVipCpId:
        description: >
          Identifier of the VIP CP instance that is exposed as this VnfExtCp instance, either directly or via a 
          floating IP address, and the related "VipCpInfo" structure in "VnfInstance". Shall be present if the 
          cpdId of this VnfExtCp has a vipCpd attribute. See note 1.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
      associatedVirtualCpId:
        description: >
          Identifier of the "VirtualCpInfo" structure that represents the Virtual CP that is exposed by this
          external CP instance. Shall be present in case this CP instance maps to a Virtual CP. See note 1.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
      associatedVnfVirtualLinkId:
        description: >
          Identifier of the "VnfVirtualLinkResourceInfo" structure that represents the internal VL or of the 
          "ExtManagedVirtualLinkInfo" structure that represents the externally-managed internal VL which is 
          exposed by this external CP instance. Shall be present in case this CP instance maps to an internal 
          VL (including externally-managed internal VL). See note 1. 
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
        description: >
          Identifier of the “NetAttDefResourceInfo” structure that provides the specification of the interface to attach the
          connection point to a secondary container cluster network. See notes 3 and 4.
          It shall be present if the external CP is associated to a VNFC realized by one or a set of OS containers and
          is connected to a secondary container cluster network. It shall not be present otherwise.
        type: array
        items:
          $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
      certificateContentId:
        description: >
          Identifier of the "CertificateContent" structure that provides the information of the certificate that this 
          VNF CP instance uses. Shall be present when using in delegation-mode. Otherwise shall not be present.
          This attribute shall be supported when delegation mode in certificate management is applicable.
        $ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
  VnfOperationalStateType:
    description: >
      STARTED: The VNF instance is up and running.
      STOPPED: The VNF instance has been shut down.
    type: string
    enum:
      - STARTED
      - STOPPED

  LcmOperationStateType:
    description: >
      STARTING: The LCM operation is starting.
      PROCESSING: The LCM operation is currently in execution.
      COMPLETED: The LCM operation has been completed successfully.
      FAILED_TEMP: The LCM operation has failed and execution has stopped,
      but the execution of the operation is not considered to be closed.
      FAILED: The LCM operation has failed and it cannot be retried or rolled back,
      as it is determined that such action won't succeed.
      ROLLING_BACK: The LCM operation is currently being rolled back.
      ROLLED_BACK: The LCM operation has been successfully rolled back,
      i.e. The state of the VNF prior to the original operation invocation has been restored as closely as possible.
    type: string
    enum:
      - STARTING
      - PROCESSING
      - COMPLETED
      - FAILED_TEMP
      - FAILED
      - ROLLING_BACK
      - ROLLED_BACK

  CancelModeType:
    description: >
      Cancellation mode.
      GRACEFUL: If the VNF LCM operation occurrence is in "PROCESSING" or
      "ROLLING_BACK" state, the VNFM shall not start any new resource
      management operation and shall wait for the ongoing resource management
      operations in the underlying system, typically the VIM, to finish
      execution or to time out. After that, the VNFM shall put the operation
      occurrence into the FAILED_TEMP state.
      If the VNF LCM operation occurrence is in "STARTING" state, the VNFM
      shall not start any resource management operation and shall wait for
      the granting request to finish execution or time out. After that, the
      VNFM shall put the operation occurrence into the ROLLED_BACK state.
      FORCEFUL: If the VNF LCM operation occurrence is in "PROCESSING" or
      "ROLLING_BACK" state, the VNFM shall not start any new resource
      management operation, shall cancel the ongoing resource management
      operations in the underlying system, typically the VIM, and shall wait
      for the cancellation to finish or to time out. After that, the VNFM
      shall put the operation occurrence into the FAILED_TEMP state.
      If the VNF LCM operation occurrence is in "STARTING" state, the VNFM
      shall not start any resource management operation and put the operation
      occurrence into the ROLLED_BACK state.
    type: string
    enum:
      - GRACEFUL
      - FORCEFUL

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

  VnfIdentifierDeletionNotification:
    description: >
      This type represents a VNF identifier deletion notification, which
      informs the receiver of the deletion of a new "Individual VNF instance" resource and
      the associated VNF instance identifier.
      This notification shall be triggered by the VNFM when it has deleted an
      "Individual VNF instance" resource and the associated VNF instance identifier.
    type: object