diff --git a/src/SOL005/VNFPackageManagement/VNFPackageManagement.yaml b/src/SOL005/VNFPackageManagement/VNFPackageManagement.yaml index b3f43e3228677b087dc4b345b259e1e04b352c4c..b4cd6de2a14fd4eb83bbd06d3d9c2abe58eecc4f 100644 --- a/src/SOL005/VNFPackageManagement/VNFPackageManagement.yaml +++ b/src/SOL005/VNFPackageManagement/VNFPackageManagement.yaml @@ -2,9 +2,9 @@ swagger: "2.0" info: version: "2.4.1" - title: DRAFT - SOL005 - VNF Package Management Interface + title: SOL005 - VNF Package Management Interface description: > - DRAFT - SOL005 - VNF Package Management Interface + SOL005 - VNF Package Management Interface IMPORTANT: Please note that this file might be not aligned to the current version of the ETSI Group Specification it refers to and has not been approved by the ETSI NFV ISG. In case of discrepancies the published ETSI @@ -35,59 +35,59 @@ paths: '/vnf_packages': #ETSI GS NFV-SOL 005 V2.4.1 location: 9.4.2 get: - summary: "VNF packages" + summary: Query VNF packages information. description: > - "The GET method queries the information of the VNF packages matching the filter. - - This method shall follow the provisions specified in the - Tables 9.4.2.3.2-1 and 9.4.2.3.2-2 for URI query parameters, - request and response data structures, and response codes." + The GET method queries the information of the VNF packages matching the filter. + This method shall follow the provisions specified in the + Tables 9.4.2.3.2-1 and 9.4.2.3.2-2 for URI query parameters, + request and response data structures, and response codes. parameters: - name: "filter" in: "query" required: false type: "string" description: > - "Attribute-based filtering parameters according to clause 4.3.2. + 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." + be supported in attribute-based filtering parameters. - name: "all_fields" in: "query" required: false type: "string" description: > - "Include all complex attributes in the response. See clause 4.3.3 - for details. The NFVO shall support this parameter." + Include all complex attributes in the response. See clause 4.3.3 for details. The NFVO + shall support this parameter. - name: "fields" in: "query" required: false type: "string" description: > - "Complex attributes to be included into the response. See clause 4.3.3 for - details. The NFVO should support this parameter." + Complex attributes to be included into the response. See clause 4.3.3 for details. The + NFVO should support this parameter. - name: "exclude_fields" in: "query" required: false type: "string" description: > - "Complex attributes to be excluded from the response. See clause 4.3.3 for - details. The NFVO should support this parameter." + Complex attributes to be excluded from the response. See clause 4.3.3 for details. The + NFVO should support this parameter. - name: "exclude_default" in: "query" required: false type: "string" description: > - "Indicates to exclude the following complex attributes from the response. See clause 4.3.3 - for details. The NFVO shall support this parameter. + Indicates to exclude the following complex attributes from the response. See clause 4.3.3 + for details. + The NFVO shall support this parameter. The following attributes shall be excluded from the VnfPkgInfo structure in the response body if this parameter is provided, or none of the parameters "all_fields," "fields", "exclude_fields", "exclude_default" are provided: - softwareImages - additionalArtifacts - userDefinedData - - checksum." + - checksum - name: Accept description: > Content-Types that are acceptable for the response. @@ -104,14 +104,27 @@ paths: type: string responses: 200: - description: > - "Status 200" + description: > + 200 OK. + Information of the selected VNF packages. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + 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. schema: - type: "array" - description: > - "Information of the selected VNF packages." + type: array items: - $ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/VnfPkgInfo" + properties: + VnfPkgInfo: + $ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/VnfPkgInfo" 400: $ref: "responses/SOL005_resp.yaml#/responses/400" 401: @@ -132,17 +145,10 @@ paths: $ref: "responses/SOL005_resp.yaml#/responses/503" post: - summary: "VNF packages" + summary: Create a new individual VNF package resource. description: > - "The POST method creates a new individual VNF package resource." + The POST method creates a new individual VNF package resource. parameters: - - name: "CreateVnfPkgInfoRequest" - description: > - "IndividualVNF package resource creation parameters, as defined in clause 9.5.2.2" - in: "body" - required: true - schema: - $ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/CreateVnfPkgInfoRequest" - name: Accept description: > Content-Types that are acceptable for the response. @@ -163,7 +169,20 @@ paths: Reference: IETF RFC 7231 in: header required: true - type: string + type: string + - name: "body" + in: "body" + required: true + schema: + type: "object" + required: + - "CreateVnfPkgInfoRequest" + properties: + CreateVnfPkgInfoRequest: + $ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/CreateVnfPkgInfoRequest" + description: > + IndividualVNF package resource creation parameters, as defined in clause 9.5.2.2 + responses: 201: description: > @@ -191,7 +210,7 @@ paths: '/vnf_packages/{vnfPkgId}': #ETSI GS NFV-SOL 005 V2.4.1 location: 9.4.3 get: - summary: "Individual VNF package" + summary: Read information about an individual VNF package. description: > "This resource represents an individual VNF package. The client can use this resource to read information of the VNF @@ -213,12 +232,31 @@ paths: type: string responses: 200: - description: > - "200 OK" - - "Information of the VNF package." + description: 200 OK. schema: - $ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/VnfPkgInfo" + type: "object" + description: > + Information of the VNF package. + properties: + VnfPkgInfo: + $ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/VnfPkgInfo" + 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. 400: $ref: "responses/SOL005_resp.yaml#/responses/400" 401: @@ -238,7 +276,7 @@ paths: 503: $ref: "responses/SOL005_resp.yaml#/responses/503" delete: - summary: "Individual VNF package" + summary: Delete an individual VNF package. description: > "The DELETE method deletes an individual NS descriptor resource. parameters: @@ -252,14 +290,10 @@ paths: responses: 204: description: > - "204 No Content" - "The operation has completed successfully. The response body - shall be empty." - schema: - type: "object" - description: > - "The operation has completed successfully. The response body - shall be empty." + 204 No Content. + + The VNF package was deleted successfully. + The response body shall be empty. 409: $ref: "responses/VNFPackageManagement_resp.yaml#/responses/409" 400: @@ -281,7 +315,7 @@ paths: 503: $ref: "responses/SOL005_resp.yaml#/responses/503" patch: - summary: "Individual VNF package" + summary: Update information about an individual VNF package. description: > "The PATCH method updates the information of a VNF package." @@ -289,7 +323,7 @@ paths: Tables 9.4.3.3.4-1 and 9.4.3.3.4-2 for URI query parameters, request and response data structures, and response codes." parameters: - - name: "VnfPkgInfoModifications" + - name: "body" in: "body" required: true schema: @@ -297,10 +331,10 @@ paths: required: - "VnfPkgInfoModifications" properties: - NsdInfoModifications: + VnfPkgInfoModifications: $ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/VnfPkgInfoModifications" description: > - "Parameters for VNF package information modifications." + Parameters for VNF package information modifications. - name: Authorization description: > The authorization token for the request. @@ -315,14 +349,16 @@ paths: in: header required: true type: string + responses: 200: - description: > - "200 OK." - - "The operation was completed successfully. + description: > + 200 OK. + + The operation was completed successfully. The response body shall contain attribute - modifications for an "Individual VNF package" resource." + modifications for an "Individual VNF + package" resource headers: Content-Type: description: The MIME type of the body of the response. @@ -338,7 +374,9 @@ paths: maximum: 1 minimum: 0 schema: - $ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/VnfPkgInfoModifications" + properties: + VnfPkgInfoModifications: + $ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/VnfPkgInfoModifications" 409: $ref: "responses/VNFPackageManagement_resp.yaml#/responses/409" 400: @@ -363,7 +401,7 @@ paths: parameters: - name: "vnfPkgId" description: > - "Identifier of the VNF package. The identifier is allocated by the NFVO". + Identifier of the VNF package. The identifier is allocated by the NFVO. in: "path" required: true type: "string" @@ -376,16 +414,16 @@ paths: parameters: - name: vnfPkgId description: > - "Identifier of the on-boarded VNF package. The identifier is allocated by the NFVO." + Identifier of the on-boarded VNF package. The identifier is allocated by the NFVO. in: path type: string required: true get: - summary: "VNFD of an individual VNF package" + summary: Read VNFD of an on-boarded VNF package. description: > - "The GET method reads the content of the VNFD within a VNF package." + The GET method reads the content of the VNFD within a VNF package. - "The VNFD can be implemented as a single file or as a collection of multiple files. If the VNFD is implemented in the + The VNFD can be implemented as a single file or as a collection of multiple files. If the VNFD is implemented in the form of multiple files, a ZIP file embedding these files shall be returned. If the VNFD is implemented as a single file, either that file or a ZIP file embedding that file shall be returned. The selection of the format is controlled by the "Accept" HTTP header passed in the GET request. @@ -399,7 +437,7 @@ paths: representing the VNFD, and information necessary to navigate the ZIP file and to identify the file that is the entry point for parsing the VNFD (such as TOSCA-meta or manifest files or naming conventions) are included. This method shall follow the provisions specified in the Tables 9.4.4.3.2-1 and 9.4.4.3.2-2 for URI query parameters, - request and response data structures, and response codes." + request and response data structures, and response codes. parameters: - name: Accept description: > @@ -420,7 +458,7 @@ paths: responses: 200: description: > - OK + 200 OK. On success, the content of the VNFD is returned. The payload body shall contain a copy of the file @@ -444,8 +482,6 @@ paths: type: string maximum: 1 minimum: 0 - - 400: $ref: "responses/SOL005_resp.yaml#/responses/400" 401: @@ -479,10 +515,11 @@ paths: '/vnf_packages/{vnfPkgId}/package_content': #ETSI GS NFV-SOL 005 V2.4.1 location: 9.4.5 get: - summary: "VNF package content" + summary: Fetch an on-boarded VNF package. description: > - "The GET method fetches the content of a VNF package identified - by the VNF package identifier allocated by the NFVO." + The GET method fetches the content of a VNF package identified by the VNF package identifier allocated by the NFVO. + This method shall follow the provisions specified in the Tables 9.4.5.3.2-1 and 9.4.5.3.2-2 for URI query parameters, + request and response data structures, and response codes. parameters: - name: Accept description: > @@ -506,15 +543,15 @@ paths: type: "string" description: > The request may contain a "Range" HTTP header to obtain single - ange of bytes from the VNF package file. This can be used to - ontinue an aborted transmission. + range of bytes from the VNF package file. This can be used to + continue an aborted transmission. If the NFVO does not support range requests, it should return the whole file with a 200 OK response instead. responses: 200: description: > - OK + 200 OK. On success, a copy of the VNF package file is returned. The response body shall include a copy of the VNF package file. @@ -537,12 +574,9 @@ paths: maximum: 1 minimum: 0 206: - description: > - "Partial Content" $ref: "responses/SOL005_resp.yaml#/responses/206" 409: - description: > - "Conflict" + description: > $ref: "responses/VNFPackageManagement_resp.yaml#/responses/409-state-conflict-ONBOARDING" 416: description: > @@ -566,9 +600,12 @@ paths: $ref: "responses/SOL005_resp.yaml#/responses/503" put: - summary: "VNF package content." + summary: Upload a VNF package by providing the content of the VNF package. description: > - "The PUT method uploads the content of a VNF package." + The PUT method uploads the content of a VNF package. + This method shall follow the provisions specified in the + Tables 9.4.5.3.3-1 and 9.4.5.3.3-2 for URI query parameters, + request and response data structures, and response codes. consumes: - multipart/form-data parameters: @@ -584,15 +621,14 @@ paths: responses: 202: description: > - "202 Accepted" + 202 Accepted. - "The VNF package was accepted for uploading, but the - processing has not been completed. It is expected to - take some time for processing. - The response body shall be empty. See note." + The VNF package was accepted for uploading, but the + processing has not been completed. It is expected to + take some time for processing. + The response body shall be empty. 409: - description: > - "409 Conflict" + description: > $ref: "responses/VNFPackageManagement_resp.yaml#/responses/409-state-conflict-ONBOARDING-NOT-CREATED" 400: $ref: "responses/SOL005_resp.yaml#/responses/400" @@ -612,6 +648,8 @@ paths: $ref: "responses/SOL005_resp.yaml#/responses/503" parameters: - name: "vnfPkgId" + description: > + Identifier of the on-boarded VNF package. The identifier is allocated by the NFVO. in: "path" required: true type: "string" @@ -622,26 +660,12 @@ paths: '/vnf_packages/{vnfPkgId}/package_content/upload_from_uri': #ETSI GS NFV-SOL 005 V2.4.1 location: 9.4.6 post: - summary: "Upload VNF package from URI task." + summary: Upload a VNF package by providing the address information of the VNF package. description: > - "This task resource represents the "Upload VNF package from URI" operation. The client can use this resource to + This task resource represents the "Upload VNF package from URI" operation. The client can use this resource to request the uploading of a VNF package by providing address information to the NFVO for retrieving the content of the - VNF package. - The POST method provides the information for the NFVO to get the content of a VNF package." - + VNF package. parameters: - - name: "vnfPkgId" - in: "path" - required: true - type: "string" - - name: "UploadVnfPkgFromUriRequest" - description: > - "The payload body contains the address information based on - which the NFVO can obtain the content of the VNF package." - in: "body" - required: true - schema: - $ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/UploadVnfPkgFromUriRequest" - name: Accept description: > Content-Types that are acceptable for the response. @@ -663,16 +687,37 @@ paths: in: header required: true type: string + + - name: "vnfPkgId" + description: > + Identifier of the VNF package. The identifier is allocated by the NFVO. + in: "path" + required: true + type: "string" + + - name: "body" + in: "body" + required: true + schema: + type: "object" + required: + - "UploadVnfPkgFromUriRequest" + properties: + UploadVnfPkgFromUriRequest: + $ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/UploadVnfPkgFromUriRequest" + description: > + The payload body contains the address information based on + which the NFVO can obtain the content of the VNF package. + responses: 202: - description: > - "Accepted" + description: > + 202 Accepted. - "The information about the VNF package was received + The information about the VNF package was received successfully, but the on-boarding has not been completed. It is expected to take some time for processing. - - The response body shall be empty." + The response body shall be empty. 409: $ref: "responses/VNFPackageManagement_resp.yaml#/responses/409-state-conflict-ONBOARDING-NOT-CREATED" 400: @@ -698,26 +743,30 @@ paths: '/vnf_packages/{vnfPkgId}/artifacts/{artifactPath}': #ETSI GS NFV-SOL 005 V2.4.1 location: 9.4.6 parameters: - - name: artifactPath + - name: vnfPkgId description: > - This resource represents an individual artifact contained in a VNF package. - The client can use this resource to fetch the - content of the artifact. + Identifier of the on-boarded VNF package. + This identifier can be retrieved from the "vnfPkgId" attribute in the VnfPackageOnboardingNotification or + VnfPackageChangeNotification. in: path type: string - required: true - - name: vnfPkgId + required: true + - name: artifactPath description: > - Identifier of the on-boarded VNF package. The identifier is - allocated by the NFVO. - This identifier can be retrieved from the "vnfPkgId" - attribute in the VnfPackageOnboardingNotification or - VnfPackageChangeNotification. + Path of the artifact within the VNF package. + This identifier can be retrieved from the "artifactPath" attribute of the applicable "additionalArtifacts" entry in + the body of the response to a GET request querying the "Individual VNF package" or the "VNF packages" + resource. in: path type: string required: true get: - summary: IndividualVNF package artifact. + summary: Fetch individual VNF package artifact. + description: > + The GET method fetches the content of an artifact within a VNF package. + This method shall follow the provisions specified in the + Tables 9.4.7.3.2-1 and 9.4.7.3.2-2 for URI query parameters, + request and response data structures, and response codes. parameters: - name: Accept description: > @@ -806,82 +855,80 @@ paths: ############################################################################### '/subscriptions': post: - summary: Subscriptions - description: > - Subscribe. - + summary: Subscribe to notifications related to on-boarding and/or changes of VNF packages. + description: > The POST method creates a new subscription. - 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 VNFM, 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 method shall follow the provisions specified in the Tables 9.4.8.3.1-1 and 9.4.8.3.1-2 for URI query parameters, + request and response data structures, and response codes. + 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). parameters: - - name: PkgmSubscriptionRequest + - 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: + - "PkgmSubscriptionRequest" + properties: + PkgmSubscriptionRequest: + $ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/PkgmSubscriptionRequest" description: > Representation of the created subscription resource. The HTTP response shall include a "Location" HTTP header that points to the created subscription resource. - in: body - required: true - schema: - $ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/PkgmSubscriptionRequest" - - 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: 201: - description: > - Created + description: > + 201 Created. + Representation of the created subscription resource. - The HTTP response shall include a "Location" HTTP header that - points to the created subscription resource. + The HTTP response shall include a "Location" + HTTP header that points to the created subscription resource. 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 VNF instance - type: string - format: url 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. - type: string - maximum: 1 - minimum: 0 + request has provided an invalid authorization token. schema: type: array items: - $ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/PkgmSubscription" + properties: + PkgmSubscription: + $ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/PkgmSubscription" 303: $ref: "responses/SOL005_resp.yaml#/responses/303" 400: @@ -904,24 +951,24 @@ paths: $ref: "responses/SOL005_resp.yaml#/responses/503" get: summary: > - Query Subscription Information - description: > - Query Subscription Information - - 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. + 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 follow the provisions specified in the + Tables 9.4.7.8.2-1 and 9.4.8.3.2-2 for URI query parameters, + request and response data structures, and response codes. parameters: - name: "filter" in: "query" required: false type: "string" description: > - "Attribute-based filtering parameters according to clause 4.3.2. + 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 PkgmSubscription and in data types - referenced from it shall be supported in attribute-based filtering parameters." + referenced from it shall be supported in attribute-based filtering parameters - name: Accept description: > Content-Types that are acceptable for the response. @@ -938,10 +985,10 @@ paths: type: string responses: 200: - description: > - OK - Active subscriptions of the functional block that invokes the - method. + description: > + 200 OK. + + Active subscriptions of the functional block that invokes the method. headers: Content-Type: description: The MIME type of the body of the response. @@ -949,17 +996,17 @@ paths: maximum: 1 minimum: 1 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. - type: string - maximum: 1 - minimum: 0 + request has provided an invalid authorization token. schema: type: array items: - $ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/PkgmSubscription" + properties: + PkgmSubscription: + $ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/PkgmSubscription" 400: $ref: "responses/SOL005_resp.yaml#/responses/400" 401: @@ -997,7 +1044,7 @@ paths: required: true get: summary: > - Query Subscription Information + Read an individual subscription resource. description: > Query Subscription Information The GET method reads an individual subscription. @@ -1018,9 +1065,9 @@ paths: type: string responses: 200: - description: > - OK - + description: > + 200 OK. + Representation of the subscription resource. headers: Content-Type: @@ -1029,15 +1076,15 @@ paths: maximum: 1 minimum: 1 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. - type: string - maximum: 1 - minimum: 0 + request has provided an invalid authorization token. schema: - $ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/PkgmSubscription" + properties: + NsdInfo: + $ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/PkgmSubscription" 400: $ref: "responses/SOL005_resp.yaml#/responses/400" 401: @@ -1058,10 +1105,8 @@ paths: $ref: "responses/SOL005_resp.yaml#/responses/503" delete: summary: > - Terminate subscription - description: > - Terminate subscription - + Terminate a subscription. + description: > The DELETE method terminates an individual subscription. parameters: - name: Authorization @@ -1074,7 +1119,7 @@ paths: responses: 204: description: > - No Content + No Content. The subscription resource was deleted successfully. headers: @@ -1102,5 +1147,118 @@ paths: $ref: "responses/SOL005_resp.yaml#/responses/416" 500: $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + +############################################################################### +# 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': + #SOL005 location: 8.2-1 + post: + summary: > + Notify about VNF package on boarding or change. + description: > + The POST method delivers a notification from the server to the client. + This method shall follow the provisions specified in the + Tables 9.4.10.3.1-1 and 9.4.10.3.1-2 for URI query parameters, + request and response data structures, and response codes. + + # Don't know how to pass multiple body parameters in the POST request. + # Jenkin build is failing if enable more than one body parameters, So commented body parameters. + parameters: + - name: VnfPackageOnboardingNotification + description: > + Notification about performance information availability. + in: body + required: true + schema: + properties: + VnfPackageOnboardingNotification: + $ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/VnfPackageOnboardingNotification" + #- name: VnfPackageChangeNotification + # description: > + # Notification about threshold crossing. + # in: body + # required: true + # schema: + # properties: + # VnfPackageChangeNotification: + # $ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/VnfPackageChangeNotification" + - 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. + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 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 9.4.10.3.2-1 and 9.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: > + The notification endpoint was tested successfully. + The response body shall be empty. + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" 503: $ref: "responses/SOL005_resp.yaml#/responses/503" \ No newline at end of file diff --git a/src/SOL005/VNFPackageManagement/definitions/SOL005VNFPMManagement_def.yaml b/src/SOL005/VNFPackageManagement/definitions/SOL005VNFPMManagement_def.yaml index 4310fa3e7e7c9542fe6ec05599863924f829ea68..348cf81b935c6d0b4e022d295119eddd793b5b08 100644 --- a/src/SOL005/VNFPackageManagement/definitions/SOL005VNFPMManagement_def.yaml +++ b/src/SOL005/VNFPackageManagement/definitions/SOL005VNFPMManagement_def.yaml @@ -37,20 +37,20 @@ definitions: This information is copied from the VNFD. It shall be present after the VNF package content has been on-boarded and absent otherwise. - $ref: "#/definitions/Version" + $ref: "SOL005_def.yaml#/definitions/Version" vnfdVersion: description: > The version of the VNFD. This information is copied from the VNFD. It shall be present after the VNF package content has been on-boarded and absent otherwise. - $ref: "#/definitions/Version" + $ref: "SOL005_def.yaml#/definitions/Version" checksum: description: > Checksum of the on-boarded VNF package. It shall be present after the VNF package content has been on-boarded and absent otherwise. - $ref: "#/definitions/Checksum" + $ref: "SOL005_def.yaml#/definitions/Checksum" softwareImages: description: > Information about VNF package artifacts that are software images. @@ -60,34 +60,80 @@ definitions: type: "array" items: $ref: "#/definitions/VnfPackageSoftwareImageInfo" - - Version: - description: > - Software version of the VNF. This is - changed when there is any change to the - software included in the VNF package. - This information is copied from the VNFD. - It shall be present after the VNF package - content has been on-boarded and absent otherwise. - type: string - - Checksum: + additionalArtifacts: + description: > + Information about VNF package artifacts + contained in the VNF package that are not software images. + This attribute shall not be present before + the VNF package content is on-boarded. + Otherwise, this attribute shall be present if + the VNF package contains additional artifacts. + type: "array" + items: + $ref: "#/definitions/VnfPackageArtifactInfo" + onboardingState: + description: > + On-boarding state of the VNF package. + $ref: "#/definitions/PackageOnboardingStateType" + operationalState: + description: > + Operational state of the VNF package. + $ref: "#/definitions/PackageOperationalStateType" + usageState: + description: > + Usage state of the VNF package. + $ref: "#/definitions/PackageUsageStateType" + userDefinedData: + description: > + Usage state of the VNF package. + $ref: "SOL005_def.yaml#/definitions/KeyValuePairs" + _links: + type: object + description: > + Links to resources related to this resource. + required: + - self + - packageContent + properties: + self: + description: > + URI of this resource. + $ref: "SOL005_def.yaml#/definitions/Link" + vnfd: + description: > + Link to the VNFD resource. This link shall + be present after the VNF package content + is on-boarded. + $ref: "SOL005_def.yaml#/definitions/Link" + packageContent: + description: > + Link to the "VNF package content" resource. + $ref: "SOL005_def.yaml#/definitions/Link" + + VnfPackageArtifactInfo: description: > - This type represents the checksum of a VNF package or an artifact file. + This type represents an artifact other than a software image which is contained in a VNF package. + It shall comply with provisions defined in Table 9.5.3.3-1. required: - - algorithm - - hash + - artifactPath + - checksum type: object properties: - algorithm: + artifactPath: description: > - Name of the algorithm used to generate the checksum, - as defined in ETSI GS NFV-SOL 004 [5]. For example, SHA-256, SHA-512. - type: string - hash: + Path in the VNF package, which identifies the artifact + and also allows to access a copy of the artifact. + $ref: "SOL005_def.yaml#/definitions/String" + checksum: description: > - The hexadecimal value of the checksum. - type: string + Checksum of the artifact file. + $ref: "SOL005_def.yaml#/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: "SOL005_def.yaml#/definitions/KeyValuePairs" + PkgmLinks: description: > This type represents the links to resources that a VNF package management notification can contain. @@ -99,13 +145,14 @@ definitions: vnfPackage: description: > Link to the resource representing the VNF package to - which the notified change applies, i.e. the individual onboarded + which the notified change applies, i.e. the individual on boarded VNF package resource that represents the VNF package. $ref: "SOL005_def.yaml#/definitions/Link" subscription: description: > Link to the related subscription. - $ref: "SOL005_def.yaml#/definitions/Link" + $ref: "SOL005_def.yaml#/definitions/Link" + VnfPackageSoftwareImageInfo: description: > This type represents an artifact contained in a VNF package which represents a software image. @@ -140,23 +187,22 @@ definitions: version: description: > Version of the software image. - $ref: "#/definitions/Version" + $ref: "SOL005_def.yaml#/definitions/Version" checksum: description: > Checksum of the software image file. - $ref: "#/definitions/Checksum" + $ref: "SOL005_def.yaml#/definitions/Checksum" containerFormat: description: > Container format indicates whether the software image - is in a file format that also contains metadata about the actual software. + is in a file format that also contains meta-data about the actual software. Permitted values: - AKI: a kernel image format - AMI: a machine image format - - ARI: a ramdisk image format - - BARE: the image does not have a container or - metadata envelope + - ARI: a ram disk image format + - BARE: the image does not have a container or meta-data envelope - DOCKER: docker container format - - OVA: OVF package in a tarfile + - OVA: OVF package in a tar file - OVF: OVF container format type: string enum: @@ -244,7 +290,20 @@ definitions: enum: - "ENABLED" - "DISABLED" - + PackageOnboardingStateType: + description: > + The enumeration PackageOnboardingStateType shall comply with the provisions defined in Table 9.5.4.3-1. + Permitted values: + - CREATED: The 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 is successfully on-boarded. + type: string + enum: + - CREATED + - UPLOADING + - PROCESSING + - ONBOARDED PackageUsageStateType: type: "string" description: > @@ -262,10 +321,8 @@ definitions: userDefinedData: $ref: "SOL005_def.yaml#/definitions/KeyValuePairs" description: > - "This type represents the request parameters for creating - a new individual VNF package resource. It shall comply with - the provisions defined in Table 9.5.2.2-1." - + IndividualVNF package resource creation parameters, as defined + in clause 9.5.2.2. VnfPkgInfoModifications: description: > This type represents modifications to the information of a VNF package. @@ -328,7 +385,8 @@ definitions: PkgmSubscriptionRequest: description: > - This type represents a subscription request related to VNF package management notifications about VNF package on boarding or changes. + This type represents a subscription request related to VNF package management + notifications about VNF package on boarding or changes. type: object required: - callbackUri @@ -414,7 +472,7 @@ definitions: vnfSoftwareVersion: description: > VNF software version to match - $ref: "#/definitions/Version" + $ref: "SOL005_def.yaml#/definitions/Version" vnfdVersions: description: > If present, match VNF packages that contain @@ -423,7 +481,7 @@ definitions: name, from one particular provider. type: array items: - $ref: "#/definitions/Version" + $ref: "SOL005_def.yaml#/definitions/Version" vnfdId: description: > @@ -463,4 +521,138 @@ definitions: absent otherwise. type: array items: - $ref: "#/definitions/PackageUsageStateType" \ No newline at end of file + $ref: "#/definitions/PackageUsageStateType" + + VnfPackageOnboardingNotification: + description: > + This type represents a VNF package management notification, which informs the receiver that the on boarding process + of a VNF package incomplete and the package is ready for use. A change of the on-boarding state before the VNF + package is on-boarded is not reported. It shall comply with the provisions defined in Table 9.5.2.8-1. The support of this + notification is mandatory. The notification shall be triggered by the NFVO when the value of the "onboardingState" + attribute of a new VNF package has changed to "ONBOARDED". + type: object + required: + - id + - notificationType + - timeStamp + - vnfPkgId + - vnfdId + - _links + properties: + id: + description: > + Identifier of this notification. If a notification is sent + multiple times due to multiple subscriptions, the "id" + attribute of all these notifications shall have the same value. + $ref: "SOL005_def.yaml#/definitions/Identifier" + notificationType: + description: > + Discriminator for the different notification types. + Shall be set to "VnfPackageOnboardingNotification" for + this notification type. + type: string + subscriptionId: + description: > + Identifier of the subscription that this notification relates to. + $ref: "SOL005_def.yaml#/definitions/Identifier" + timeStamp: + description: > + Date and time of the generation of the notification. + $ref: "SOL005_def.yaml#/definitions/DateTime" + vnfPkgId: + description: > + Identifier of the on-boarded VNF package. This identifier + is allocated by the NFVO. + Its value is the same as the value of the "id" attribute of + the related "Individual VNF package" resource. + $ref: "SOL005_def.yaml#/definitions/Identifier" + vnfdId: + description: > + This identifier, which is managed by the VNF provider, + identifies the VNF package and the VNFD in a globally + unique way. + It is copied from the VNFD of the on-boarded VNF package. + $ref: "SOL005_def.yaml#/definitions/Identifier" + _links: + description: > + Links to resources related to this notification. + $ref: "#/definitions/PkgmLinks" + + VnfPackageChangeNotification: + description: > + This type represents a VNF package management notification, which informs the receiver of a change of the status in an + on-boarded VNF package. Only changes in the "operationalState" attribute of an on-boarded VNF package and the + deletion of the VNF package will be reported. Change in the "usageState" and "onboardingState" attributes are not + reported. The notification shall comply with the provisions defined in Table 9.5.2.9-1. The support of this notification is + mandatory. The notification shall be triggered by the NFVO when there is a change in the status of an onboarded VNF + package, as follows. + • The "operationalState" attribute of a VNF package has changed, and the "onboardingState" attribute of the + package has the value "ONBOARDED". + • The on-boarded VNF package has been deleted. + type: object + required: + - id + - notificationType + - timeStamp + - vnfPkgId + - vnfdId + - changeType + - _links + properties: + id: + description: > + Identifier of this notification. If a notification is sent + multiple times due to multiple subscriptions, the "id" + attribute of all these notifications shall have the same value. + $ref: "SOL005_def.yaml#/definitions/Identifier" + notificationType: + description: > + Discriminator for the different notification types. + Shall be set to "VnfPackageChangeNotification" for this + notification type. + type: string + subscriptionId: + description: > + Identifier of the subscription that this notification relates to. + $ref: "SOL005_def.yaml#/definitions/Identifier" + timeStamp: + description: > + Date and time of the generation of the notification. + $ref: "SOL005_def.yaml#/definitions/DateTime" + vnfPkgId: + description: > + Identifier of the on-boarded VNF package. This identifier + is allocated by the NFVO. + Its value is the same as the value of the "id" attribute of + the related "Individual VNF package" resource. + $ref: "SOL005_def.yaml#/definitions/Identifier" + vnfdId: + description: > + Identifier of the VNFD contained in the VNF package, + which also identifies the VNF package. This identifier is + allocated by the VNF provider and copied from the VNFD. + $ref: "SOL005_def.yaml#/definitions/Identifier" + changeType: + description: > + The type of change of the VNF package. + $ref: "#/definitions/PackageChangeType" + operationalState: + description: > + New operational state of the VNF package. + Only present when changeType is OP_STATE_CHANGE. + $ref: "#/definitions/PackageOperationalStateType" + _links: + description: > + Links to resources related to this notification. + $ref: "#/definitions/PkgmLinks" + + PackageChangeType: + type: "string" + description: > + The enumeration PackageChangeType shall comply with the provisions defined in Table 9.5.4.6-1. + Permitted Values: + - OP_STATE_CHANGE: The "operationalState" attribute has been changed. + - PKG_DELETE: The VNF package has been deleted. + enum: + - "OP_STATE_CHANGE" + - "PKG_DELETE" \ No newline at end of file diff --git a/src/SOL005/VNFPackageManagement/definitions/SOL005_def.yaml b/src/SOL005/VNFPackageManagement/definitions/SOL005_def.yaml index f49c5f48542700650aeb61aaf424af2c235668f5..4542b7ed22733fba8a4e9ec850dbf1678dfd1e13 100644 --- a/src/SOL005/VNFPackageManagement/definitions/SOL005_def.yaml +++ b/src/SOL005/VNFPackageManagement/definitions/SOL005_def.yaml @@ -42,7 +42,6 @@ type: object ProblemDetails: - #SOL005 location: 4.3.5.3-1 description: > The definition of the general "ProblemDetails" data structure from IETF RFC 7807 [19] is reproduced inthis structure. Compared to the @@ -105,8 +104,34 @@ Uri: description: > String formatted according to IETF RFC 3986. + type: string + Version: + description: > + Software version of the VNF. This is + changed when there is any change to the + software included in the VNF package. + This information is copied from the VNFD. + It shall be present after the VNF package + content has been on-boarded and absent otherwise. type: string - + Checksum: + description: > + This type represents the checksum of a VNF package or an artifact file. + required: + - algorithm + - hash + type: object + properties: + algorithm: + description: > + Name of the algorithm used to generate the checksum, + as defined in ETSI GS NFV-SOL 004 [5]. For example, SHA-256, SHA-512. + type: string + hash: + description: > + The hexadecimal value of the checksum. + type: string + SubscriptionAuthentication: type: object required: diff --git a/src/SOL005/VNFPackageManagement/responses/SOL005_resp.yaml b/src/SOL005/VNFPackageManagement/responses/SOL005_resp.yaml index 40364854d71edef034a6b54caa125adab649586f..e154ce9dbac3ca9f2af41d9eadc232bafc358d84 100644 --- a/src/SOL005/VNFPackageManagement/responses/SOL005_resp.yaml +++ b/src/SOL005/VNFPackageManagement/responses/SOL005_resp.yaml @@ -49,7 +49,7 @@ minimum: 0 206: description: > - Partial Content + Partial Content. On success, if the NFVO supports range requests, a single consecutive byte range from the content of the diff --git a/src/SOL005/VNFPackageManagement/responses/VNFPackageManagement_resp.yaml b/src/SOL005/VNFPackageManagement/responses/VNFPackageManagement_resp.yaml index b99795f14668dd2a31a0fa5aa36abdcb9e27c60a..7d7e9d93c0f30c2b92e88c1ad92dcce960be6bda 100644 --- a/src/SOL005/VNFPackageManagement/responses/VNFPackageManagement_resp.yaml +++ b/src/SOL005/VNFPackageManagement/responses/VNFPackageManagement_resp.yaml @@ -74,7 +74,7 @@ $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" 409: description: > - Conflict + Conflict. Error: The operation cannot be executed currently, due to a conflict with the state of @@ -110,7 +110,7 @@ 409-another-nsd-operation-ongoing: description: > - Conflict + Conflict. The operation cannot be executed currently, due to a conflict with the state of the NS instance resource. @@ -136,7 +136,7 @@ $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" 409-inconsistent-state: description: > - Conflict + Conflict. Another request is in progress that prohibits the fulfilment of the current request, or the current resource state is inconsistent @@ -159,7 +159,7 @@ $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" 409-state-conflict-INSTANTIATED: description: > - Conflict + Conflict. The operation cannot be executed currently, due to a conflict with the state of the NS instance resource. @@ -210,7 +210,7 @@ $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" 409-state-conflict-NOT-INSTANTIATED: description: > - Conflict + Conflict. The operation cannot be executed currently, due to a conflict with the state of the NS instance resource. @@ -237,7 +237,7 @@ $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" 409-state-conflict-ONBOARDING: description: > - Conflict + Conflict. Error: The operation cannot be executed currently, due to a conflict with the state of the resource. @@ -264,11 +264,11 @@ $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" 409-state-conflict-ONBOARDING-NOT-CREATED: description: > - Conflict + 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 the onboarding + Typically, this is due to the fact that the on boarding state of the VNF package resource is not CREATED . The response body shall contain a ProblemDetails structure, in which the "detail" attribute shall convey