Skip to content
Snippets Groups Projects
SOL002SOL003_def.yaml 35.9 KiB
Newer Older
  • Learn to ignore specific revisions
  • # Copyright (c) ETSI 2017.
    # https://forge.etsi.org/etsi-forge-copyright-notice.txt
    
    definitions:
    
      AffectedVnfc:
        description: >
          This type provides information about added, deleted, modified and
          temporary VNFCs.  
        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: "#/definitions/IdentifierInVnf"
          vduId:
            description: >
              Identifier of the related VDU in the VNFD.
            $ref: "#/definitions/IdentifierInVnfd"
          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: >
              Reference to the VirtualCompute resource. Detailed information is
              (for new and modified resources) or has been (for removed
              resources) available from the VIM.
            $ref: "#/definitions/ResourceHandle"
          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: "#/definitions/KeyValuePairs"
          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: "#/definitions/IdentifierInVnf"
          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: "#/definitions/IdentifierInVnf"
          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: "#/definitions/IdentifierInVnf"
    
    
          This type represents a link to a resource using an absolute URI.
    
          It shall comply with the provisions defined in table  4.4.1.3-1.
    
        type: object
        required:
          - href
        properties:
          href:
            description: >
    
              URI of another resource referenced from a resource.
              Shall be an absolute URI (i.e. a URI that contains {apiRoot}).
    
            $ref: "#/definitions/Uri"
    
      NotificationLink:
        description: >
          This type represents a link to a resource in a notification,
          using an absolute or relative URI. It shall comply with the
          provisions defined in table 4.4.1.3a-1.
        type: object
        required:
          - href
        properties:
          href:
            description: >
              URI of a resource referenced from a notification.
              Should be an absolute URI (i.e. a URI that contains
              {apiRoot}), however, may be a relative URI (i.e. a URI
              where the {apiRoot} part is omitted) if the {apiRoot}
              information is not available.
            $ref: "#/definitions/Uri"
    
    
      Version:
        description: >
          A version.
        type: string
    
      MacAddress:
        description: >
          A MAC address. Representation: string that consists of groups of two hexadecimal digits, separated by hyphens or colons.
        type: string
        format: MAC
    
      IpAddress:
        description: >
          An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal
          integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that 
          consists of groups of zero to four hexadecimal digits, separated by colons.
        type: string
        format: IP
    
    
      CpProtocolData:
        description: >
          This type represents network protocol data. 
        type: object
    
        required:
    
        properties:
    
          layerProtocol:
            description: >
              Identifier of layer(s) and protocol(s).
              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: string
    
              - IP_OVER_ETHERNET
          ipOverEthernet:
            description: >
              Network address data for IP 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/IpOverEthernetAddressData"
    
    
      DateTime:
        description: >
          Date-time stamp. 
          Representation: String formatted according to IETF RFC 3339.
        type: string
    
      ExtLinkPortData:
    
          This type represents an externally provided link port to be used to
          connect an external connection point to an external VL.
    
        required:
    
          - id
          - resourceHandle
    
              Identifier of this link port as provided by the entity that has
              created the link port.
            $ref: "#/definitions/Identifier"
          resourceHandle:
    
              Reference to the virtualised resource realizing this link port.
            $ref: "#/definitions/ResourceHandle"
    
    
      ExtManagedVirtualLinkData:
        type: object
        required:
          - id
          - virtualLinkDescId
          - resourceId
        properties:
          id:
            description: >
    
              The identifier of the externally-managed internal VL instance. The
              identifier is assigned by the NFV-MANO entity that manages this VL
              instance.
    
            $ref: "#/definitions/Identifier"
    
            description: >
              The identifier of the VLD in the VNFD for this VL.
            $ref: "#/definitions/IdentifierInVnfd"
          vimConnectionId:
            description: >
              Identifier of the VIM connection to manage this resource. This
              attribute shall only be supported and present if VNF-related
              resource management in direct mode is applicable.
            $ref: "#/definitions/Identifier"
          resourceProviderId:
            description: >
              Identifies the entity responsible for the management of this
              resource. This attribute shall only be supported and present if
              VNF-related resource management in indirect mode is applicable. The
              identification scheme is outside the scope of the present document.
            $ref: "#/definitions/Identifier"
          resourceId:
            description: >
              The identifier of the resource in the scope of the VIM or the
              resource provider.
            $ref: "#/definitions/IdentifierInVim"
    
      ExtVirtualLinkData:
        description: >
          This type represents an external VL.
        type: object
        required:
          - id
          - resourceId
          - extCps
    
        properties:
          id:
    
              The identifier of the external VL instance. The identifier is
              assigned by the NFV-MANO entity that manages this VL instance.
    
            $ref: "#/definitions/Identifier"
          vimConnectionId:
            description: >
              Identifier of the VIM connection to manage this resource. This
              attribute shall only be supported and present if VNF-related
              resource management in direct mode is applicable.
            $ref: "#/definitions/Identifier"
    
          resourceProviderId:
    
            description: >
              Identifies the entity responsible for the management of this
              resource. This attribute shall only be supported and present
              if VNF-related resource management in indirect mode is applicable.
              The identification scheme is outside the scope of the present
              document.
            $ref: "#/definitions/Identifier"
    
          resourceId:
    
            description: >
              The identifier of the resource in the scope of the VIM or the
              resource provider.
            $ref: "#/definitions/IdentifierInVim"
          extCps:
            description: >
              External CPs of the VNF to be connected to this external VL.
            type: array
    
            items:
    
              $ref: "#/definitions/VnfExtCpData"
    
              Externally provided link ports to be used to connect external
              connection points to this external VL. If this attribute is not
              present, the VNFM shall create the link ports on the external VL. 
            type: array
    
            items:
    
              $ref: "#/definitions/ExtLinkPortData"
    
      GrantedLcmOperationType:
        description: >
          The enumeration GrantedLcmOperationType defines the permitted values 
          to represent VNF lifecycle operation types in grant requests.
          Value | Description
          ------|------------
          INSTANTIATE | Represents the "Instantiate VNF" LCM operation.
          SCALE | Represents the "Scale VNF" LCM operation.
          SCALE_TO_LEVEL | Represents the "Scale VNF to Level" LCM operation.
          CHANGE_FLAVOUR | Represents the "Change VNF Flavour" LCM operation.
          TERMINATE | Represents the "Terminate VNF" LCM operation.
          HEAL | Represents the "Heal VNF" LCM operation.
          OPERATE | Represents the "Operate VNF" LCM operation.
          CHANGE_EXT_CONN | Represents the "Change external VNF connectivity" LCM operation.     
        type: string
        enum:
          - INSTANTIATE
          - SCALE
          - SCALE_TO_LEVEL
          - CHANGE_FLAVOUR
          - TERMINATE
          - HEAL
          - OPERATE
          - CHANGE_EXT_CONN
    
    
      Identifier:
        description: >
          An identifier with the intention of being globally unique.
        type: string
    
    
      IdentifierInVim:
        description: >
          An identifier maintained by the VIM or other resource provider. It is
          expected to be unique within the VIM instance.
        type: string
    
    
      IdentifierInVnf:
        description: >
          An identifier that is unique for the respective type within a VNF
          instance, but may not be globally unique.
        type: string
    
      IdentifierInVnfd:
        description: >
          An identifier that is unique within a VNF descriptor.
        type: string
    
    
      IpOverEthernetAddressData:
        description: >
          This type represents network address data for IP over Ethernet.
        type: object
        properties:
    
          macAddress:
    
            description: >
              MAC address. If this attribute is not present, it shall be chosen by
              the VIM.
              At least one of "macAddress" or "ipAddresses" shall be present.
            $ref: "#/definitions/MacAddress"
          ipAddresses:
            description: >
              List of IP addresses to assign to the CP instance. Each entry
              represents IP address data for fixed or dynamic IP address
              assignment per subnet.
              If this attribute is not present, no IP address shall be assigned.
            type: array
            items:
              type: object
    
              required:
    
              properties:
    
                type:
                  description: >
                    The type of the IP addresses.
                    Permitted values: IPV4, IPV6.
                  type: string
                  enum:
                    - IPV4
                    - IPV6
                fixedAddresses:
                  description: >
                    Fixed addresses to assign (from the subnet defined by
                    "subnetId" if provided).
                    Exactly one of "fixedAddresses", "numDynamicAddresses" or
                    "ipAddressRange" shall be present.
                  type: array
    
                  items:
    
                    $ref: "#/definitions/IpAddress"
                numDynamicAddresses:
                  description: >
                    Number of dynamic addresses to assign (from the subnet defined
                    by "subnetId" if provided).
                    Exactly one of "fixedAddresses", "numDynamicAddresses" or
                    "ipAddressRange" shall be present.
                  type: integer
                addressRange:
                  description: >
                    An IP address range to be used, e.g. in case of egress
                    connections.
                    In case this attribute is present, IP addresses from the range
                    will be used.
                  type: object
                  required:
                    - minAddress
                    - maxAddress
    
                  properties:
    
                    minAddress:
                      description: >
                        Lowest IP address belonging to the range.
                      $ref: "#/definitions/IpAddress"
                    maxAddress:
                      description: >
                        Highest IP address belonging to the range.
                      $ref: "#/definitions/IpAddress"
                subnetId:
                  description: >
                    Subnet defined by the identifier of the subnet resource in the
                    VIM.
                    In case this attribute is present, IP addresses from that
                    subnet will be assigned; otherwise, IP addresses not bound to
                    a subnet will be assigned.
                  $ref: "#/definitions/IdentifierInVim"
    
    
      KeyValuePairs:
        description: >
    
          This type represents a list of key-value pairs. The order of the pairs in the list is not significant.
          In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions 
          defined in clause 4 of IETF RFC 7159. 
    
      LcmOperationType:
        description: >
          Value | Description
          ------|------------
          INSTANTIATE | Represents the "Instantiate VNF" LCM operation.   
          SCALE | Represents the "Scale VNF" LCM operation.
          SCALE_TO_LEVEL | Represents the "Scale VNF to Level" LCM operation.
          CHANGE_FLAVOUR | Represents the "Change VNF Flavour" LCM operation.
          TERMINATE | Represents the "Terminate VNF" LCM operation.
          HEAL | Represents the "Heal VNF" LCM operation.
          OPERATE | Represents the "Operate VNF" LCM operation.
          CHANGE_EXT_CONN | Represents the "Change external VNF connectivity" LCM operation.
          MODIFY_INFO | Represents the "Modify VNF Information" LCM operation.     
        type: string
        enum:
          - INSTANTIATE
          - SCALE
          - SCALE_TO_LEVEL
          - CHANGE_FLAVOUR
          - TERMINATE
          - HEAL
          - OPERATE
          - CHANGE_EXT_CONN
    
          - MODIFY_INFO
    
      ProblemDetails:
        #SOL003 location: 4.3.5.3
        description: >
          The definition of the general "ProblemDetails" data structure from
          IETF RFC 7807 [19] is reproduced inthis structure. Compared to the
          general framework defined in IETF RFC 7807 [19], the "status" and
          "detail" attributes are mandated to be included by the present document,
          to ensure that the response contains additional textual information about
          an error. IETF RFC 7807 [19] foresees extensibility of the
          "ProblemDetails" type. It is possible that particular APIs in the present
          document, or particular implementations, define extensions to define
          additional attributes that provide more information about the error.
          The description column only provides some explanation of the meaning to
          Facilitate understanding of the design. For a full description, see
          IETF RFC 7807 [19].
        type: object
        required:
          - status
          - detail
        properties:
          type:
            description: >
              A URI reference according to IETF RFC 3986 [5] that identifies the
              problem type. It is encouraged that the URI provides human-readable
              documentation for the problem (e.g. using HTML) when dereferenced.
              When this member is not present, its value is assumed to be
              "about:blank".
            type: string
            format: URI
          title:
            description: >
              A short, human-readable summary of the problem type. It should not
              change from occurrence to occurrence of the problem, except for
              purposes of localization. If type is given and other than
              "about:blank", this attribute shall also be provided.
              A short, human-readable summary of the problem
              type.  It SHOULD NOT change from occurrence to occurrence of the
              problem, except for purposes of localization (e.g., using
              proactive content negotiation; see [RFC7231], Section 3.4).
            type: string
          status:
            description: >
              The HTTP status code for this occurrence of the problem.
              The HTTP status code ([RFC7231], Section 6) generated by the origin
              server for this occurrence of the problem.
            type: integer
          detail:
            description: >
              A human-readable explanation specific to this occurrence of the
              problem.
            type: string
          instance:
            description: >
              A URI reference that identifies the specific occurrence of the
              problem. It may yield further information if dereferenced.
            type: string
            format: URI
          #TODO: How to express "any additional attributes"?
    
    
      ResourceHandle:
        required:
          - vimConnectionId
          - resourceId
        type: object
        description: >
          This type represents the information that allows addressing a virtualised
          resource that is used by a VNF instance. Information about the resource
          is available from the VIM.
        properties:
          vimConnectionId:
            description: >
              Identifier of the VIM connection to manage the resource. This
              attribute shall only be supported and present if VNF-related resource
              management in direct mode is applicable. The applicable
              "VimConnectionInfo" structure, which is referenced by
              vimConnectionId, can be obtained from the "vimConnectionInfo"
              attribute of the "VnfInstance" structure.
            $ref: "#/definitions/Identifier"
          resourceProviderId:
            description: >
              Identifier of the entity responsible for the management of the
              resource. This attribute shall only be supported and present when
              VNF-related resource management in indirect mode is applicable. The
              identification scheme is outside the scope of the present document.
            $ref: "#/definitions/Identifier"
          resourceId:
            description: >
              Identifier of the resource in the scope of the VIM or the resource
              provider.
            $ref: "#/definitions/IdentifierInVim"
          vimLevelResourceType:
            description: >
              Type of the resource in the scope of the VIM or the resource
              provider.
            type: string
            #TODO: Note of Table 4.4.1.7-1
    
    
      SubscriptionAuthentication:
        type: object
    
        required:
    
        properties:
    
          authType:
            description: >
    
              Defines the types of Authentication / Authorization which the API
              consumer is willing to accept when receiving a notification.
    
              Permitted values:
    
              * BASIC: In every HTTP request to the notification endpoint, use
                HTTP Basic authentication with the client credentials. 
              * OAUTH2_CLIENT_CREDENTIALS: In every HTTP request to the
                notification endpoint, use an OAuth 2.0 Bearer token, obtained
                using the client credentials grant type.
              * TLS_CERT: Every HTTP request to the notification endpoint is sent
                over a mutually authenticated TLS session, i.e. not only the
                server is authenticated, but also the client is authenticated
                during the TLS tunnel setup.
            type: array
    
            items:
    
              type: string
              enum:
                - BASIC
                - OAUTH2_CLIENT_CREDENTIALS
                - TLS_CERT
    
          paramsBasic:
            description: >
              Parameters for authentication/authorization using BASIC.
              Shall be present if authType is "BASIC" and the contained
              information has not been provisioned out of band.
              Shall be absent otherwise.
            type: object
            properties:
              userName:
                description: >
                  Username to be used in HTTP Basic authentication. Shall be
                  present if it has not been provisioned out of band.
                type: string
              password:
                description: >
                  Password to be used in HTTP Basic authentication. Shall be
                  present if it has not been provisioned out of band.
                type: string
          paramsOauth2ClientCredentials:
            description: >
              Parameters for authentication/authorization using
              OAUTH2_CLIENT_CREDENTIALS.
              Shall be present if authType is "OAUTH2_CLIENT_CREDENTIALS" and the
              contained information has not been provisioned out of band.
              Shall be absent otherwise.
            type: object
            properties:
              clientId:
                description: >
                  Client identifier to be used in the access token request of the
                  OAuth 2.0 client credentials grant type. 
                  Shall be present if it has not been provisioned out of band.
                  The clientId and clientPassword passed in a subscription shall
                  not be the same as the clientId and clientPassword that are used
                  to obtain authorization for API requests. Client credentials may
                  differ between subscriptions. The value of clientPassword should
                  be generated by a random process.
                type: string
              clientPassword:
                description: >
                  Client password to be used in the access token request of the
                  OAuth 2.0 client credentials grant type. 
                  Shall be present if it has not been provisioned out of band.
                  The clientId and clientPassword passed in a subscription shall
                  not be the same as the clientId and clientPassword that are used
                  to obtain authorization for API requests. Client credentials may
                  differ between subscriptions. The value of clientPassword should
                  be generated by a random process.
                type: string
              tokenEndpoint:
                description: >
                  The token endpoint from which the access token can be obtained.
                  Shall be present if it has not been provisioned out of band.
                $ref: "#/definitions/Uri"
    
    
      Uri:
        description: >
          String formatted according to IETF RFC 3986.
        type: string
    
      VimConnectionInfo:
    
        description: >
          This type represents parameters to connect to a VIM for managing the
          resources of a VNF instance.
          This structure is used to convey VIM-related parameters over the Or-Vnfm
          interface. Additional parameters for a VIM may be configured into the
          VNFM by means outside the scope of the present document, and bound to
          the identifier of that VIM.
    
        type: object
        required:
          - id
          - vimType
        properties:
          id:
            description: >
              The identifier of the VIM Connection. This identifier is managed by
              the NFVO.
            $ref: "#/definitions/Identifier"
    
          vimId:
            description: >
              The identifier of the VIM instance. This identifier is managed by
              the NFVO.
              Shall be present to address additional information about the VIM if
              such information has been configured into the VNFM by means outside
              the scope of the present document, and should be absent otherwise.
            $ref: "#/definitions/Identifier"
    
          vimType:
            description: >
              Discriminator for the different types of the VIM information. The
              value of this attribute determines the structure of the
              "interfaceInfo" and "accessInfo" attributes, based on the type of the
              VIM. The set of permitted values is expected to change over time as
              new types or versions of VIMs become available.
    
              The ETSI NFV registry of VIM-related information provides access to
              information about VimConnectionInfo definitions for various VIM
              types. The structure of the registry is defined in Annex C of SOL003.
    
          interfaceInfo:
            description: >
              Information about the interface or interfaces to the VIM, if
              applicable, such as the URI of an interface endpoint to
              communicate with the VIM. The applicable keys are dependent on the
              content of vimType.
              Alternatively, such information may have been configured into the
              VNFM and bound to the vimId.
            $ref: "#/definitions/KeyValuePairs"
          accessInfo:
            description: >
              Authentication credentials for accessing the VIM, and other
              access-related information such as tenants or infrastructure
              resource groups (see note). The applicable keys are dependent on the
              content of vimType.
              If the VimConnectionInfo structure is part of an HTTP response
              payload body, sensitive attributes that are children of this attributes
              (such as passwords) shall not be included.
              If the VimConnectionInfo structure is part of an HTTP request payload
              body, sensitive attributes that are children of this attribute (such
              as passwords) shall be present if they have not been provisioned out
              of band.
            $ref: "#/definitions/KeyValuePairs"
          extra:
            description: >
              VIM type specific additional information. The applicable structure,
              and whether or not this attribute is available, is dependent on the
              content of vimType.
            $ref: "#/definitions/KeyValuePairs"
    
      VnfExtCpConfig:
        description: >
          This type represents an externally provided link port or network address
          information per instance of an external connection point. In case a link
          port is provided, the VNFM shall use that link port when connecting the
          external CP to the external VL. In a link port is not provided, the VNFM
          shall create a link port on the external VL, and use that link port to
          connect the external CP to the external VL.
        type: object
        properties:
          cpInstanceId:
            description: >
              Identifier of the external CP instance to which this set of
              configuration parameters is requested to be applied. 
              Shall be present if this instance has already been created.
            $ref: "#/definitions/IdentifierInVnf"
          linkPortId:
            description: >
              Identifier of a pre-configured link port to which the external CP
              will be associated.
              The following conditions apply to the attributes "linkPortId" and
              "cpProtocolData": 
              * The "linkPortId" and "cpProtocolData" attributes shall both be
                absent for the deletion of an existing external CP instance
                addressed by cpInstanceId. 
              * At least one of these attributes shall be present for a
                to-be-created external CP instance or an existing external
                CP instance.
              * If the "linkPortId" attribute is absent, the VNFM shall create a
                link port.
              * If the "cpProtocolData" attribute is absent, the "linkPortId"
                attribute shall be provided referencing a pre-created link port,
                and the VNFM can use means outside the scope of the present
                document to obtain the pre-configured address information for the
                connection point from the resource representing the link port.
              * If both "cpProtocolData" and "linkportId" are provided, the API
                consumer shall ensure that the cpProtocolData can be used with the
                pre-created link port referenced by "linkPortId".
            $ref: "#/definitions/Identifier"
          cpProtocolData:
            description: >
              Parameters for configuring the network protocols on the link port
              that connects the CP to a VL. 
              The following conditions apply to the attributes "linkPortId" and
              "cpProtocolData": 
              * The "linkPortId" and "cpProtocolData" attributes shall both be
                absent for the deletion of an existing external CP instance
                addressed by cpInstanceId. 
              * At least one of these attributes shall be present for a
                to-be-created external CP instance or an existing external
                CP instance.
              * If the "linkPortId" attribute is absent, the VNFM shall create a
                link port.
              * If the "cpProtocolData" attribute is absent, the "linkPortId"
                attribute shall be provided referencing a pre-created link port,
                and the VNFM can use means outside the scope of the present
                document to obtain the pre-configured address information for the
                connection point from the resource representing the link port.
              * If both "cpProtocolData" and "linkportId" are provided, the API
                consumer shall ensure that the cpProtocolData can be used with the
                pre-created link port referenced by "linkPortId".
            type: array
            items:
              $ref: "#/definitions/CpProtocolData"
    
    
      VnfExtCpData:
        description: >
    
          This type represents configuration information for external CPs created
          from a CPD.
    
        required:
    
        properties:
    
          cpdId:
            description: >
              The identifier of the CPD in the VNFD.
            $ref: "#/definitions/IdentifierInVnfd"
    
              List of instance data that need to be configured on the CP instances
              created from the respective CPD.
    
              $ref: "#/definitions/VnfExtCpConfig"
    
    
      VnfInstanceSubscriptionFilter:
        description: >
          This type represents subscription filter criteria to match VNF
          instances.
        type: object
        properties:
          vnfdIds:
            description: >
              If present, match VNF instances that were created based on a VNFD
              identified by one of the vnfdId values listed in this attribute.
              The attributes "vnfdIds" and "vnfProductsFromProviders" are
              alternatives to reference to VNF instances that are based on certain
              VNFDs in a filter. They should not be used both in the same filter
              instance, but one alternative should be chosen.
            type: array
            items:
              $ref: "#/definitions/Identifier"
          vnfProductsFromProviders:
            description: >
              If present, match VNF instances that belong to VNF products from
              certain providers.
              The attributes "vnfdIds" and "vnfProductsFromProviders" are
              alternatives to reference to VNF instances that are based on certain
              VNFDs in a filter. They should not be used both in the same filter
              instance, but one alternative should be chosen.
            type: array
            items:
              type: object
              required:
                - vnfProvider
              properties:
                vnfProvider:
                  description: >
                    Name of the VNF provider to match.
                  type: string
                vnfProducts:
                  description: >
                    If present, match VNF instances that belong to VNF products
                    with certain product names, from one particular provider.
                  type: array
    
                  items:
    
                    type: object
                    required:
                      - vnfProductName
                    properties:
                      vnfProductName:
                        description: >
                          Name of the VNF product to match.
                        type: string
                      versions:
                        description: >
                          If present, match VNF instances that belong to VNF
                          products with certain versions and a certain product
                          name, from one particular provider.
                        type: array
                        items:
                          type: object
                          required:
    
                            - vnfSoftwareVersion
    
                            vnfSoftwareVersion:
    
                              description: >
                                Software version to match.
                              $ref: "#/definitions/Version"
                            vnfdVersions:
                              description: >
                                If present, match VNF instances that belong to VNF
                                products with certain VNFD versions, a certain
                                software version and a certain product name, from
                                one particular provider.
                              type: array
    
                              items:
    
                                $ref: "#/definitions/Version"
    
          vnfInstanceIds:
            description: >
              If present, match VNF instances with an instance identifier listed
              in this attribute.
              The attributes "vnfInstanceIds" and "vnfInstanceNames" are
              alternatives to reference to particular VNF Instances in a filter.
              They should not be used both in the same filter instance, but one
              alternative should be chosen.
            type: array
    
            items:
    
              $ref: "#/definitions/Identifier"
          vnfInstanceNames:
            description: >
              If present, match VNF instances with a VNF Instance Name listed in
              this attribute.
              The attributes "vnfInstanceIds" and "vnfInstanceNames" are
              alternatives to reference to particular VNF Instances in a filter.
              They should not be used both in the same filter instance, but one
              alternative should be chosen.
            type: array
    
            items:
              type: string
    
      ApiVersionInformation:
        description: >
          This type represents API version information. It shall comply with the
          provisions defined in table 4.4.1.6-1.
        type: object
        required:
          - uriPrefix
          - apiVersions
        properties:
          uriPrefix:
            description: >
              Specifies the URI prefix for the API, in the following
              form {apiRoot}/{apiName}/{apiMajorVersion}/
            type: string
          apiVersions:
            description: >
              Version(s) supported for the API signaled by the
              uriPrefix attribute.
            type: array
            items:
              type: object
                required:
                  - version
                properties:
                  version:
                    description: >
                      Identifies a supported version. The value of the
                      version attribute shall be a version identifier as
                      specified in clause 4.6.1.
                    type: string
                  isDeprecated:
                    description: >
                      If such information is available, this attribute
                      indicates whether use of the version signaled by the
                      version attribute is deprecated (true) or not (false).
                      A deprecated version is still supported by the API producer
                      but is recommended not to be used any longer.
                      When a version is no longer supported, it does not appear in
                      the response body.
                    type: boolean
                  retirementDate:
                    description: >
                      The date and time after which the API version will no
                      longer be supported.
                      This attribute may be included if the value of the
                      isDeprecated attribute is set to true and shall be
                      absent otherwise.
                    $ref: "#/definitions/DateTime"