From d803cf7f8a1b0af689dc158f88f22523b3235ef6 Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Thu, 18 Jul 2019 12:45:40 +0200 Subject: [PATCH] updates to SOL005 VNF Pckg mgmt --- .../VNFPackageManagement.yaml | 193 ++++++++++-------- .../SOL005VNFPackageManagement_def.yaml | 12 +- .../VNFPackageManagementNotification.yaml | 78 ++++++- 3 files changed, 189 insertions(+), 94 deletions(-) diff --git a/src/SOL005/VNFPackageManagement/VNFPackageManagement.yaml b/src/SOL005/VNFPackageManagement/VNFPackageManagement.yaml index 46bcc7d..4e19c10 100644 --- a/src/SOL005/VNFPackageManagement/VNFPackageManagement.yaml +++ b/src/SOL005/VNFPackageManagement/VNFPackageManagement.yaml @@ -65,39 +65,39 @@ paths: 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. + Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV SOL 013. + The NFVO shall support receiving this parameter as part of the URI query string. + The OSS/BSS may supply this parameter. 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 by the NFVO in the filter expression. - 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 5.3 of ETSI GS NFV SOL 013 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 5.3 of ETSI GS NFV SOL 013 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 5.3 of ETSI GS NFV SOL 013 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. + Indicates to exclude the following complex attributes from the response. + See clause 5.3 of ETSI GS NFV-SOL 013 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", @@ -106,6 +106,14 @@ paths: - additionalArtifacts - userDefinedData - checksum + - name: nextpage_opaque_marker + in: query + required: false + type: string + description: > + Marker to obtain the next page of a paged response. + Shall be supported by the NFVO if the NFVO supports alternative 2 (paging) according to + clause 5.4.2.1 of ETSI GS NFV SOL 013 for this resource. - name: Accept description: > Content-Types that are acceptable for the response. @@ -118,7 +126,16 @@ paths: description: > 200 OK - Information of the selected VNF packages. + Shall be returned when information about zero or more VNF packages has been queried successfully. + The response body shall contain in an array the VNF package info representations that match + the attribute filter, i.e. zero or more VNF package info representations as defined in clause 9.5.2.5. + If the "filter" URI parameter or one of the "all_fields", "fields", "exclude_fields" or + "exclude_default" URI parameters was supplied in the request and is supported, the data in the + response body shall have been transformed according to the rules specified in clauses 5.2.2 and + 5.3.2 of ETSI GS NFV SOL 013, respectively. + 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. @@ -269,7 +286,8 @@ paths: description: > 200 OK - Information of the VNF package. + Shall be returned when information of the VNF package has been read successfully. + The response body shall contain the VNF package info representation defined in clause 9.5.2.5. schema: $ref: "definitions/SOL005VNFPackageManagement_def.yaml#/definitions/VnfPkgInfo" headers: @@ -320,7 +338,7 @@ paths: description: > 204 No Content - The VNF package was deleted successfully. + The VNF package has been deleted successfully. The response body shall be empty. headers: Version: @@ -378,10 +396,8 @@ paths: description: > 200 OK - The operation was completed successfully. - The response body shall contain attribute - modifications for an "Individual VNF - package" resource + Shall be returned when the operation has been completed successfully. + The response body shall contain attribute modifications for an "Individual VNF package" resource. headers: Content-Type: description: The MIME type of the body of the response. @@ -487,14 +503,11 @@ paths: description: > 200 OK - On success, the content of the VNFD is returned. - The payload body shall contain a copy of the file - representing the VNFD or a ZIP file that contains the - file or multiple files representing the VNFD, as - specified above. - The "Content-Type" HTTP header shall be set - according to the format of the returned file, i.e. to - "text/plain" for a YAML file or to "application/zip" for a ZIP file. + Shall be returned when the content of the VNFD has been read successfully. + The payload body shall contain a copy of the file representing the VNFD or a ZIP file that + contains the file or multiple files representing the VNFD, as specified above. + The "Content-Type" HTTP header shall be set according to the format of the returned file, + i.e. to "text/plain" for a YAML file or to "application/zip" for a ZIP file. headers: Content-Type: description: The MIME type of the body of the response. @@ -592,12 +605,10 @@ paths: description: > 200 OK - On success, a copy of the VNF package file is returned. + Shall be returned when the whole content of the VNF package file has been read successfully. The response body shall include a copy of the VNF package file. - The "Content-Type" HTTP header shall be set - according to the type of the file, i.e. to "application/zip" - for a VNF Package as defined in ETSI - GS NFV-SOL 004 [5]. + The "Content-Type" HTTP header shall be set according to the type of the file, i.e. to + "application/zip" for a VNF Package as defined in ETSI GS NFV-SOL 004. headers: Content-Type: description: The MIME type of the body of the response. @@ -665,18 +676,18 @@ paths: type: file description: > The payload body contains a ZIP file that represents the VNF package. - The "Content-Type" HTTP header shall be set according to the - type of the file, i.e. to "application/zip" for a VNF Package as - defined in ETSI GS NFV-SOL 004 [5]. + The "Content-Type" HTTP header shall be set according to the type of the file, + i.e. to "application/zip" for a VNF Package as defined in ETSI GS NFV-SOL 004. responses: 202: description: > 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 VNF package has been 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. + The client can track the uploading progress by receiving the "VnfPackageOnBoardingNotification" + from the NFVO or by reading the status of the individual VNF package resource using the GET method. headers: Version: description: > @@ -756,9 +767,8 @@ paths: description: > 202 Accepted - 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 information about the VNF package has been 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. headers: Version: @@ -803,10 +813,11 @@ paths: required: true - name: artifactPath description: > - 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. + Sequence of one or path segments representing the path of the artifact within the VNF package, + relative to the root of the 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 @@ -850,13 +861,12 @@ paths: 200: description: > 200 OK - On success, the content of the artifact is returned. - The payload body shall contain a copy of the artifact file from - the VNF package, as defined by ETSI GS NFV-SOL 004. - The "Content-Type" HTTP header shall be set according to the - content type of the artifact file. If the content type cannot be - determined, the header shall be set to the value - "application/octet-stream". + Shall be returned when the whole content of the artifact file has been read successfully. + The payload body shall contain a copy of the artifact file from the VNF package, + as defined by ETSI GS NFV-SOL 004. + The "Content-Type" HTTP header shall be set according to the content + type of the artifact file. If the content type cannot be determined, the header shall + be set to the value "application/octet-stream. headers: Content-Type: description: The MIME type of the body of the response. @@ -880,15 +890,14 @@ paths: 206: description: > Partial Content. - On success, if the NFVO supports range requests, a single - consecutive byte range from the content of the VNF package file is - returned. - The response body shall contain the requested part of the VNF - package file. - The "Content-Range" HTTP header shall be provided according to - IETF RFC 7233. - The "Content-Type" HTTP header shall be set as defined above for - the "200 OK" response. + + If the NFVO supports range requests, this response shall be returned when a single consecutive byte + range from the content of the artifact file has been read successfully according to the request. + The response body shall contain the requested part of the artifact file from the VNF package, as defined + by ETSI GS NFV-SOL 004. + The "Content-Type" HTTP header shall be set according to the content type of the artifact file. + If the content type cannot be determined, the header shall be set to the value "application/octet-stream". + The "Content-Range" HTTP header shall be provided according to IETF RFC 7233. headers: Content-Range: type: string @@ -951,14 +960,17 @@ paths: summary: Subscribe to notifications related to on-boarding and/or changes of VNF packages. description: > The POST method creates a new subscription. - 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). + 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. + As the result of successfully executing this method, a new "Individual subscription" resource shall exist + as defined in clause 9.4.9. This method shall not trigger any notification. + 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: Accept description: > @@ -988,9 +1000,9 @@ paths: 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. + Shall be returned when the subscription has been 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. headers: Content-Type: description: The MIME type of the body of the response. @@ -1049,11 +1061,18 @@ paths: 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 PkgmSubscription and in data types - referenced from it shall be supported in attribute-based filtering parameters + Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV SOL 013. + The NFVO shall support receiving this filtering parameter as part of the URI query string. + The OSS/BSS may supply this filtering parameter. + All attribute names that appear in the PkgmSubscription and in data types referenced from it + shall be supported by the NFVO in the filtering expression + - name: nextpage_opaque_marker + in: query + required: false + type: string + description: > + Marker to obtain the next page of a paged response. Shall be supported by the NFVO if the NFVO + supports alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource. - name: Accept description: > Content-Types that are acceptable for the response. @@ -1066,7 +1085,15 @@ paths: description: > 200 OK - Active subscriptions of the functional block that invokes the method. + Shall be returned when the list of subscriptions has been queried successfully. + The response body shall contain in an array the representations of all active subscriptions of the + functional block that invokes the method, i.e. zero or more representations of VNF package management + subscriptions, as defined in clause 9.5.2.7. + If the "filter" URI parameter was supplied in the request, the data in the response body shall have been + transformed according to the rules specified in clause 5.2.2 of ETSI GS NFV-SOL 013. + 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. @@ -1157,7 +1184,8 @@ paths: description: > 200 OK - Representation of the subscription resource. + Shall be returned when information about an individual subscription has been read successfully. + The response body shall contain a representation of the subscription resource. headers: Content-Type: description: The MIME type of the body of the response. @@ -1202,12 +1230,17 @@ paths: summary: Terminate a subscription. description: > The DELETE method terminates an individual subscription. + This method shall follow the provisions specified in the Tables 9.4.9.3.5-1 and 9.4.9.3.5-2 for + URI query parameters, request and response data structures, and response codes. + As the result of successfully executing this method, the "Individual subscription" resource shall + not exist any longer. This means that no notifications for that subscription shall be sent to the formerly-subscribed API consumer. + NOTE: Due to race conditions, some notifications might still be received by the formerly-subscribed API consumer for a certain time period after the deletion. responses: 204: description: > No Content - The subscription resource was deleted successfully. + Shall be returned when the subscription resource washas been deleted successfully. headers: WWW-Authenticate: type: string diff --git a/src/SOL005/VNFPackageManagement/definitions/SOL005VNFPackageManagement_def.yaml b/src/SOL005/VNFPackageManagement/definitions/SOL005VNFPackageManagement_def.yaml index 0a55d1d..1831006 100644 --- a/src/SOL005/VNFPackageManagement/definitions/SOL005VNFPackageManagement_def.yaml +++ b/src/SOL005/VNFPackageManagement/definitions/SOL005VNFPackageManagement_def.yaml @@ -101,9 +101,7 @@ definitions: $ref: "../../definitions/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. + Link to the VNFD resource. $ref: "../../definitions/SOL005_def.yaml#/definitions/Link" packageContent: description: > @@ -121,8 +119,10 @@ definitions: properties: artifactPath: description: > - Path in the VNF package, which identifies the artifact - and also allows to access a copy of the artifact. + 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 $ref: "../../definitions/SOL005_def.yaml#/definitions/String" checksum: description: > @@ -410,7 +410,7 @@ definitions: description: > Authentication parameters to conFigure the use of authorization when sending notifications corresponding - to this subscription, as defined in clause 4.5.3.4. + 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/SOL005_def.yaml#/definitions/SubscriptionAuthentication" diff --git a/src/SOL005/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml b/src/SOL005/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml index 898bc35..5054757 100644 --- a/src/SOL005/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml +++ b/src/SOL005/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml @@ -30,10 +30,8 @@ paths: post: summary: Notify about VNF package onboarding 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. + The POST method delivers a notification from the API producer to an API consumer. + The API consumer shall have previously created an "individual subscription resource" with a matching filter. parameters: - name: VnfPackageOnboardingNotification description: > @@ -74,7 +72,7 @@ paths: description: > 204 No Content - The notification was delivered successfully. + Shall be returned when the notification has been delivered successfully. headers: WWW-Authenticate: type: string @@ -101,6 +99,71 @@ paths: 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. + 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: Version + description: > + Version of the API requested to use when responding to this request. + in: header + required: true + type: string + responses: + 204: + description: > + 204 No Content + + Shall be returned to indicate that the notification endpoint has been tested successfully. + The response body shall be empty. + headers: + 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. + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + type: string + maximum: 1 + minimum: 1 + 400: + $ref: "../responses/SOL005_resp.yaml#/responses/400" + 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" + 500: + $ref: "../responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "../responses/SOL005_resp.yaml#/responses/503" + '/URI_is_provided_by_the_client_when_creating_the_subscription-VnfPackageChangeNotification': post: summary: Notify about VNF package onboarding or change @@ -149,7 +212,8 @@ paths: description: > 204 No Content - The notification was delivered successfully. + Shall be returned to indicate that the notification endpoint has been tested successfully. + The response body shall be empty. headers: WWW-Authenticate: type: string @@ -181,8 +245,6 @@ paths: 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: > -- GitLab