NSDManagement.yaml 14.1 KB
Newer Older
openapi: 3.0.2
info:
  version: 1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1
  title: SOL011 - NSD Management Interface
  description: >
    SOL011 - NSD Management Interface

    IMPORTANT: Please note that this file might be not aligned to the current version of the ETSI Group Specification
     it refers to. In case of discrepancies the published ETSI Group Specification takes precedence.

    Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution=
  license:
    name: ETSI Forge copyright notice
    url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
externalDocs:
  description: ETSI GS NFV-SOL 011 V3.3.1
  url: https://docbox.etsi.org/ISG/NFV/Open/Drafts/SOL011ed331_Or-Or_Stage_3/NFV-SOL011ed331v010.zip

security:
  - OauthSecurity:
      - all
servers:
  - url: http://127.0.0.1/nsd/v1
  - url: https://127.0.0.1/nsd/v1

paths:
  "/api_versions":
    $ref: '../endpoints/SOL011_endpoints.yaml#/endpoints/api_versions'

  "/ns_descriptors":
    description: >-
      It can be used by NFVO-C to query multiple NS descriptors from NFVO-N.
    parameters:
      - $ref: "../components/SOL011_params.yaml#/components/parameters/Version"
      - $ref: "../components/SOL011_params.yaml#/components/parameters/Accept"
      - $ref: "../components/SOL011_params.yaml#/components/parameters/Authorization"
    get:
      description: >-
        The GET method queries information about multiple NS descriptor resources.
        This method shall follow the provisions specified in the clause 5.4.2.3.2 of ETSI GS NFV-SOL 005.
      parameters:
        - $ref: "../components/SOL011_params.yaml#/components/parameters/filter"
        - $ref: "../components/SOL011_params.yaml#/components/parameters/all_fields"
        - $ref: "../components/SOL011_params.yaml#/components/parameters/fields"
        - $ref: "../components/SOL011_params.yaml#/components/parameters/exclude_fields"
        - $ref: "../components/SOL011_params.yaml#/components/parameters/exclude_default"
        - $ref: "../components/SOL011_params.yaml#/components/parameters/nextpage_opaque_marker"

      responses:
        200:
          $ref: "#/components/responses/NsdInfos.Get.200"
        400:
          $ref: "../components/SOL011_resp.yaml#/components/responses/400"
        401:
          $ref: "../components/SOL011_resp.yaml#/components/responses/401"
        403:
          $ref: "../components/SOL011_resp.yaml#/components/responses/403"
        404:
          $ref: "../components/SOL011_resp.yaml#/components/responses/404"
        405:
          $ref: "../components/SOL011_resp.yaml#/components/responses/405"
        406:
          $ref: "../components/SOL011_resp.yaml#/components/responses/406"
        500:
          $ref: "../components/SOL011_resp.yaml#/components/responses/500"
        503:
          $ref: "../components/SOL011_resp.yaml#/components/responses/503"
        504:
          $ref: "../components/SOL011_resp.yaml#/components/responses/504"

  '/ns_descriptors/{nsdInfoId}':
    description: >-
      It can be used by NFVO-C to query an individual NS descriptor from NFVO-N.
    parameters:
      - $ref: "#/components/parameters/nsdInfoId"
      - $ref: "../components/SOL011_params.yaml#/components/parameters/Version"
      - $ref: "../components/SOL011_params.yaml#/components/parameters/Accept"
      - $ref: "../components/SOL011_params.yaml#/components/parameters/Authorization"

    get:
      description: >
        The GET method reads information about an individual NS descriptor resource.
        This method shall follow the provisions specified in the clause 5.4.3.3.2 of ETSI GS NFV-SOL 005.
      responses:
        200:
          $ref: "#/components/responses/NsdInfo.Get.200"
        400:
          $ref: "../components/SOL011_resp.yaml#/components/responses/400"
        401:
          $ref: "../components/SOL011_resp.yaml#/components/responses/401"
        403:
          $ref: "../components/SOL011_resp.yaml#/components/responses/403"
        404:
          $ref: "../components/SOL011_resp.yaml#/components/responses/404"
        405:
          $ref: "../components/SOL011_resp.yaml#/components/responses/405"
        406:
          $ref: "../components/SOL011_resp.yaml#/components/responses/406"
        500:
          $ref: "../components/SOL011_resp.yaml#/components/responses/500"
        503:
          $ref: "../components/SOL011_resp.yaml#/components/responses/503"
        504:
          $ref: "../components/SOL011_resp.yaml#/components/responses/504"

components:
  parameters:
    nsdInfoId:
      name: nsdInfoId
      description: >
        Identifier of the individual NS descriptor resource.
      in: path
      required: true
      schema:
        type: string

  responses:
    NsdInfos.Get.200:
      description: >-
        200 OK
        Information about zero or more NS descriptors.
        The response body shall contain in an array the
        representations of zero or more NS descriptors, as
        defined in clause 5.5.2.2.
        If the NFVO supports alternative 2 (paging) according
        to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for
        this resource, inclusion of the Link HTTP header in
        this response shall follow the provisions in clause
        5.4.2.3 of ETSI GS NFV-SOL 013.
      headers:
        Content-Type:
          description: The MIME type of the body of the response.
          schema:
            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.
          schema:
            type: string
            maximum: 1
            minimum: 0
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
            maximum: 1
            minimum: 1
        Link:
          description: >
            Reference to other resources. Used for paging in the present document, see clause 4.7.2.1.
          schema:
            type: string
            maximum: 1
            minimum: 0
      content:
        application/json:
        schema:
          $ref: "#/components/schemas/NsdInfos.Get.Response"

    NsdInfo.Get.200:
      description: >-
        200 OK
        Information about the individual NS descriptor.
        The response body shall contain a representation of the individual NS descriptor,
        as defined in clause 5.5.2.2.
      headers:
        Content-Type:
          description: The MIME type of the body of the response.
          schema:
            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.
          schema:
            type: string
            maximum: 1
            minimum: 0
        Version:
          description: >
            Version of the API used in the response.
          schema:
            type: string
            maximum: 1
            minimum: 1
        Link:
          description: >
            Reference to other resources. Used for paging in the present document, see clause 4.7.2.1.
          schema:
            type: string
            maximum: 1
            minimum: 0
      content:
        application/json:
        schema:
          $ref: "#/components/schemas/NsdInfo"

  schemas:
    NsdInfos.Get.Response:
      description: >
        This type represents a response for the query NSD operation.
      type: array
      items:
        $ref: "#/components/schemas/NsdInfo"

    NsdInfo:
      description: >
        This type represents a response for the query NSD operation.
      type: object
Giacomo Bernini's avatar
Giacomo Bernini committed
      oneOf:
        - required:
          - id
          - nsdOnboardingState
          - nsdOperationalState
          - nsdUsageState
          - _links
Giacomo Bernini's avatar
Giacomo Bernini committed
        - required:
          - id
          - nsdOnboardingState
          - nsdOperationalState
          - nsdUsageState
          - _links
          - nestedNsdInfoId
      properties:
        id:
          description: >
            Identifier of the on boarded individual NS descriptor
            resource. This identifier is allocated by the NFVO.
          $ref: "../components/SOL011_schemas.yaml#/components/schemas/Identifier"
        nsdId:
          description: >
            This identifier, which is allocated by the NSD
            designer, identifies the NSD in a globally unique
            way. It is copied from the NSD content and shall be
            present after the NSD content is on-boarded.
          $ref: "../components/SOL011_schemas.yaml#/components/schemas/Identifier"
        nsdName:
          type: string
          description: >
            Name of the on boarded NSD. This information is copied from the
            NSD content and shall be present after the NSD content is on-boarded.
        nsdVersion:
          description: >
            Version of the on-boarded NSD. This information is
            copied from the NSD content and shall be present
            after the NSD content is on-boarded.
          $ref: "../components/SOL011_schemas.yaml#/components/schemas/Version"
        nsdDesigner:
          type: string
          description: >
            Designer of the on-boarded NSD. This information is copied
            from the NSD content and shall be present after the NSD content is on-boarded.
        nsdInvariantId:
          description: >
            This identifier, which is allocated by the NSD
            designer, identifies an NSD in a version independent
            manner. This information is copied from the NSD
            content and shall be present after the NSD content is
            on-boarded.
          $ref: "../components/SOL011_schemas.yaml#/components/schemas/Identifier"
        vnfPkgIds:
          description: >
            Identifies the VNF package for the VNFD referenced
            by the on-boarded NS descriptor resource.
          type: array
          items:
            $ref: "../components/SOL011_schemas.yaml#/components/schemas/Identifier"
        pnfdInfoIds:
          description: >
            Identifies the PnfdInfo element for the PNFD
            referenced by the on-boarded NS descriptor
            resource.
          type: array
          items:
            $ref: "../components/SOL011_schemas.yaml#/components/schemas/Identifier"
        nestedNsdInfoIds:
          description: >
            Identifies the NsdInfo element for the nested NSD
            referenced by the on-boarded NS descriptor
            resource.
          type: array
          items:
            $ref: "../components/SOL011_schemas.yaml#/components/schemas/Identifier"
        nsdOnboardingState:
          description: >
            On boarding state of the individual NS descriptor resource.
          $ref: "#/components/schemas/NsdOnboardingStateType"
        onboardingFailureDetails:
          description: >
            Failure details of current on boarding procedure. See
            clause 6.3 of ETSI GS NFV-SOL 013 for the details of "ProblemDetails"
            structure.
            It shall be present when the "nsdOnboardingState"
            attribute is CREATED and the uploading or
            processing fails in NFVO.
          $ref: "../components/SOL011_schemas.yaml#/components/schemas/ProblemDetails"
        nsdOperationalState:
          description: >
            Operational state of the individual NS descriptor
            resource. This attribute can be modified with the
            PATCH method.
          $ref: "#/components/schemas/NsdOperationalStateType"
        nsdUsageState:
          description: >
            Usage state of the individual NS descriptor resource.
          $ref: "#/components/schemas/NsdUsageStateType"
        userDefinedData:
          description: >
            User defined data for the individual NS descriptor
            resource. This attribute can be modified with the
            PATCH method.
          $ref: "../components/SOL011_schemas.yaml#/components/schemas/KeyValuePairs"
        _links:
          type: object
          required:
            - self
            - nsd_content
          description: >
            Links to resources related to this resource.
          properties:
            self:
              description: >
                URI of this resource.
              $ref: "../components/SOL011_schemas.yaml#/components/schemas/Link"
            nsd_content:
              description: >
                Link to the NSD content resource.
              $ref: "../components/SOL011_schemas.yaml#/components/schemas/Link"

    NsdOperationalStateType:
      type: string
      description: >
        The enumeration NsdOperationalStateType shall comply with the provisions
        defined in Table 5.5.4.3-1 of GS NFV_SOL 005. It indicates the operational
        state of the resource.
        ENABLED = The operational state of the resource is enabled.
        DISABLED = The operational state of the resource is disabled.
      enum:
        - ENABLED
        - DISABLED

    NsdUsageStateType:
      type: string
      description: >
        The enumeration NsdUsageStateType shall comply with the provisions
        defined in Table 5.5.4.4-1 of GS NFV-SOL 005. It indicates the usage state
        of the resource.IN_USE = The resource is in use.NOT_IN_USE = The resource
        is not-in-use.
      enum:
        - IN_USE
        - NOT_IN_USE

    NsdOnboardingStateType:
      type: string
      description: >
        The enumeration NsdOnboardingStateType shall comply with the provisions
        defined in Table 5.5.4.5-1 of GS NFV-SOL 005. It indicates the on-boarding
        state of the NSD.
        CREATED = The NSD information object is created.
        UPLOADING = The associated NSD content is being uploaded.
        PROCESSING = The associated NSD content is being processed, e.g. validation.
        ONBOARDED = The associated NSD content is on-boarded.
      enum:
        - CREATED
        - UPLOADING
        - PROCESSING
        - ONBOARDED