NSDManagement.yaml 67.5 KB
Newer Older
          field shall be present if the response is expected to have a non-empty
          message body.
      - name: "Content-Type"
        in: "header"
        required: true
        type: "string"
        description: >
          The MIME type of the body of the request. This header field
          shall be present if the request has a non-empty message body.
      - name: "Authorization"
        in: "header"
        required: false
        type: "string"
        description: >
          The authorization token for the request. Details are specified in clause 4.5.3.
      - name: "body"
        in: "body"
        required: true
        schema:
          type: "object"
          required:
          - "PnfdInfoModifications"
          properties:
            PnfdInfoModifications:
              $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/PnfdInfoModifications"
          description: >
            The PATCH method modifies the user defined data of an individual PNF descriptor resource.            
      responses:
        200:
          description: >
            200 OK.
          schema:
            type: "object"
            properties:
              PnfdInfoModifications:
                $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/PnfdInfoModifications"                
            Location:
              type: "string"
              description: >
                The HTTP response shall include a Location HTTP header
                that contains the resource URI of the new NS descriptor resource.
            Content-Type:
              type: "string"
              description: >
                The MIME type of the body of the response.This header
                field shall be present if the response has a non-empty message
                body.
            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.            
        206:
          $ref: "responses/SOL005_resp.yaml#/responses/206"
        400:
          $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector"
        401:
          $ref: "responses/SOL005_resp.yaml#/responses/401"
        403:
          $ref: "responses/SOL005_resp.yaml#/responses/403"
        404:
          $ref: "responses/SOL005_resp.yaml#/responses/404"
        405:
          $ref: "responses/SOL005_resp.yaml#/responses/405"
        406:
          $ref: "responses/SOL005_resp.yaml#/responses/406"
        409:
          $ref: "responses/NSDescriptorManagement_resp.yaml#/responses/409"
          $ref: "responses/SOL005_resp.yaml#/responses/412"         
        416:
          $ref: "responses/SOL005_resp.yaml#/responses/416"
        500:
          $ref: "responses/SOL005_resp.yaml#/responses/500"
        503:
          $ref: "responses/SOL005_resp.yaml#/responses/503" 
            
    parameters:
    - name: "pnfdInfoId"
      description: >
        Identifier of the individual PNF descriptor resource.
      in: "path"
      required: true
      type: "string"
###############################################################################
# PNFD Content                                                                #
###############################################################################       
  '/pnf_descriptors/{pnfdInfoId}/pnfd_content':
      summary: "Fetch the content of a PNFD."
      description: >  
        The GET method fetches the content of the PNFD.
        This resource represents the content of the individual PNF descriptor, i.e. PNFD content. 
        The client can use this resource to upload and download the content of the PNFD.
      - name: Accept
        description: >
          Content-Types that are acceptable for the response.
        in: header
        required: true
        type: string
        enum: 
          - text/plain
      - name: Authorization
        description: >
          The authorization token for the request.
          Reference: IETF RFC 7235
        in: header
        required: false
      responses:
        200:
            
            On success, the content of the PNFD is returned. The payload
            body shall contain a copy of the file representing the PNFD. 
            The Content-Type" HTTP header shall be set to "text/plain".
        206:
          $ref: "responses/SOL005_resp.yaml#/responses/206"
        400:
          $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector"
        401:
          $ref: "responses/SOL005_resp.yaml#/responses/401"
        403:
          $ref: "responses/SOL005_resp.yaml#/responses/403"
        404:
          $ref: "responses/SOL005_resp.yaml#/responses/404"
        405:
          $ref: "responses/SOL005_resp.yaml#/responses/405"
        406:
          $ref: "responses/SOL005_resp.yaml#/responses/406"
        409:
          $ref: "responses/NSDescriptorManagement_resp.yaml#/responses/409-pnfd-onboarding-state-NOT-ONBOARDED" 
        412:
          $ref: "responses/SOL005_resp.yaml#/responses/412"         
        416:
          $ref: "responses/SOL005_resp.yaml#/responses/416"
        500:
          $ref: "responses/SOL005_resp.yaml#/responses/500"
        503:
          $ref: "responses/SOL005_resp.yaml#/responses/503"            
      summary: "Upload the content of a PNFD."
      description: >  
        The PUT method is used to upload the content of a PNFD.
        This resource represents the content of the individual PNF descriptor, i.e. PNFD content. 
        The client can use this resource to upload and download the content of the PNFD.        
      parameters:
      - name: Accept
        description: >
          Content-Types that are acceptable for the response.
        in: header
        required: true
        type: string
        enum: 
          - text/plain
      - name: Authorization
        description: >
          The authorization token for the request.
          Reference: IETF RFC 7235
        in: header
        required: false
        type: string
      responses:
        204:
            
            The PNFD content was successfully uploaded and validated. 
            The response body shall be empty.
        206:
          $ref: "responses/SOL005_resp.yaml#/responses/206"
        400:
          $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector"
        401:
          $ref: "responses/SOL005_resp.yaml#/responses/401"
        403:
          $ref: "responses/SOL005_resp.yaml#/responses/403"
        404:
          $ref: "responses/SOL005_resp.yaml#/responses/404"
        405:
          $ref: "responses/SOL005_resp.yaml#/responses/405"
        406:
          $ref: "responses/SOL005_resp.yaml#/responses/406"
          $ref: "responses/NSDescriptorManagement_resp.yaml#/responses/409-pnfd-onboarding-state-NOT-CREATED"
        412:
          $ref: "responses/SOL005_resp.yaml#/responses/412"         
        416:
          $ref: "responses/SOL005_resp.yaml#/responses/416"
        500:
          $ref: "responses/SOL005_resp.yaml#/responses/500"
        503:
          $ref: "responses/SOL005_resp.yaml#/responses/503"
    parameters:
    - name: "pnfdInfoId"
      description: >
        Identifier of the individual PNF descriptor.
      in: "path"
      required: true
      type: "string"
###############################################################################
# Subscriptions                                                               #
###############################################################################       
  '/subscriptions':
      summary: "Query multiple subscriptions."
      description: >  
        The GET method queries the list of active subscriptions of the
        functional block that invokes the method. It can be used e.g. for resynchronization
        after error situations. This method shall support the URI query parameters,
        request and response data structures, and response codes.
        
        This resource represents subscriptions. 
        The client can use this resource to subscribe to notifications related to NSD
        management and to query its subscriptions.
        - name: "filter"
          in: "query"
          required: false
          type: "string"
          description: >  
            "Attribute-based filtering parameters according to clause 4.3.2.
            The NFVO shall support receiving filtering parameters as part of the URI query string. The
            OSS/BSS may supply filtering parameters.
            All attribute names that appear in the VnfPkgInfo and in data types referenced from it shall
            be supported in attribute-based filtering parameters."
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
            Reference: IETF RFC 7231
          in: header
          required: true
          type: string
        - name: Authorization
          description: >
            The authorization token for the request.
            Reference: IETF RFC 7235
          in: header
          required: false
          type: string            
      responses:
        200:
            The list of subscriptions was queried successfully.
            The response body shall contain the representations of
            all active subscriptions of the functional block that
            invokes the method.
          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
            items:              
              properties:
                NsdmSubscription:
                  $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdmSubscription"   
            A subscription with the same callbackURI and the
            same filter already exits and the policy of the NFVO is
            to not create redundant subscriptions.
            The HTTP response shall include a "Location" HTTP
            header that contains the resource URI of the existing
            subscription resource.
            The response body shall be empty.
        206:
          $ref: "responses/SOL005_resp.yaml#/responses/206"
        400:
          $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector"
        401:
          $ref: "responses/SOL005_resp.yaml#/responses/401"
        403:
          $ref: "responses/SOL005_resp.yaml#/responses/403"
        404:
          $ref: "responses/SOL005_resp.yaml#/responses/404"
        405:
          $ref: "responses/SOL005_resp.yaml#/responses/405"
        406:
          $ref: "responses/SOL005_resp.yaml#/responses/406"
        409:
          $ref: "responses/NSDescriptorManagement_resp.yaml#/responses/409"
        412:
          $ref: "responses/SOL005_resp.yaml#/responses/412"         
        416:
          $ref: "responses/SOL005_resp.yaml#/responses/416"
        500:
          $ref: "responses/SOL005_resp.yaml#/responses/500"
        503:
          $ref: "responses/SOL005_resp.yaml#/responses/503"
          
      summary: "Subscribe to NSD and PNFD change notifications."
      description: >  
        The POST method creates a new subscription. 
        This method shall support the URI query parameters, request and response data structures,
        and response codes, as specified in the Tables 5.4.8.3.1-1 and 5.4.8.3.1-2
        of GS-NFV SOL 005. Creation of two subscription resources with the same
        callbackURI and the same filter can result in performance degradation and
        will provide duplicates of notifications to the OSS, and might make sense
        only in very rare use cases. Consequently, the NFVO may either allow creating
        a subscription resource if another subscription resource with the same filter
        and callbackUri already exists (in which case it shall return the "201
        Created" response code), or may decide to not create a duplicate subscription
        resource (in which case it shall return a "303 See Other" response code
        referencing the existing subscription resource with the same filter and
        callbackUri).
        
        This resource represents subscriptions. 
        The client can use this resource to subscribe to notifications related to NSD
        management and to query its subscriptions.        
      parameters:          
      - name: Accept
        description: >
          Content-Types that are acceptable for the response.
          Reference: IETF RFC 7231
        in: header
        required: true
        type: string
      - name: Authorization
        description: >
          The authorization token for the request.
          Reference: IETF RFC 7235
        in: header
        required: false
        type: string
      - name: Content-Type
        description: >
          The MIME type of the body of the request.
          Reference: IETF RFC 7231
        in: header
        required: true
        type: string
      - name: "body"
        in: "body"
        required: true
        schema:
          type: "object"
          required:
          - "NsdmSubscriptionRequest"
          properties:
            NsdmSubscriptionRequest:
              $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdmSubscriptionRequest"
          description: >
            Parameters of creating a new NS Description request.
      responses:
        201:
          description: >
            201 Created.
            
            The subscription was created successfully.
            The response body shall contain a representation of the created subscription resource.
            The HTTP response shall include a "Location:"
            HTTP header that points to the created subscription resource.            
            type: "object"
            properties:
              NsdmSubscription:
                $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdmSubscription"
          headers:
            Location:
              type: "string"
              description: >
                The HTTP response shall include a Location HTTP header
                that contains the resource URI of the new NS descriptor resource.
            Content-Type:
              type: "string"
              description: >
                The MIME type of the body of the response.This header
                field shall be present if the response has a non-empty message
                body.
            WWW-Authenticate:
              type: "string"
              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.
        206:
          $ref: "responses/SOL005_resp.yaml#/responses/206"
        400:
          $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector"
        401:
          $ref: "responses/SOL005_resp.yaml#/responses/401"
        403:
          $ref: "responses/SOL005_resp.yaml#/responses/403"
        404:
          $ref: "responses/SOL005_resp.yaml#/responses/404"
        405:
          $ref: "responses/SOL005_resp.yaml#/responses/405"
        406:
          $ref: "responses/SOL005_resp.yaml#/responses/406"
        409:
          $ref: "responses/NSDescriptorManagement_resp.yaml#/responses/409"
        412:
          $ref: "responses/SOL005_resp.yaml#/responses/412"         
        416:
          $ref: "responses/SOL005_resp.yaml#/responses/416"
        500:
          $ref: "responses/SOL005_resp.yaml#/responses/500"
        503:
          $ref: "responses/SOL005_resp.yaml#/responses/503"                 

                
                
###############################################################################
# Individual Subscription                                                     #
###############################################################################                 
  '/subscriptions/{subscriptionId}':
      summary: "Read an individual subscription resource."
      description: >  
        The GET method retrieves information about a subscription by reading
        an individual subscription resource. 
        This resource represents an individual subscription. 
        It can be used by the client to read and to terminate a subscription to
        notifications related to NSD management.
      parameters:
      - name: "Accept"
        in: "header"
        required: true
        type: "string"
        description: >
          Content-Types that are acceptable for the response. This header
          field shall be present if the response is expected to have a non-empty
          message body.
      - name: "Authorization"
        in: "header"
        required: false
        type: "string"
        description: >
          The authorization token for the request. Details are specified
          in clause 4.5.3 of GS NFV-SOL 005.
          
      responses:
        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 of GS NFV-SOL 005.
            $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdmSubscription"
          headers:
            Content-Type:
              type: "string"
              description: >
                The MIME type of the body of the response. This header
                field shall be present if the response has a non-empty message body.
            WWW-Authenticate:
              type: "string"
              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.            
    delete:
      summary: "Terminate Subscription"
        The DELETE method terminates an individual subscription. 
        This resource represents an individual subscription. 
        It can be used by the client to read and to terminate a subscription to
        notifications related to NSD management.        
      parameters:
      - name: "Authorization"
        in: "header"
        required: false
        type: "string"
        description: >
          The authorization token for the request. 
          Details are specified in clause 4.5.3 of GS NFV-SOL 005.
      responses:
        204:
          description: >
            204 No Content.          
            The subscription resource was deleted successfully.
            The response body shall be empty.
    parameters:
    - name: "subscriptionId"
      description: Identifier of this subscription.
      in: "path"
      required: true
      type: "string"
      
###############################################################################
# Notification endpoint                                                       #
# "/notification_endpoint" is the                                             #
# is the dummy URI used for testing, in real case endpoint URI has to         #
# provided by client.                                                         #
###############################################################################
  '/notification_endpoint':
    post:
      summary: Notify about NSD and PNFD changes.
      description: >
        The POST method delivers a notification from the server to the client.
        This method shall support the URI query parameters, request and response data structures, and response codes, as
        specified in the Tables 6.4.18.3.1-1 and 6.4.18.3.1-2.
        
        This resource represents a notification endpoint. The server can use this resource to send notifications to a subscribed
        client, which has provided the URI of this resource during the subscription process.
        
      # Don't know how to pass multiple body parameters. 
      # Jenkin build is failing if enable more than one body parameters, So commented body parameters.
      parameters:
        - name: NsdOnBoardingNotification
          description: >
            A notification about the successful on-boarding of an NSD.
          in: body
          required: true
          schema:
            properties:
              NsdOnBoardingNotification:
                $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdOnBoardingNotification"
#        - name: NsdOnBoardingFailureNotification
#          description: >
#            A notification about the failure of on-boarding an NSD.
#          in: body
#          required: true
#          schema:
#            properties:
#              NsdOnBoardingFailureNotification:          
#                $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdOnBoardingFailureNotification"
#        - name: NsdChangeNotification
#          description: >
#            A notification about the state change of an on-boarded NSD.
#          in: body
#          required: true
#          schema:
#            properties:
#              NsdChangeNotification:          
#                $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdChangeNotification"            
#        - name: NsdDeletionNotification
#          description: >
#            A notification about the deletion of an on-boarded NSD.
#          in: body
#          required: true
#          schema:
#            properties:
#              NsdDeletionNotification:
#                $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdDeletionNotification"
#        - name: PnfdOnBoardingNotification
#          description: >
#            A notification about the successful on-boarding of a PNFD.
#          in: body
#          required: true
#          schema:
#            properties:
#              PnfdOnBoardingNotification:          
#                $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/PnfdOnBoardingNotification"
#        - name: PnfdOnBoardingFailureNotification
#          description: >
#            A notification about the failure of on-boarding a PNFD.
#          in: body
#          required: true
#          schema:
#            properties:
#              PnfdOnBoardingFailureNotification:          
#                $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/PnfdOnBoardingFailureNotification"
#        - name: PnfdDeletionNotification
#          description: >
#            A notification about the deletion of an on-boarded PNFD.
#          in: body
#          required: true
#          schema:
#            properties:
#              PnfdDeletionNotification:           
#                $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/PnfdDeletionNotification"            
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
            Reference: IETF RFC 7231
          in: header
          required: true
          type: string
        - name: Authorization
          description: >
            The authorization token for the request.
            Reference: IETF RFC 7235
          in: header
          required: false
          type: string
        - name: Content-Type
          description: >
            The MIME type of the body of the request.
            Reference: IETF RFC 7231
          in: header
          required: true
          type: string          
      responses:
        204:
          description: >
            204 No Content.
            The notification was delivered successfully.
          headers:
            Content-Type:
              description: The MIME type of the body of the response.
              type: string
              maximum: 1
              minimum: 1
            Location:
              description: The resource URI of the created NS instance
              type: string
              format: url
            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        
        400:
          $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector"
        401:
          $ref: "responses/SOL005_resp.yaml#/responses/401"
        403:
          $ref: "responses/SOL005_resp.yaml#/responses/403"
        404:
          $ref: "responses/SOL005_resp.yaml#/responses/404"
        405:
          $ref: "responses/SOL005_resp.yaml#/responses/405"
        406:
          $ref: "responses/SOL005_resp.yaml#/responses/406"
        409:
          $ref: "responses/NSDescriptorManagement_resp.yaml#/responses/409"
        416:
          $ref: "responses/SOL005_resp.yaml#/responses/416"
        500:
          $ref: "responses/SOL005_resp.yaml#/responses/500"
        503:
          $ref: "responses/SOL005_resp.yaml#/responses/503"      
    get:
      summary: Test the notification endpoint.
      description: >
        The GET method allows the server to test the notification endpoint that is provided by the client, 
        e.g. during subscription.
        This method shall follow the provisions specified in the Tables 5.4.10.3.2-1 and 5.4.10.3.2-2 for URI query parameters,
        request and response data structures, and response codes.        
      parameters:
        - name: Accept
          description: >
            Content-Types that are acceptable for the response.
            Reference: IETF RFC 7231
          in: header
          required: true
          type: string
        - name: Authorization
          description: >
            The authorization token for the request.
            Reference: IETF RFC 7235
          in: header
          required: false
          type: string
      responses:
        204:
          description: >
            204 No Content.
            The notification endpoint was tested successfully.
            The response body shall be empty.
          headers:
            Content-Type:
              description: The MIME type of the body of the response.
              type: string
            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
        400:
          $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector"
        401:
          $ref: "responses/SOL005_resp.yaml#/responses/401"
        403:
          $ref: "responses/SOL005_resp.yaml#/responses/403"
        404:
          $ref: "responses/SOL005_resp.yaml#/responses/404"
        405:
          $ref: "responses/SOL005_resp.yaml#/responses/405"
        406:
          $ref: "responses/SOL005_resp.yaml#/responses/406"
        409:
          $ref: "responses/NSDescriptorManagement_resp.yaml#/responses/409"
        416:
          $ref: "responses/SOL005_resp.yaml#/responses/416"
        500:
          $ref: "responses/SOL005_resp.yaml#/responses/500"
        503:
          $ref: "responses/SOL005_resp.yaml#/responses/503"