Commit 10c7b548 authored by moscatelli's avatar moscatelli
Browse files

SOL003: VNF Package management datatypes consolidation

parent b1b0c3e3
Loading
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -1098,6 +1098,8 @@ paths:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
        409:
          description: >
            409 CONFLICT

            Shall be returned upon the following error: The operation cannot
            be executed currently, due to a conflict with the state of the resource.
            Typically, this is due to the fact that "onboardingState" of the
@@ -1268,6 +1270,8 @@ paths:
            $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
          409:
            description: >
              409 CONFLICT

              Shall be returned upon the following error: The operation cannot
              be executed currently, due to a conflict with the state of the resource.
              Typically, this is due to the fact that "onboardingState" of the
+227 −255
Original line number Diff line number Diff line
@@ -2,24 +2,6 @@
# https://forge.etsi.org/etsi-forge-copyright-notice.txt

definitions:
  Checksum:
    description: >
      This type represents the checksum of a VNF package or an artifact file.
    type: object
    required:
      - algorithm
      - hash
    properties:
      algorithm:
        description: >
          Name of the algorithm used to generate the checksum, as defined in
          ETSI GS NFV-SOL 004. For example, SHA-256, SHA-512.
        type: string
      hash:
        description: >
          The hexadecimal value of the checksum.
        type: string

  VnfPkgInfo:
    description: >
      This type represents the information of an VNF package.
@@ -137,190 +119,33 @@ definitions:
              Link to the "VNF package content" resource.
            $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"

  PackageOnboardingStateType:
    description: >
      CREATED: The "Individual VNF package" resource has been created.
      UPLOADING: The associated VNF package content is being uploaded.
      PROCESSING: The associated VNF package content is being processed, e.g.,
        validation.
      ONBOARDED: The associated VNF package content has been successfully
        on-boarded.
    type: string
    enum:
      - CREATED
      - UPLOADING
      - PROCESSING
      - ONBOARDED

  PackageOperationalStateType:
    description: >
      - ENABLED: The VNF package is enabled, i.e. it can be used for
        instantiation of new VNF instances.
      - DISABLED: The VNF package is disabled, i.e. it cannot be used for
        further VNF instantiation requests (unless and until the VNF package
        is re-enabled).
    type: string
    enum:
      - ENABLED
      - DISABLED

  PackageUsageStateType:
    description: >
      - IN_USE: VNF instances instantiated from this VNF package exist.
      - NOT_IN_USE: No existing VNF instance is instantiated from this VNF
        package.

  PkgmNotificationsFilter:
    description: >
      This type represents a subscription filter related to notifications
      related to VNF package management.
      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).
    type: object
    properties:
      notificationTypes:
        description: >
          Match particular notification types.
          Permitted values:
          - VnfPackageOnboardingNotification
          - VnfPackageChangeNotification
          The permitted values of the "notificationTypes" attribute are
          spelled exactly as the names of the notification types to
          facilitate automated code generation systems.
        type: array
        items:
          type: string
          enum:
            - VnfPackageOnboardingNotification
            - VnfPackageChangeNotification
      vnfProductsFromProviders:
        description: >
          If present, match VNF packages that contain VNF products from
          certain providers.
          The attributes "vnfProductsFromProviders", "vnfdId" and "vnfPkgId"
          are alternatives to reference to particular VNF packages 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 packages that contain 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:
  PkgmSubscriptionRequest:
    description: >
                      If present, match VNF packages that contain VNF products
                      with certain versions and a certain product name, from
                      one particular provider.
                    type: array
                    items:
      This type represents a subscription request related to VNF package
      management notifications about VNF package on-boarding or changes.
    type: object
    required:
                        - vnfSoftwareVersion
      - callbackUri
    properties:
                        vnfSoftwareVersion:
                          description: >
                            VNF software version to match. 
                          $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Version"
                        vnfdVersions:
                          description: >
                            If present, match VNF packages that contain VNF
                            products with certain VNFD versions, a certain
                            software version and a certain product name, from
                            one particular provider.
                          type: array
                          items:
                            $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Version"
      vnfdId:
        description: >
          Match VNF packages with a VNFD identifier listed in the attribute.
          The attributes "vnfProductsFromProviders", "vnfdId" and "vnfPkgId"
          are alternatives to reference to particular VNF packages 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/SOL002SOL003_def.yaml#/definitions/Identifier"
      vnfPkgId:
        description: >
          Match VNF packages with a package identifier listed in the
          attribute.
          May be present if the "notificationTypes" attribute contains the
          value "VnfPackageChangeNotification", and shall be absent
          otherwise.
          The attributes "vnfProductsFromProviders", "vnfdId" and "vnfPkgId"
          are alternatives to reference to particular VNF packages 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/SOL002SOL003_def.yaml#/definitions/Identifier"
      operationalState:
      filter:
        description: >
          Match particular operational state of the VNF package.
          May be present if the "notificationTypes" attribute contains the
          value "VnfPackageChangeNotification", and shall be absent
          otherwise.
        $ref: "#/definitions/PackageOperationalStateType"
      usageState:
          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/PkgmNotificationsFilter"
      callbackUri:
        description: >
          Match particular usage state of the VNF package.
          May be present if the "notificationTypes" attribute contains the
          value "VnfPackageChangeNotification", and shall be absent
          otherwise.
        $ref: "#/definitions/PackageUsageStateType"

  PkgmLinks:
          The URI of the endpoint to send the notification to.
        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Uri"
      authentication:
        description: >
      This type represents the links to resources that a VNF package
      management notification can contain.
    type: object
    required:
      - vnfPackage
      - subscription
    properties:
      vnfPackage:
        description: >
          Link to the resource representing the VNF package to which the
          notified change applies, i.e. the individual on-boarded VNF package
          resource that represents the VNF package, identified by the "vnfPkgId"
          identifier which is managed by the NFVO. This attribute shall be provided
          by the NFVO but is deprecated and can be removed in future versions
          of the present document.
        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/NotificationLink"
      vnfPackageByVnfdId:
        description: >
          Link to the resource representing the VNF package to which the notified
          change applies, i.e. the individual VNF package resource that represents
          the VNF package, identified by the "vnfdId" identifier which is assigned
          by the VNF vendor.
        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/NotificationLink"
      subscription:
        description: >
          Link to the related subscription. 
        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/NotificationLink"
          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: "../../../definitions/SOL002SOL003_def.yaml#/definitions/SubscriptionAuthentication"

  PkgmSubscription:
    description: >
@@ -359,62 +184,6 @@ definitions:
              URI of this resource.
            $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"

  PkgmSubscriptionRequest:
    description: >
      This type represents a subscription request related to VNF package
      management notifications about VNF package on-boarding or 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/PkgmNotificationsFilter"
      callbackUri:
        description: >
          The URI of the endpoint to send the notification to.
        $ref: "../../../definitions/SOL002SOL003_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: "../../../definitions/SOL002SOL003_def.yaml#/definitions/SubscriptionAuthentication"

  VnfPackageArtifactInfo:
    description: >
      This type represents an artifact other than a software image which is
      contained in a VNF package.
    type: object
    required:
      - artifactPath
      - checksum
    properties:
      artifactPath:
        description: >
          Path in the VNF package, which identifies the artifact and also
          allows to access a copy of the artifact. The value of this attribute
          shall start with the name of the first segment in the path,
          i.e. it shall not be prefixed by path separator characters such as "." and "/".

            EXAMPLE: foo/bar/run.sh
        type: string
      checksum:
        description: >
          Checksum of the artifact file.
        $ref: "#/definitions/Checksum"
      metadata:
        description: >
          The metadata of the artifact that are available in the VNF package,
          such as Content type, size, creation date, etc.
        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs"

  VnfPackageSoftwareImageInfo:
    description: >
      This type represents an artifact contained in a VNF package which
@@ -533,4 +302,207 @@ definitions:
          allows to access a copy of the image artifact.
        type: string

  VnfPackageArtifactInfo:
    description: >
      This type represents an artifact other than a software image which is
      contained in a VNF package.
    type: object
    required:
      - artifactPath
      - checksum
    properties:
      artifactPath:
        description: >
          Path in the VNF package, which identifies the artifact and also
          allows to access a copy of the artifact. The value of this attribute
          shall start with the name of the first segment in the path,
          i.e. it shall not be prefixed by path separator characters such as "." and "/".

            EXAMPLE: foo/bar/run.sh
        type: string
      checksum:
        description: >
          Checksum of the artifact file.
        $ref: "#/definitions/Checksum"
      metadata:
        description: >
          The metadata of the artifact that are available in the VNF package,
          such as Content type, size, creation date, etc.
        $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs"

  PkgmNotificationsFilter:
    description: >
      This type represents a subscription filter related to notifications
      related to VNF package management.
      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).
    type: object
    properties:
      notificationTypes:
        description: >
          Match particular notification types.
          Permitted values:
          - VnfPackageOnboardingNotification
          - VnfPackageChangeNotification
          The permitted values of the "notificationTypes" attribute are
          spelled exactly as the names of the notification types to
          facilitate automated code generation systems.
        type: array
        items:
          type: string
          enum:
            - VnfPackageOnboardingNotification
            - VnfPackageChangeNotification
      vnfProductsFromProviders:
        description: >
          If present, match VNF packages that contain VNF products from
          certain providers.
          The attributes "vnfProductsFromProviders", "vnfdId" and "vnfPkgId"
          are alternatives to reference to particular VNF packages 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 packages that contain 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 packages that contain VNF products
                      with certain versions and a certain product name, from
                      one particular provider.
                    type: array
                    items:
                      type: object
                      required:
                        - vnfSoftwareVersion
                      properties:
                        vnfSoftwareVersion:
                          description: >
                            VNF software version to match.
                          $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Version"
                        vnfdVersions:
                          description: >
                            If present, match VNF packages that contain VNF
                            products with certain VNFD versions, a certain
                            software version and a certain product name, from
                            one particular provider.
                          type: array
                          items:
                            $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Version"
      vnfdId:
        description: >
          Match VNF packages with a VNFD identifier listed in the attribute.
          The attributes "vnfProductsFromProviders", "vnfdId" and "vnfPkgId"
          are alternatives to reference to particular VNF packages 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/SOL002SOL003_def.yaml#/definitions/Identifier"
      vnfPkgId:
        description: >
          Match VNF packages with a package identifier listed in the
          attribute.
          May be present if the "notificationTypes" attribute contains the
          value "VnfPackageChangeNotification", and shall be absent
          otherwise.
          The attributes "vnfProductsFromProviders", "vnfdId" and "vnfPkgId"
          are alternatives to reference to particular VNF packages 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/SOL002SOL003_def.yaml#/definitions/Identifier"
      operationalState:
        description: >
          Match particular operational state of the VNF package.
          May be present if the "notificationTypes" attribute contains the
          value "VnfPackageChangeNotification", and shall be absent
          otherwise.
        $ref: "#/definitions/PackageOperationalStateType"
      usageState:
        description: >
          Match particular usage state of the VNF package.
          May be present if the "notificationTypes" attribute contains the
          value "VnfPackageChangeNotification", and shall be absent
          otherwise.
        $ref: "#/definitions/PackageUsageStateType"

  Checksum:
    description: >
      This type represents the checksum of a VNF package or an artifact file.
    type: object
    required:
      - algorithm
      - hash
    properties:
      algorithm:
        description: >
          Name of the algorithm used to generate the checksum, as defined in
          ETSI GS NFV-SOL 004. For example, SHA-256, SHA-512.
        type: string
      hash:
        description: >
          The hexadecimal value of the checksum.
        type: string

  PackageOperationalStateType:
    description: >
      - ENABLED: The VNF package is enabled, i.e. it can be used for
        instantiation of new VNF instances.
      - DISABLED: The VNF package is disabled, i.e. it cannot be used for
        further VNF instantiation requests (unless and until the VNF package
        is re-enabled).
    type: string
    enum:
      - ENABLED
      - DISABLED

  PackageUsageStateType:
    description: >
      - IN_USE: VNF instances instantiated from this VNF package exist.
      - NOT_IN_USE: No existing VNF instance is instantiated from this VNF
        package.
    type: string
    enum:
      - IN_USE
      - NOT_IN_USE

  PackageOnboardingStateType:
    description: >
      CREATED: The "Individual VNF package" resource has been created.
      UPLOADING: The associated VNF package content is being uploaded.
      PROCESSING: The associated VNF package content is being processed, e.g.,
        validation.
      ONBOARDED: The associated VNF package content has been successfully
        on-boarded.
    type: string
    enum:
      - CREATED
      - UPLOADING
      - PROCESSING
      - ONBOARDED
 No newline at end of file
+0 −76
Original line number Diff line number Diff line
responses:
  406:
    description: >
      Not Acceptable

      If the "Accept" header does not contain at least one name of a content
      type for which the NFVO can provide a representation of the VNFD, the
      NFVO shall respond with this response code.
      The "ProblemDetails" structure may be included with the "detail"
      attribute providing more information about the error.
    headers:
      Content-Type:
        description: The MIME type of the body of the response.
        type: string
        maximum: 1
        minimum: 1
      WWW-Authenticate:
        description: >
          Challenge if the corresponding HTTP request has not provided
          authorization, or error details if the corresponding HTTP
          request has provided an invalid authorization token.
        type: string
        maximum: 1
        minimum: 0
    schema:
      $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
  409:
    description: >
      Conflict

      Error: The operation cannot be executed currently, due to a conflict
      with the state of the resource.
      Typically, this is due to the fact that "onboardingState" of the VNF
      package has a value different from "ONBOARDED".
      The response body shall contain a ProblemDetails structure, in which the
      "detail" attribute shall convey more information about the error.
    headers:
      Content-Type:
        description: The MIME type of the body of the response.
        type: string
        maximum: 1
        minimum: 1
      WWW-Authenticate:
        description: >
          Challenge if the corresponding HTTP request has not provided
          authorization, or error details if the corresponding HTTP
          request has provided an invalid authorization token.
        type: string
        maximum: 1
        minimum: 0
    schema:
      $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
  416:
    description: >
      Requested Range Not Satisfiable

      The byte range passed in the "Range" header did not match any available
      byte range in the VNF package file (e.g. "access after end of file").
      The response body may contain a ProblemDetails structure.
    headers:
      Content-Type:
        description: The MIME type of the body of the response.
        type: string
        maximum: 1
        minimum: 1
      WWW-Authenticate:
        description: >
          Challenge if the corresponding HTTP request has not provided
          authorization, or error details if the corresponding HTTP
          request has provided an invalid authorization token.
        type: string
        maximum: 1
        minimum: 0
    schema:
      $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
    
 No newline at end of file
+66 −68

File changed.

Preview size limit exceeded, changes collapsed.

+4 −5

File changed.

Preview size limit exceeded, changes collapsed.