diff --git a/Readme.md b/Readme.md index d6dc8fec7fec55d501d01827b45d4deabd281733..a60fa584b481ae8e9c95f2947db7b7b7b45c21a8 100644 --- a/Readme.md +++ b/Readme.md @@ -1,7 +1,7 @@ # NFV SOL005 APIs This repository hosts the [OpenAPI](https://www.openapis.org/) specificatons and other documentation -for the APIs defined in ETSI NFV GSs [SOL005](https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.07.01_60/gs_NFV-SOL005v020701p.pdf). +for the APIs defined in ETSI NFV GSs [SOL005](https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.08.01_60/gs_NFV-SOL005v020801p.pdf). The APIs described in this repository are defined for the `Os-Ma-nfvo` reference point. diff --git a/src/SOL005/APIVersion/APIVersion.yaml b/src/SOL005/APIVersion/APIVersion.yaml index 64736fc666076f15e7049152126763e29df360db..8b3eb88085145e4a5d24c46c3eefd4b8c42e2d57 100644 --- a/src/SOL005/APIVersion/APIVersion.yaml +++ b/src/SOL005/APIVersion/APIVersion.yaml @@ -9,7 +9,7 @@ info: 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 Group Specification takes precedence. - Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis + Please report bugs to https://forge.etsi.org/rep/nfv/SOL005/issues license: name: "ETSI Forge copyright notice" url: https://forge.etsi.org/etsi-forge-copyright-notice.txt @@ -17,8 +17,8 @@ info: name: "NFV-SOL WG" externalDocs: - description: ETSI GS NFV-SOL 005 V2.7.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.07.01_60/gs_NFV-SOL005v020701p.pdf + description: ETSI GS NFV-SOL 005 V2.8.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.08.01_60/gs_NFV-SOL005v020801p.pdf schemes: - http diff --git a/src/SOL005/NSDManagement/NSDManagement.yaml b/src/SOL005/NSDManagement/NSDManagement.yaml index 4fe3238653cd38358835e3122889d80b6fb4a55d..840a9f59ff5dac6956b1346a51ed3e18c67c1126 100644 --- a/src/SOL005/NSDManagement/NSDManagement.yaml +++ b/src/SOL005/NSDManagement/NSDManagement.yaml @@ -9,7 +9,7 @@ info: 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 Group Specification takes precedence. - Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis + Please report bugs to https://forge.etsi.org/rep/nfv/SOL005/issues license: name: "ETSI Forge copyright notice" url: https://forge.etsi.org/etsi-forge-copyright-notice.txt @@ -17,8 +17,8 @@ info: name: "NFV-SOL WG" externalDocs: - description: ETSI GS NFV-SOL 005 V2.7.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.07.01_60/gs_NFV-SOL005v020701p.pdf + description: ETSI GS NFV-SOL 005 V2.8.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.08.01_60/gs_NFV-SOL005v020801p.pdf basePath: /nsd/v2 @@ -60,7 +60,6 @@ paths: type: string post: - summary: Create a new NS descriptor resource. description: > The POST method is used to create a new NS descriptor resource. parameters: @@ -139,7 +138,6 @@ paths: $ref: "../responses/SOL005_resp.yaml#/responses/504" get: - summary: Query information about multiple NS descriptor resources. description: > The GET method queries information about multiple NS descriptor resources. parameters: @@ -181,7 +179,7 @@ paths: description: > Indicates to exclude the following complex attributes from the response. See clause 5.3 of ETSI GS NFV SOL 013 for details. - The VNFM shall support this parameter. + The NFVO shall support this parameter. The following attributes shall be excluded from the NsdInfo structure in the response body if this parameter is provided, or none of the parameters "all_fields," "fields", "exclude_fields", "exclude_default" are provided: @@ -293,7 +291,6 @@ paths: type: string get: - summary: Read information about an individual NS descriptor resource. description: > The GET method reads information about an individual NS descriptor. parameters: @@ -356,7 +353,6 @@ paths: $ref: "../responses/SOL005_resp.yaml#/responses/504" patch: - summary: Modify the operational state and/or the user defined data of an individual NS descriptor resource. description: > The PATCH method modifies the operational state and/or user defined data of an individual NS descriptor resource. This method can be used to: @@ -450,7 +446,6 @@ paths: $ref: "../responses/SOL005_resp.yaml#/responses/504" delete: - summary: Delete an individual NS descriptor resource. description: > The DELETE method deletes an individual NS descriptor resource. An individual NS descriptor resource can only be deleted when there is no NS instance using it (i.e. usageState = @@ -551,7 +546,6 @@ paths: type: string get: - summary: Fetch the content of a NSD. description: > The GET method fetches the content of the NSD archive. The NSD archive is implemented as a single zip file. @@ -685,7 +679,6 @@ paths: $ref: "../responses/SOL005_resp.yaml#/responses/504" put: - summary: Upload the content of a NSD. description: > The PUT method is used to upload the content of an NSD archive. The NSD to be uploaded is implemented as a single ZIP file as defined in clause 5.4.4.3.2. @@ -828,21 +821,27 @@ paths: • If the "Accept" header contains both "text/plain" and "application/zip", it is up to the NFVO to choose the format to return for a single-file NSD; for a multi-file NSD, a ZIP file shall be returned. - The default format of the ZIP file shall be the one specified in ETSI GS NFV-SOL 007 - where only the YAML files representing the NSD, and information necessary to navigate - the ZIP file and to identify the file that is the entry point for parsing the NSD and - (if requested) further security information are included. This means that the content - of the ZIP archive shall contain the following files from the NSD archive: - • TOSCA.meta (if available in the NSD archive); - • the main service template (either as referenced from TOSCA.meta or available as a - file with the extension ".yml" or ".yaml" from the root of the archive); - • every component of the NSD referenced (recursively) from the main service template; - • the related security information, if the "include_signatures" URI parameter is provided, as follows: - - the manifest file; - - the singleton certificate file in the root of the NSD archive (if available in the NSD archive); - - the signing certificates of the individual files included in the ZIP archive - (if available in the NSD archive); - - the signatures of the individual files (if available in the NSD archive). + The default format of the ZIP file shall comply with the CSAR format as specified in ETSI GS NFV-SOL 007 + where only the YAML files representing the NSD, and information necessary to navigate the ZIP file and to + identify the file that is the entry point for parsing the NSD and (if requested) further security information + are included, and other artifacts referenced from the YAML files are excluded. This means that the content of + the ZIP archive shall contain the following files from the NSD archive: + - TOSCA.meta (if available in the NSD archive); + - the main TOSCA definitions YAML file (either as referenced from TOSCA.meta or available as a file with the + extension ".yml" or ".yaml" from the root of the archive); + - every component of the NSD referenced (recursively) from the main TOSCA definitions YAML file; + + NOTE 1: For a NSD based on TOSCA, it includes all the imported type definition files as indicated in the top + level service template and in any of the lower level service template if it has any as described in ETSI GS NFV-SOL 001. + NOTE 2: For a NSD based on YANG, it includes the file as indicated by the "yang_definitions" keyname in the metadata + section of the main yaml file as described in ETSI GS NFV-SOL 007. + + - the related security information, if the "include_signatures" URI parameter is provided, as follows: + - the manifest file; + - the singleton certificate file in the root of the NSD archive (if available in the NSD archive); + - the signing certificates of the individual files included in the ZIP archive + (if available in the NSD archive); + - the signatures of the individual files (if available in the NSD archive). This method shall follow the provisions specified in the Tables 5.4.4a.3.2-1 and 5.4.4a.3.2-2 for URI query parameters, request and response data structures, and response codes. parameters: @@ -948,7 +947,6 @@ paths: type: string get: - summary: Fetch the content of the manifest in an NSD archive. description: > The GET method reads the content of the manifest file within an NSD archive. This method shall follow the provisions specified in the Tables 5.4.4b.3.2-1 @@ -1068,7 +1066,6 @@ paths: type: string post: - summary: Create a new PNF descriptor resource. description: > The POST method is used to create a new PNF descriptor resource parameters: @@ -1148,7 +1145,6 @@ paths: $ref: "../responses/SOL005_resp.yaml#/responses/504" get: - summary: Query information about multiple PNF descriptor resources. description: > "The GET method queries information about multiple PNF descriptor resources." @@ -1197,7 +1193,7 @@ paths: this parameter. The following attributes shall be excluded from the PnfdInfo structure in the response body if this parameter is provided, or none of the parameters - "all_fields," "fields", "exclude_fields", "exclude_default" are provided: + "all_fields"," "fields", "exclude_fields", "exclude_default" are provided: - userDefinedData - onboardingFailureDetails - name: nextpage_opaque_marker @@ -1289,7 +1285,6 @@ paths: type: string get: - summary: Read an individual PNFD resource. description: > The GET method reads information about an individual PNF descriptor. parameters: @@ -1365,7 +1360,6 @@ paths: $ref: "../responses/SOL005_resp.yaml#/responses/504" patch: - summary: Modify the user defined data of an individual PNF descriptor resource. description: > The PATCH method modifies the user defined data of an individual PNF descriptor resource. parameters: @@ -1448,7 +1442,6 @@ paths: $ref: "../responses/SOL005_resp.yaml#/responses/504" delete: - summary: Delete an individual PNF descriptor resource. description: > The DELETE method deletes an individual PNF descriptor resource. An individual PNF descriptor resource can only be deleted when t @@ -1535,7 +1528,6 @@ paths: type: string get: - summary: Fetch the content of a PNFD. description: > The GET method fetches the content of the PNFD archive. The content of the PNFD archive is provided as onboarded, @@ -1671,11 +1663,8 @@ paths: $ref: "../responses/SOL005_resp.yaml#/responses/504" put: - summary: Upload the content of a PNFD. description: > - The PUT method is used to upload the content of a PNFD archive. - 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. + The PUT method is used to upload the content of a PNFD archive. parameters: - name: Accept description: > @@ -2072,7 +2061,6 @@ paths: type: string post: - 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 @@ -2178,7 +2166,6 @@ paths: $ref: "../responses/SOL005_resp.yaml#/responses/504" get: - summary: Query multiple subscriptions. description: > TThe GET method queries the list of active subscriptions of the functional block that invokes the method. It can be used e.g. @@ -2314,17 +2301,9 @@ paths: type: string get: - summary: Read an individual subscription resource. description: > - 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. - - 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. + The GET method retrieves information about a subscription by reading an individual + subscription resource. parameters: - name: Accept in: header @@ -2383,16 +2362,8 @@ paths: $ref: "../responses/SOL005_resp.yaml#/responses/504" delete: - summary: Terminate Subscription description: > - 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. - - The DELETE method terminates an individual subscription. - This method shall support the URI query parameters, request and - response data structures, and response codes, as - specified in the Table 5.4.9.3.3-2. + The DELETE method terminates an individual subscription. parameters: - name: Authorization in: header diff --git a/src/SOL005/NSDManagement/definitions/SOL005NSDescriptorManagement_def.yaml b/src/SOL005/NSDManagement/definitions/SOL005NSDescriptorManagement_def.yaml index 7daa3082980ba80803eaea6d103a2bb3b27da6b6..7e8508ff40c71114dd105ddf9770aa3e28f05c9e 100644 --- a/src/SOL005/NSDManagement/definitions/SOL005NSDescriptorManagement_def.yaml +++ b/src/SOL005/NSDManagement/definitions/SOL005NSDescriptorManagement_def.yaml @@ -17,7 +17,7 @@ definitions: description: > Modifications of the userDefinedData attribute in NsdInfo data type. See note. If present, these modifications shall be applied - according to the rules of JSON Merge PATCH (see IETF RFC 7396 [25]). + according to the rules of JSON Merge Patch (see IETF RFC 7396 [25]). NOTE- At least one of the attributes - nsdOperationalState and userDefinedData - shall be present. type: array items: diff --git a/src/SOL005/NSDManagementNotification/NSDManagementNotification.yaml b/src/SOL005/NSDManagementNotification/NSDManagementNotification.yaml index 8c836242c9a48d237439144a8d01bcf97c1eb88d..6de58cb78bebf9e31cb7e05fd238811adeb7edd6 100644 --- a/src/SOL005/NSDManagementNotification/NSDManagementNotification.yaml +++ b/src/SOL005/NSDManagementNotification/NSDManagementNotification.yaml @@ -8,14 +8,14 @@ info: IMPORTANT: Please note that this file might be not aligned to the current version of the ETSI Group Specification it refers to. In case of discrepancies the published ETSI Group Specification takes precedence. - Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis + Please report bugs to https://forge.etsi.org/rep/nfv/SOL005/issues license: name: "ETSI Forge copyright notice" url: https://forge.etsi.org/etsi-forge-copyright-notice.txt externalDocs: - description: ETSI GS NFV-SOL 005 V2.7.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.07.01_60/gs_NFV-SOL005v020701p.pdf + description: ETSI GS NFV-SOL 005 V2.8.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.08.01_60/gs_NFV-SOL005v020801p.pdf basePath: /callback/v2 @@ -32,7 +32,7 @@ paths: ############################################################################### # Notification endpoint NsdOnBoardingNotification # ############################################################################### - '/URI_is_provided_by_the_client_when_creating_the_subscription_NsdOnBoardingNotification': + '/URI_is_provided_by_the_client_when_creating_the_subscription-NsdOnBoardingNotification': parameters: - name: Authorization description: > @@ -49,7 +49,6 @@ paths: type: string post: - summary: Notify about NSD and PNFD changes description: > The POST method delivers a notification from the API producer to the API consumer. This method shall support the URI query parameters, request and @@ -116,7 +115,6 @@ paths: $ref: "../responses/SOL005_resp.yaml#/responses/503" get: - summary: Test the notification endpoint description: > The GET method allows the API producer to test the notification endpoint that is provided by the API consumer, e.g. during subscription. @@ -172,7 +170,7 @@ paths: ############################################################################### # Notification endpoint NsdOnBoardingFailureNotification # ############################################################################### - '/URI_is_provided_by_the_client_when_creating_the_subscription_NsdOnBoardingFailureNotification': + '/URI_is_provided_by_the_client_when_creating_the_subscription-NsdOnBoardingFailureNotification': parameters: - name: Authorization description: > @@ -189,7 +187,6 @@ paths: type: string post: - summary: Notify about NSD and PNFD changes description: > The POST method delivers a notification from the API producer to the API consumer. This method shall support the URI query parameters, request and @@ -256,7 +253,6 @@ paths: $ref: "../responses/SOL005_resp.yaml#/responses/503" get: - summary: Test the notification endpoint description: > The GET method allows the API producer to test the notification endpoint that is provided by the API consumer, e.g. during subscription. @@ -312,7 +308,7 @@ paths: ############################################################################### # Notification endpoint NsdChangeNotification # ############################################################################### - '/URI_is_provided_by_the_client_when_creating_the_subscription_NsdChangeNotification': + '/URI_is_provided_by_the_client_when_creating_the_subscription-NsdChangeNotification': parameters: - name: Authorization description: > @@ -329,7 +325,6 @@ paths: type: string post: - summary: Notify about NSD and PNFD changes description: > The POST method delivers a notification from the API producer to the API consumer. This method shall support the URI query parameters, request and @@ -396,7 +391,6 @@ paths: $ref: "../responses/SOL005_resp.yaml#/responses/503" get: - summary: Test the notification endpoint description: > The GET method allows the API producer to test the notification endpoint that is provided by the API consumer, e.g. during subscription. @@ -452,7 +446,7 @@ paths: ############################################################################### # Notification endpoint NsdDeletionNotification # ############################################################################### - '/URI_is_provided_by_the_client_when_creating_the_subscription_NsdDeletionNotification': + '/URI_is_provided_by_the_client_when_creating_the_subscription-NsdDeletionNotification': parameters: - name: Authorization description: > @@ -469,7 +463,6 @@ paths: type: string post: - summary: Notify about NSD and PNFD changes description: > The POST method delivers a notification from the API producer to the API consumer. This method shall support the URI query parameters, request and @@ -536,7 +529,6 @@ paths: $ref: "../responses/SOL005_resp.yaml#/responses/503" get: - summary: Test the notification endpoint description: > The GET method allows the API producer to test the notification endpoint that is provided by the API consumer, e.g. during subscription. @@ -592,7 +584,7 @@ paths: ############################################################################### # Notification endpoint PnfdOnBoardingNotification # ############################################################################### - '/URI_is_provided_by_the_client_when_creating_the_subscription_PnfdOnBoardingNotification': + '/URI_is_provided_by_the_client_when_creating_the_subscription-PnfdOnBoardingNotification': parameters: - name: Authorization description: > @@ -609,7 +601,6 @@ paths: type: string post: - summary: Notify about NSD and PNFD changes description: > The POST method delivers a notification from the API producer to the API consumer. This method shall support the URI query parameters, request and @@ -676,7 +667,6 @@ paths: $ref: "../responses/SOL005_resp.yaml#/responses/503" get: - summary: Test the notification endpoint description: > The GET method allows the API producer to test the notification endpoint that is provided by the API consumer, e.g. during subscription. @@ -732,7 +722,7 @@ paths: ############################################################################### # Notification endpoint PnfdOnBoardingFailureNotification # ############################################################################### - '/URI_is_provided_by_the_client_when_creating_the_subscription_PnfdOnBoardingFailureNotification': + '/URI_is_provided_by_the_client_when_creating_the_subscription-PnfdOnBoardingFailureNotification': parameters: - name: Authorization description: > @@ -749,7 +739,6 @@ paths: type: string post: - summary: Notify about NSD and PNFD changes description: > The POST method delivers a notification from the API producer to the API consumer. This method shall support the URI query parameters, request and @@ -816,7 +805,6 @@ paths: $ref: "../responses/SOL005_resp.yaml#/responses/503" get: - summary: Test the notification endpoint description: > The GET method allows the API producer to test the notification endpoint that is provided by the API consumer, e.g. during subscription. @@ -872,7 +860,7 @@ paths: ############################################################################### # Notification endpoint PnfdDeletionNotification # ############################################################################### - '/URI_is_provided_by_the_client_when_creating_the_subscription_PnfdDeletionNotification': + '/URI_is_provided_by_the_client_when_creating_the_subscription-PnfdDeletionNotification': parameters: - name: Authorization description: > @@ -889,7 +877,6 @@ paths: type: string post: - summary: Notify about NSD and PNFD changes description: > The POST method delivers a notification from the API producer to the API consumer. This method shall support the URI query parameters, request and @@ -956,7 +943,6 @@ paths: $ref: "../responses/SOL005_resp.yaml#/responses/503" get: - summary: Test the notification endpoint description: > The GET method allows the API producer to test the notification endpoint that is provided by the API consumer, e.g. during subscription. diff --git a/src/SOL005/NSFaultManagement/NSFaultManagement.yaml b/src/SOL005/NSFaultManagement/NSFaultManagement.yaml index 0f25c5cf4d7c353faeaeac9a198139258c3db398..c507612503eb7ebe125d58d38c0a95f90965981c 100644 --- a/src/SOL005/NSFaultManagement/NSFaultManagement.yaml +++ b/src/SOL005/NSFaultManagement/NSFaultManagement.yaml @@ -9,15 +9,15 @@ info: 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 Group Specification takes precedence. - Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis + Please report bugs to https://forge.etsi.org/rep/nfv/SOL005/issues license: name: "ETSI Forge copyright notice" url: https://forge.etsi.org/etsi-forge-copyright-notice.txt contact: name: "NFV-SOL WG" externalDocs: - description: ETSI GS NFV-SOL 005 V2.7.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.06.01_60/gs_NFV-SOL005v020701p.pdf + description: ETSI GS NFV-SOL 005 V2.8.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.08.01_60/gs_NFV-SOL005v020801p.pdf basePath: /nsfm/v1 schemes: - http @@ -37,7 +37,7 @@ paths: # Alarms # ############################################################################### '/alarms': - #ETSI GS NFV-SOL 005 V2.7.1 location: 8.4.2 + #ETSI GS NFV-SOL 005 V2.8.1 location: 8.4.2 parameters: - name: Authorization description: > @@ -53,7 +53,6 @@ paths: required: true type: string get: - summary: Query alarms related to NS instances. description: > Get Alarm List. @@ -157,7 +156,7 @@ paths: # Individual alarm # ############################################################################### '/alarms/{alarmId}': - #ETSI GS NFV-SOL 005 V2.7.1 location: 8.4.3 + #ETSI GS NFV-SOL 005 V2.8.1 location: 8.4.3 parameters: - name: alarmId description: > @@ -183,7 +182,6 @@ paths: required: true type: string get: - summary: Read individual alarm. description: > The API consumer can use this method to read an individual alarm. This method shall follow the provisions specified in the Tables 8.4.3.3.2-1 and 8.4.3.3.2-2 for URI query parameters, @@ -249,7 +247,6 @@ paths: 503: $ref: "../responses/SOL005_resp.yaml#/responses/503" patch: - summary: Acknowledge individual alarm. description: > Acknowledge Alarm @@ -324,20 +321,20 @@ paths: 406: $ref: "../responses/SOL005_resp.yaml#/responses/406" 409: - description: > - 409 CONFLICT + #description: > + # 409 CONFLICT - Shall be returned upon the following error: The - operation cannot be executed currently, due to a - conflict with the state of the "Individual alarm" - resource. - Typically, this is due to the fact that the alarm is - already in the state that is requested to be set (such - as trying to acknowledge an already-acknowledged - alarm). - The response body shall contain a ProblemDetails - structure, in which the "detail" attribute shall convey - more information about the error. + # Shall be returned upon the following error: The + # operation cannot be executed currently, due to a + # conflict with the state of the "Individual alarm" + # resource. + # Typically, this is due to the fact that the alarm is + # already in the state that is requested to be set (such + # as trying to acknowledge an already-acknowledged + # alarm). + # The response body shall contain a ProblemDetails + # structure, in which the "detail" attribute shall convey + # more information about the error. $ref: "../responses/SOL005_resp.yaml#/responses/409" 412: $ref: "../responses/SOL005_resp.yaml#/responses/412" @@ -350,7 +347,7 @@ paths: #Subscriptions # ############################################################################## '/subscriptions': - #ETSI GS NFV-SOL 005 V2.7.1 location: 8.4.4 + #ETSI GS NFV-SOL 005 V2.8.1 location: 8.4.4 parameters: - name: Authorization description: > @@ -366,13 +363,12 @@ paths: required: true type: string post: - summary: Subscribe to alarms related to NSs. description: > The POST method creates a new subscription. This method shall follow the provisions specified in the Tables 8.4.4.3.1-1 and 8.4.4.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 8.4.5. This method shall not trigger any notification. + As the result of successfully executing this method, a new "Individual subscription" resource as defined in + clause 8.4.5 shall have been created. 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 @@ -451,7 +447,6 @@ paths: 503: $ref: "../responses/SOL005_resp.yaml#/responses/503" get: - summary: Query multiple subscriptions. description: > Query Subscription Information @@ -564,7 +559,7 @@ paths: # Individual subscription # ############################################################################### '/subscriptions/{subscriptionId}': - #ETSI GS NFV-SOL 005 V2.7.1 location: 8.4.5 + #ETSI GS NFV-SOL 005 V2.8.1 location: 8.4.5 parameters: - name: subscriptionId description: > @@ -590,7 +585,6 @@ paths: required: true type: string get: - summary: Read an individual subscription. description: > Query Subscription Information @@ -659,7 +653,6 @@ paths: 503: $ref: "../responses/SOL005_resp.yaml#/responses/503" delete: - summary: Terminate a subscription. description: > Terminate Subscription diff --git a/src/SOL005/NSFaultManagement/definitions/SOL005NSFaultManagement_def.yaml b/src/SOL005/NSFaultManagement/definitions/SOL005NSFaultManagement_def.yaml index d1619f25072e0e6f5680e386116201c0b3a37ce0..f486114e89610e5d746cf553560b7809f93f32c7 100644 --- a/src/SOL005/NSFaultManagement/definitions/SOL005NSFaultManagement_def.yaml +++ b/src/SOL005/NSFaultManagement/definitions/SOL005NSFaultManagement_def.yaml @@ -101,7 +101,9 @@ definitions: faultDetails: description: > Provides additional information about the fault.. - type: string + type: array + items: + type: string _links: description: > Links for this resource. diff --git a/src/SOL005/NSFaultManagementNotification/NSFaultManagementNotification.yaml b/src/SOL005/NSFaultManagementNotification/NSFaultManagementNotification.yaml index 2b3b9afc39b59851c7b184e527a87de77d384f29..940bb1d400ab21c074d3264481394155d68cb9f3 100644 --- a/src/SOL005/NSFaultManagementNotification/NSFaultManagementNotification.yaml +++ b/src/SOL005/NSFaultManagementNotification/NSFaultManagementNotification.yaml @@ -8,14 +8,14 @@ info: IMPORTANT: Please note that this file might be not aligned to the current version of the ETSI Group Specification it refers to. In case of discrepancies the published ETSI Group Specification takes precedence. - Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis + Please report bugs to https://forge.etsi.org/rep/nfv/SOL005/issues license: name: "ETSI Forge copyright notice" url: https://forge.etsi.org/etsi-forge-copyright-notice.txt externalDocs: - description: ETSI GS NFV-SOL 005 V2.7.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.06.01_60/gs_NFV-SOL005v020701p.pdf + description: ETSI GS NFV-SOL 005 V2.8.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.08.01_60/gs_NFV-SOL005v020801p.pdf basePath: /callback/v1 @@ -33,7 +33,6 @@ paths: ################################################################################## '/URI_is_provided_by_the_client_when_creating_the_subscription-AlarmNotification': post: - summary: Notify about NS alarms description: > The POST method notifies an alarm related to a NS or that the alarm list has been rebuilt. The API consumer shall have previously created an "individual subscription resource" with a matching filter. @@ -105,10 +104,9 @@ 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 API consumer, e.g. during subscription. + The GET method allows the API producer to test the notification endpoint that + is provided by the API consumer, e.g. during subscription. parameters: - name: Accept description: > @@ -170,9 +168,8 @@ paths: $ref: "../responses/SOL005_resp.yaml#/responses/503" '/URI_is_provided_by_the_client_when_creating_the_subscription-AlarmClearedNotification': - #ETSI GS NFV-SOL 005 V2.7.1 location: 8.4.6 + #ETSI GS NFV-SOL 005 V2.8.1 location: 8.4.6 post: - summary: Notify about NS alarms description: > The POST method notifies an alarm related to a NS or that the alarm list has been rebuilt. parameters: @@ -243,10 +240,9 @@ 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. + The GET method allows the API producer to test the notification endpoint that + is provided by the API consumer, e.g. during subscription. parameters: - name: Accept description: > @@ -309,7 +305,6 @@ paths: '/URI_is_provided_by_the_client_when_creating_the_subscription-AlarmListRebuiltNotification': post: - summary: Notify about NS alarms description: > The POST method notifies an alarm related to a NS or that the alarm list has been rebuilt. parameters: @@ -380,10 +375,9 @@ 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 API consumer, e.g. during subscription. + The GET method allows the API producer to test the notification endpoint + that is provided by the API consumer, e.g. during subscription. parameters: - name: Accept description: > diff --git a/src/SOL005/NSFaultManagementNotification/definitions/SOL005NSFaultManagementNotification_def.yaml b/src/SOL005/NSFaultManagementNotification/definitions/SOL005NSFaultManagementNotification_def.yaml index b01a5af110002a8c18acd799c0c62fdbbf180115..9da383ebab9a8fe94b0716ed18d85ca5081ed692 100644 --- a/src/SOL005/NSFaultManagementNotification/definitions/SOL005NSFaultManagementNotification_def.yaml +++ b/src/SOL005/NSFaultManagementNotification/definitions/SOL005NSFaultManagementNotification_def.yaml @@ -119,7 +119,8 @@ definitions: description: > This type represents a notification that the alarm list has been rebuilt, e.g. if the NFVO detects its storage holding the alarm list is corrupted. It shall comply with the provisions defined in Table 8.5.2.7-1. - The notification shall be triggered by the NFVO when the alarm list has been rebuilt. + The notification shall be triggered by the NFVO when the alarm list has been rebuilt, + e.g. because the NFVO has detected that its storage holding the alarm list was corrupted. type: object required: - id diff --git a/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml b/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml index c1dabb7515fe47dc1fbd8cad458a505603ab4793..379a97442793a9ac251618acbb15917f8802e7da 100644 --- a/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml +++ b/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml @@ -1,6 +1,6 @@ swagger: "2.0" info: - version: "1.3.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + version: "1.4.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" title: "SOL005 - NS Lifecycle Management Interface" description: > SOL005 - NS Lifecycle Management Interface @@ -8,15 +8,15 @@ info: 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 Group Specification takes precedence. - Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis + Please report bugs to https://forge.etsi.org/rep/nfv/SOL005/issues license: name: "ETSI Forge copyright notice" url: https://forge.etsi.org/etsi-forge-copyright-notice.txt contact: name: "NFV-SOL WG" externalDocs: - description: ETSI GS NFV-SOL 005 V2.7.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.07.01_60/gs_NFV-SOL005v020701p.pdf + description: ETSI GS NFV-SOL 005 V2.8.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.08.01_60/gs_NFV-SOL005v020801p.pdf basePath: /nslcm/v1 schemes: - http @@ -36,7 +36,7 @@ paths: # NSInstances # ############################################################################### '/ns_instances': - #ETSI GS NFV-SOL 005 V2.7.1 location: 6.4.2 + #ETSI GS NFV-SOL 005 V2.8.1 location: 6.4.2 parameters: - name: Authorization description: > @@ -52,7 +52,6 @@ paths: required: true type: string post: - summary: Create a NS instance resource. description: > The POST method creates a new NS instance resource. As the result of successfully executing this method, a new "Individual NS instance" resource as defined in clause 6.4.3 @@ -141,7 +140,6 @@ paths: 504: $ref: "../responses/SOL005_resp.yaml#/responses/504" get: - summary: Query multiple NS instances. description: > Query NS Instances. @@ -294,7 +292,7 @@ paths: # Individual NS instance # ############################################################################### '/ns_instances/{nsInstanceId}': - #ETSI GS NFV-SOL 005 V2.7.1 location: 6.4.3 + #ETSI GS NFV-SOL 005 V2.8.1 location: 6.4.3 parameters: - name: nsInstanceId description: > @@ -316,7 +314,6 @@ paths: required: true type: string get: - summary: Read an individual NS instance resource. description: > The GET method retrieves information about a NS instance by reading an individual NS instance resource. @@ -390,7 +387,6 @@ paths: $ref: "../responses/SOL005_resp.yaml#/responses/504" delete: - summary: Delete NS instance resource. description: > Delete NS Identifier @@ -460,7 +456,7 @@ paths: # Instantiate NS task # ############################################################################### '/ns_instances/{nsInstanceId}/instantiate': - #ETSI GS NFV-SOL 005 V2.7.1 location: 6.4.4 + #ETSI GS NFV-SOL 005 V2.8.1 location: 6.4.4 parameters: - name: nsInstanceId description: > @@ -469,7 +465,6 @@ paths: type: string required: true post: - summary: Instantiate a NS. description: > The POST method requests to instantiate a NS instance resource. The steps and conditions that apply as the result of successfully executing this method are specified in clause 6.4.1.2. @@ -564,7 +559,7 @@ paths: # Scale NS task # ############################################################################### '/ns_instances/{nsInstanceId}/scale': - #ETSI GS NFV-SOL 005 V2.7.1 location: 6.4.5 + #ETSI GS NFV-SOL 005 V2.8.1 location: 6.4.5 parameters: - name: nsInstanceId description: > @@ -573,7 +568,6 @@ paths: type: string required: true post: - summary: Scale a NS instance. description: > The POST method requests to scale a NS instance resource. The steps and conditions that apply as the result of successfully executing this method are specified in clause 6.4.1.2. @@ -667,7 +661,7 @@ paths: # Update NS task # ############################################################################### '/ns_instances/{nsInstanceId}/update': - #ETSI GS NFV-SOL 005 V2.7.1 location: 6.4.6 + #ETSI GS NFV-SOL 005 V2.8.1 location: 6.4.6 parameters: - name: nsInstanceId description: > @@ -676,7 +670,6 @@ paths: type: string required: true post: - summary: Updates a NS instance. description: > The POST method updates an NS instance. parameters: @@ -765,7 +758,7 @@ paths: # Heal NS task # ############################################################################### '/ns_instances/{nsInstanceId}/heal': - #ETSI GS NFV-SOL 005 V2.7.1 location: 6.4.7 + #ETSI GS NFV-SOL 005 V2.8.1 location: 6.4.7 parameters: - name: nsInstanceId description: > @@ -774,7 +767,6 @@ paths: type: string required: true post: - summary: Heal a NS instance. description: > The POST method requests to heal an NS instance. This method shall follow the provisions specified in the Tables 6.4.7.3.1-1 and 6.4.7.3.1-2 for URI query parameters, @@ -866,7 +858,7 @@ paths: # Terminate NS task # ############################################################################### '/ns_instances/{nsInstanceId}/terminate': - #ETSI GS NFV-SOL 005 V2.7.1 location: 6.4.8 + #ETSI GS NFV-SOL 005 V2.8.1 location: 6.4.8 parameters: - name: nsInstanceId description: > @@ -875,7 +867,6 @@ paths: type: string required: true post: - summary: Terminate a NS instance. description: > Terminate NS task. The POST method terminates an NS instance. @@ -971,9 +962,8 @@ paths: # NS LCM operation occurrences # ############################################################################### '/ns_lcm_op_occs': - #ETSI GS NFV-SOL 005 V2.7.1 location: 6.4.9 + #ETSI GS NFV-SOL 005 V2.8.1 location: 6.4.9 get: - summary: Query multiple NS LCM operation occurrences. description: > Get Operation Status. Shall be returned upon the following error: The @@ -1129,7 +1119,7 @@ paths: # Individual NS lifecycle operation occurrence # ############################################################################### '/ns_lcm_op_occs/{nsLcmOpOccId}': - #ETSI GS NFV-SOL 005 V2.7.1 location: 6.4.10 + #ETSI GS NFV-SOL 005 V2.8.1 location: 6.4.10 parameters: - name: nsLcmOpOccId description: > @@ -1138,7 +1128,6 @@ paths: type: string required: true get: - summary: Read an individual NS LCM operation occurrence resource. description: > The API consumer can use this method to retrieve status information about a NS lifecycle management operation occurrence by @@ -1234,7 +1223,7 @@ paths: # Retry operation task # ############################################################################### '/ns_lcm_op_occs/{nsLcmOpOccId}/retry': - #ETSI GS NFV-SOL 005 V2.7.1 location: 6.4.11 + #ETSI GS NFV-SOL 005 V2.8.1 location: 6.4.11 parameters: - name: nsLcmOpOccId description: > @@ -1247,7 +1236,6 @@ paths: type: string required: true post: - summary: Retry a NS lifecycle management operation occurrence. description: > The POST method initiates retrying a NS lifecycle management operation if that operation has experienced a temporary @@ -1337,7 +1325,7 @@ paths: # Rollback a NS lifecycle management operation occurrence. # ############################################################################### '/ns_lcm_op_occs/{nsLcmOpOccId}/rollback': - #ETSI GS NFV-SOL 005 V2.7.1 location: 6.4.12 + #ETSI GS NFV-SOL 005 V2.8.1 location: 6.4.12 parameters: - name: nsLcmOpOccId description: > @@ -1350,7 +1338,6 @@ paths: required: true type: string post: - summary: Rollback a NS lifecycle management operation occurrence. description: > The POST method initiates rolling back a NS lifecycle operation if that operation has experienced a temporary failure, @@ -1440,7 +1427,7 @@ paths: # Continue a NS lifecycle management operation occurrence. # ############################################################################### '/ns_lcm_op_occs/{nsLcmOpOccId}/continue': - #ETSI GS NFV-SOL 005 V2.7.1 location: 6.4.13 + #ETSI GS NFV-SOL 005 V2.8.1 location: 6.4.13 parameters: - name: nsLcmOpOccId description: > @@ -1453,7 +1440,6 @@ paths: required: true type: string post: - summary: Continue a NS lifecycle management operation occurrence. description: > The POST method initiates continuing an NS lifecycle operation if that operation has experienced a temporary failure, i.e. the related "NS LCM operation occurrence" is in "FAILED_TEMP" state. @@ -1543,7 +1529,7 @@ paths: # Fail operation task # ############################################################################### '/nslcm/v1/ns_lcm_op_occs/{nsLcmOpOccId}/fail': - #ETSI GS NFV-SOL 005 V2.7.1 location: 6.4.14 + #ETSI GS NFV-SOL 005 V2.8.1 location: 6.4.14 parameters: - name: nsLcmOpOccId description: > @@ -1558,7 +1544,6 @@ paths: required: true type: string post: - summary: Mark a NS lifecycle management operation occurrence as failed. description: > The POST method marks a NS lifecycle management operation occurrence as "finally failed" if that operation @@ -1677,7 +1662,7 @@ paths: # Cancel operation task # ############################################################################### '/nslcm/v1/ns_lcm_op_occs/{nsLcmOpOccId}/cancel': - #ETSI GS NFV-SOL 005 V2.7.1 location: 6.4.15 + #ETSI GS NFV-SOL 005 V2.8.1 location: 6.4.15 parameters: - name: nsLcmOpOccId description: > @@ -1690,7 +1675,6 @@ paths: required: true type: string post: - summary: Cancel a NS lifecycle management operation occurrence. description: > The POST method initiates cancelling an ongoing NS lifecycle management operation while it is being executed or rolled back, i.e. the related "NS LCM operation occurrence" is either in "PROCESSING" or "ROLLING_BACK" state. @@ -1812,7 +1796,7 @@ paths: # Subscriptions # ############################################################################### '/subscriptions': - #ETSI GS NFV-SOL 005 V2.7.1 location: 6.4.16 + #ETSI GS NFV-SOL 005 V2.8.1 location: 6.4.16 parameters: - name: Authorization description: > @@ -1828,7 +1812,6 @@ paths: required: true type: string post: - summary: Subscribe to NS lifecycle 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 @@ -1931,7 +1914,6 @@ paths: $ref: "../responses/SOL005_resp.yaml#/responses/504" get: - summary: Query multiple subscriptions. description: > Query Subscription Information. @@ -2039,7 +2021,7 @@ paths: # Individual subscription # ############################################################################### '/subscriptions/{subscriptionId}': - #ETSI GS NFV-SOL 005 V2.7.1 location: 6.4.17 + #ETSI GS NFV-SOL 005 V2.8.1 location: 6.4.17 parameters: - name: subscriptionId description: > @@ -2061,7 +2043,6 @@ paths: required: true type: string get: - summary: Read an individual subscription resource. description: > The GET method retrieves information about a subscription by reading an individual subscription resource. This method shall support the URI query parameters, request and response data structures, and response codes, as @@ -2125,7 +2106,6 @@ paths: $ref: "../responses/SOL005_resp.yaml#/responses/504" delete: - summary: Terminate a subscription. description: > The DELETE method terminates an individual subscription. This method shall support the URI query parameters, request and response data structures, and response codes, as diff --git a/src/SOL005/NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml b/src/SOL005/NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml index 30f35a382a1d2a2ba27b50c19e51c7225e527bbf..9f015483333ed9162753816ddaefd86a52b5fe65 100644 --- a/src/SOL005/NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml +++ b/src/SOL005/NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml @@ -192,7 +192,7 @@ definitions: type: string nsdId: description: > - Identifier of the NSD on which the NS instance is based. + Identifier of the NSD on which the NS instance is based. The value is copied from the NSD. $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" nsdInfoId: description: > @@ -359,16 +359,29 @@ definitions: vnfInstanceName: description: > Name of the VNF instance. - This attribute can be modified with the PATCH method. + Modifications to this attribute can be requested + using the "ModifyVnfInfoData" structure. type: string vnfInstanceDescription: description: > Human-readable description of the VNF instance. - This attribute can be modified with the PATCH method. + Modifications to this attribute can be requested + using the "ModifyVnfInfoData" structure. type: string vnfdId: description: > Identifier of the VNFD on which the VNF instance is based. + Modifications to this attribute can be requested + using the "ModifyVnfInfoData" structure. Modifying the value + of this attribute shall not be performed when conflicts exist + between the previous and the newly referred VNF package, + i.e. when the new VNFD is changed with respect to the previous + VNFD in other aspects than merely referencing to other VNF + software images. In order to avoid misalignment of the + VnfInstance with the current VNF's on-boarded VNF Package, + the values of attributes in the VnfInstance that have + corresponding attributes in the VNFD shall be kept in sync + with the values in the VNFD. $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" vnfProvider: description: > @@ -391,8 +404,6 @@ definitions: Identifier of information held by the NFVO about the specific VNF package on which the VNF is based. This identifier has been allocated by the NFVO. - This attribute can be modified with the PATCH - method. $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" vnfConfigurableProperties: description: > @@ -430,7 +441,8 @@ definitions: set to true, auto-healing is currently enabled. If set to false, auto-healing is currently disabled. - These attributea can be modified with the PATCH method. + Modifications to these attributes can be + requested using the "ModifyVnfInfoData" structure. $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" vimId: description: > @@ -534,37 +546,28 @@ definitions: $ref: "#/definitions/VirtualStorageResourceInfo" metadata: description: > - Additional VNF-specific attributes that provide - metadata describing the VNF instance. - Metadata that are writeable are declared in the - VNFD (see note 2). - These attributes represent values that are - stored persistently in the VnfInstance structure - for consumption by functional blocks that - invoke the VNF lifecycle management - interface. They are not consumed by the - VNFM, or the lifecycle management scripts. - Modifying the values of these attributes has no - effect on the VNF instance, it only affects the - information represented in the VnfInstance - structure. - Metadata that are writeable are declared in the - VNFD (see note 2). - These attributes can be modified with the - PATCH method + Additional VNF-specific attributes that provide metadata describing the VNF instance. + These attributes represent values that are stored persistently in the VnfInstance structure + for consumption by functional blocks that invoke the VNF lifecycle management interface. + They are not consumed by the VNFM, or the lifecycle management scripts. + Modifying the values of these attributes has no effect on the VNF instance, it only affects + the information represented in the VnfInstance structure. + Metadata that the VNF provider foresees are expected to be declared in the VNFD (see note 2). + Modifications to these attributes can be requested using the "ModifyVnfInfoData" structure. + + NOTE 2: ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on TOSCA specifications. $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" extensions: description: > Additional VNF-specific attributes that affect the lifecycle management of this VNF instance. - These attributes represent values that are stored persistently in the VnfInstance structure - for consumption by the VNFM, or by the lifecycle management scripts. during the execution - of VNF lifecycle management operations. - Modifying the values of these attributes has no direct effect on the VNF instance; however, - the modified attribute values can be considered during subsequent VNF lifecycle management - operations, which means that the modified values can indirectly affect the configuration of the VNF instance. - Extensions that are writeable are declared in the VNFD. - This attribute These attributes can be modified with the PATCH method. - ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on TOSCA specifications. + These attributes represent values that are stored persistently in the VnfInstance structure for + consumption by the VNFM or by the lifecycle management scripts during the execution of VNF lifecycle + management operations. + Modifying the values of these attributes has no direct effect on the VNF instance; however, the modified + attribute values can be considered during subsequent VNF lifecycle management operations, which means that + the modified values can indirectly affect the configuration of the VNF instance. + All extensions that are allowed for the VNF are declared in the VNFD. + Modifications to these attributes can be requested using the "ModifyVnfInfoData" structure. $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" LccnLinks: @@ -759,9 +762,7 @@ definitions: Identifiers of the CP instances attached to the constituent VNFs and PNFs or the SAP instances of the VNFFG. See note. - type: array - items: - $ref: "#/definitions/NsCpHandle" + $ref: "#/definitions/NsCpHandle" NfpInfo: description: > @@ -800,7 +801,7 @@ definitions: type: array minItems: 1 items: - $ref: "#/definitions/NsCpHandle" + $ref: "#/definitions/CpGroupInfo" totalCp: description: > Total number of CP and SAP instances in this NFP instance. @@ -831,36 +832,61 @@ definitions: description: > Identifier of the VNF instance associated to the CP instance. This attribute shall be present if the CP instance is VNF external CP. + See note 1 and note 4. + NOTE 1: For the VNF external CP instance, both vnfInstanceId and + vnfExtCpInstanceId shall be present as a pair. + NOTE 4: One pair of identifiers (VNF external CP, PNF external CP or SAP) + shall be present. $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" vnfExtCpInstanceId: description: > Identifier of the VNF external CP instance in the scope of the VNF instance. This attribute shall be present if the CP instance is VNF external CP. See notes 1 and 4. + NOTE 1: For the VNF external CP instance, both vnfInstanceId and + vnfExtCpInstanceId shall be present as a pair. + NOTE 4: One pair of identifiers (VNF external CP, PNF external CP or SAP) + shall be present. $ref: "#/definitions/IdentifierInVnf" pnfInfoId: description: > Identifier of the PNF instance associated to the CP instance. This attribute shall be present if the CP instance is PNF - external CP. See notes 2 and 4. + external CP. See notes 2 and 4. + NOTE 2: For the PNF external CP instance, both pnfInfoId and + PnfExtCpInstanceId shall be present as a pair. + NOTE 4: One pair of identifiers (VNF external CP, PNF external CP or SAP) + shall be present. $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" pnfExtCpInstanceId: description: > Identifier of the PNF external CP instance in the scope of the PNF. This attribute shall be present if the CP instance is PNF external CP. See notes 2 and 4. + NOTE 2: For the PNF external CP instance, both pnfInfoId and + PnfExtCpInstanceId shall be present as a pair. + NOTE 4: One pair of identifiers (VNF external CP, PNF external CP or SAP) + shall be present. $ref: "#/definitions/IdentifierInPnf" nsInstanceId: description: > Identifier of the NS instance associated to the SAP instance. This attribute shall be present if the CP instance is NS - SAP. See notes 3 and 4. + SAP. See notes 3 and 4. + NOTE 3: For the SAP instance, both nsInstanceId and nsSapInstanceId + shall be present as a pair. + NOTE 4: One pair of identifiers (VNF external CP, PNF external CP or SAP) + shall be present. $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" nsSapInstanceId: description: > Identifier of the SAP instance in the scope of the NS instance. This attribute shall be present if the CP instance is NS - SAP. See notes 3 and 4. + SAP. See notes 3 and 4. + NOTE 3: For the SAP instance, both nsInstanceId and nsSapInstanceId + shall be present as a pair. + NOTE 4: One pair of identifiers (VNF external CP, PNF external CP or SAP) + shall be present. $ref: "#/definitions/IdentifierInNs" SapInfo: @@ -1344,7 +1370,7 @@ definitions: $ref: "#/definitions/IdentifierInVnf" resourceHandle: description: > - Reference to the virtualised network resource realizing this link port. + Reference to the virtualised resource realizing this link port. $ref: "../../definitions/SOL005_def.yaml#/definitions/ResourceHandle" cpInstanceId: description: > @@ -1422,7 +1448,9 @@ definitions: $ref: "#/definitions/IdentifierInVnf" vduId: description: > - Reference to the applicable VDU in the VNFD. + Reference to the applicable VDU in the VNFD. see note 1. + NOTE 1: ETSI GS NFV-SOL 001 specifies the structure and format + of the VNFD based on TOSCA specifications. $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnfd" computeResource: description: > @@ -1443,9 +1471,14 @@ definitions: vnfcCpInfo: description: > CPs of the VNFC instance. - Shall be present when that particular CP of the VNFC instance is - associated to an external CP of the VNF instance. + Shall be present when that particular CP of the VNFC + instance is exposed as an external CP of the VNF + instance or is connected to an external CP of the VNF instance. See note 2. May be present otherwise. + NOTE 2: A VNFC CP is "connected to" an external CP if the VNFC CP + is connected to an internal VL that exposes an external CP. + A VNFC CP is "exposed as" an external CP if it is connected + directly to an external VL. type: array items: type: object @@ -1460,16 +1493,28 @@ definitions: $ref: "#/definitions/IdentifierInVnf" cpdId: description: > - Identifier of the VDU CPD, cpdId, in the VNFD. + Identifier of the VDU CPD, cpdId, in the VNFD. see note 1. + NOTE 1: ETSI GS NFV-SOL 001 specifies the structure and format + of the VNFD based on TOSCA specifications. $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnfd" vnfExtCpId: description: > - When the VNFC CP is exposed as external CP of the VNF, the - identifier of this external VNF CP. + Identifier of the related external CP. Shall be present + when the VNFC CP is exposed as an external CP of the + VNF instance or connected to an external CP of the VNF + instance (see note 2) and shall be absent otherwise. + + NOTE 2: A VNFC CP is "connected to" an external CP if the VNFC CP + is connected to an internal VL that exposes an external CP. + A VNFC CP is "exposed as" an external CP if it is connected + directly to an external VL. $ref: "#/definitions/IdentifierInVnf" cpProtocolInfo: description: > - Network protocol information for this CP. + Network protocol information for this CP. May be omitted + if the VNFC CP is exposed as an external CP. see note 3. + NOTE 3: The information can be omitted because it is + already available as part of the external CP information. type: array items: $ref: "#/definitions/CpProtocolInfo" @@ -1477,7 +1522,8 @@ definitions: description: > Identifier of the "vnfLinkPorts" structure in the "VnfVirtualLinkResourceInfo" structure. Shall be present if - the CP is associated to a link port. + the CP is associated to a link port on an internal VL of + the VNF instance and shall be absent otherwise. $ref: "#/definitions/IdentifierInVnf" metadata: description: > @@ -1588,9 +1634,7 @@ definitions: sapInfo item in the NS instance. There shall be at most one link port associated with any connection point instance. - type: array - items: - $ref: "#/definitions/NsCpHandle" + $ref: "#/definitions/NsCpHandle" AffinityOrAntiAffinityRule: description: > @@ -2127,14 +2171,14 @@ definitions: addSap: description: > Identifies a new SAP to be added to the NS instance. - It shall be present only if updateType = "ADD_SAP." + It shall be present only if updateType = "ADD_SAP". type: array items: $ref: "#/definitions/SapData" removeSapId: description: > The identifier an existing SAP to be removed from the - NS instance. It shall be present only if updateType = "REMOVE_SAP." + NS instance. It shall be present only if updateType = "REMOVE_SAP". type: array items: $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" @@ -2342,6 +2386,13 @@ definitions: extManagedVirtualLinks: description: > information about internal VLs that are managed by NFVO. + The indication of externally-managed internal VLs is needed + in case networks have been pre-configured for use with certain + VNFs, for instance to ensure that these networks have certain + properties such as security or acceleration features, or to + address particular network topologies. The present document + assumes that externally-managed internal VLs are managed + by the NFVO and created towards the VIM. type: array items: $ref: "#/definitions/ExtManagedVirtualLinkData" @@ -2351,6 +2402,19 @@ definitions: process, specific to the VNF being modified, as declared in the VNFD as part of "ChangeVnfFlavourOpConfig". $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" + extensions: + description: > + This attribute provides values for the "extensions" input + parameter of the Change VNF Flavour operation defined in + ETSI GS NFV-SOL 003. + $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" + vnfConfigurableProperties: + description: > + This attribute provides values for the + "vnfConfigurableProperties" input parameter of the + Change VNF Flavour operation defined in ETSI + GS NFV SOL 003. + $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" OperateVnfData: description: > @@ -2679,7 +2743,7 @@ definitions: description: > Indicates the L4 protocol, For IPv4 [7] this corresponds to the field called "Protocol" to identify - the next level protocol. For IPv6 [28] this + the next level protocol. For IPv6 [12] this corresponds to the field is called the "Next Header" field. Permitted values: Any keyword defined in the IANA protocol registry [1], e.g.: @@ -2825,58 +2889,6 @@ definitions: items: $ref: "#/definitions/PnfExtCpData" - AffectedVirtualLink: - description: > - This type provides information about added, deleted, modified and - temporary VLs. - type: object - required: - - id - - virtualLinkDescId - - changeType - - networkResource - properties: - id: - description: > - Identifier of the virtual link instance, identifying the applicable - "vnfVirtualLinkResourceInfo" entry in the "VnfInstance" data type. - $ref: "#/definitions/IdentifierInVnf" - virtualLinkDescId: - description: > - Identifier of the related VLD in the VNFD. - $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnfd" - changeType: - description: > - Signals the type of change. Permitted values: - * ADDED - * REMOVED - * MODIFIED - * TEMPORARY - * LINK_PORT_ADDED - * LINK_PORT_REMOVED - For a temporary resource, an AffectedVirtualLink structure exists as - long as the temporary resource exists. - type: string - enum: - - ADDED - - REMOVED - - MODIFIED - - TEMPORARY - - LINK_PORT_ADDED - - LINK_PORT_REMOVED - networkResource: - description: > - Reference to the VirtualNetwork resource. Detailed information is - (for new and modified resources) or has been (for removed - resources) available from the VIM. - $ref: "../../definitions/SOL005_def.yaml#/definitions/ResourceHandle" - metadata: - description: > - Metadata about this resource. - The content of this attribute shall be a copy of the content of the - "metadata" attribute of the VnfVirtualLinkResourceInfo structure. - $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" - AffectedVirtualStorage: description: > This type provides information about added, deleted, modified and @@ -3076,7 +3088,7 @@ definitions: - ROLLED_BACK - FAILED - AffectedVl: + AffectedVirtualLink: description: > This type provides information about added, deleted and modified VLs. It shall comply with the provisions in Table 6.5.3.4-1. @@ -3114,6 +3126,23 @@ definitions: - MODIFY - ADD_LINK_PORT - REMOVE_LINK_PORT + linkPortIds: + description: Identifiers of the link ports of the affected VL + related to the change. Each identifier + references an "NsLinkPortInfo" structure. + Shall be set when changeType is equal to + "ADD_LINK_PORT" or + "REMOVE_LINK_PORT", and the related + "NsLinkPortInfo" structures are present (case + "add") or have been present (case "remove") in + the "NsVirtualLinkInfo" structure that is + represented by the "virtualLink¬Info" attribute in + the "NsInstance" structure. The resource handles of + the affected NS link ports can be found by dereferencing + the identifiers in the "linkPortIds" attribute. + type: array + items: + $ref: "#/definitions/IdentifierInNs" changeResult: description: > Signals the result of change identified by the @@ -3494,6 +3523,18 @@ definitions: instance as part of the scaling operation. If needed, the VNF Profile to be used for this VNF instance may also be provided. + See note 1, note 2 and note 3. + NOTE 1: No more than two attributes between vnfInstanceToBeAdded, + vnfInstanceToBeRemoved, scaleNsByStepsData and scaleNsToLevelData + shall be present. In case of two, the attributes shall be + vnfInstanceToBeAdded and vnfInstanceToBeRemoved. + + NOTE 2: The DF of the VNF instance shall match the VNF DF present + in the associated VNF Profile of the new NS flavour. + + NOTE 3: This functionality is the same as the one provided + by the Update NS operation when the AddVnf update type is + selected (see clause 7.3.5). type: array items: $ref: "#/definitions/VnfInstanceData" @@ -3501,6 +3542,15 @@ definitions: description: > The VNF instance to be removed from the NS instance as part of the scaling operation. + See note 1 and note 4. + NOTE 1: No more than two attributes between vnfInstanceToBeAdded, + vnfInstanceToBeRemoved, scaleNsByStepsData and scaleNsToLevelData + shall be present. In case of two, the attributes shall be + vnfInstanceToBeAdded and vnfInstanceToBeRemoved. + + NOTE 4: This functionality is the same as the one provided + by the Update NS operation when the RemoveVnf update type is + selected (see clause 7.3.5). type: array items: $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" @@ -3508,10 +3558,18 @@ definitions: description: > The information used to scale an NS instance by one or more scaling steps. + NOTE 1: No more than two attributes between vnfInstanceToBeAdded, + vnfInstanceToBeRemoved, scaleNsByStepsData and scaleNsToLevelData + shall be present. In case of two, the attributes shall be + vnfInstanceToBeAdded and vnfInstanceToBeRemoved. $ref: "#/definitions/ScaleNsByStepsData" scaleNsToLevelData: description: > The information used to scale an NS instance to a target size. + NOTE 1: No more than two attributes between vnfInstanceToBeAdded, + vnfInstanceToBeRemoved, scaleNsByStepsData and scaleNsToLevelData + shall be present. In case of two, the attributes shall be + vnfInstanceToBeAdded and vnfInstanceToBeRemoved. $ref: "#/definitions/ScaleNsToLevelData" additionalParamsForNs: description: > @@ -3548,10 +3606,10 @@ definitions: to a given level, or to scale a VNF instance by steps. type: object required: - - vnfInstanceid + - vnfInstanceId - scaleVnfType properties: - vnfInstanceid: + vnfInstanceId: description: > Identifier of the VNF instance being scaled. $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" @@ -3726,7 +3784,8 @@ definitions: LcmOpNameForChangeNotificationType: description: > - The enumeration LcmOpNameForChangeNotificationType represents the name of the lifecycle operation that impacts the NS component and trigger an NS change notification. It shall comply with the provisions defined in Table 6.5.4.6-1. + The enumeration LcmOpNameForChangeNotificationType represents the name of the lifecycle operation that impacts the NS component and + trigger an NS change notification. It shall comply with the provisions defined in Table 6.5.4.6-1. Value | Description ------|------------ VNF_INSTANTIATE | Represents the "Instantiate VNF" LCM operation. @@ -3769,7 +3828,8 @@ definitions: ------|------------ START | The impact on the NS component is identified. COMPLETED | The impact on the NS component stops and related lifecycle operation completes successfully. - PARTIALLY_COMPLETED | The impact on the NS component stops and related lifecycle operation partially completes. Inconsistency state may exist on the NS component. + PARTIALLY_COMPLETED | The impact on the NS component stops and related lifecycle operation partially completes. + Inconsistency state may exist on the NS component. FAILED | The impact on the NS component stops and related lifecycle operation fails. Inconsistency state may exist for the NS component. ROLLED_BACK | The impact on the NS component stops and related lifecycle operation is rolled back. type: string @@ -4231,8 +4291,6 @@ definitions: * At least one of these attributes shall be present for a to-be-created external CP instance or an existing external CP instance. - * If the "linkPortId" attribute is absent, the VNFM shall create a - link port. * If the "cpProtocolData" attribute is absent, the "linkPortId" attribute shall be provided referencing a pre-created link port, and the VNFM can use means outside the scope of the present @@ -4254,8 +4312,6 @@ definitions: * At least one of these attributes shall be present for a to-be-created external CP instance or an existing external CP instance. - * If the "linkPortId" attribute is absent, the VNFM shall create a - link port. * If the "cpProtocolData" attribute is absent, the "linkPortId" attribute shall be provided referencing a pre-created link port, and the VNFM can use means outside the scope of the present diff --git a/src/SOL005/NSLifecycleManagementNotification/NSLifecycleManagementNotification.yaml b/src/SOL005/NSLifecycleManagementNotification/NSLifecycleManagementNotification.yaml index e8f1a96985eec61fbcf5853434d697a7762092b5..f94c1b911f947772023f468596d37f3ea9997cb0 100644 --- a/src/SOL005/NSLifecycleManagementNotification/NSLifecycleManagementNotification.yaml +++ b/src/SOL005/NSLifecycleManagementNotification/NSLifecycleManagementNotification.yaml @@ -1,21 +1,21 @@ swagger: "2.0" info: - version: "1.3.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + version: "1.4.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" title: "SOL005 - NS Lifecycle Management Notification interface" description: > SOL005 - NS Lifecycle Management Notification interface IMPORTANT: Please note that this file might be not aligned to the current version of the ETSI Group Specification it refers to. In case of discrepancies the published ETSI Group Specification takes precedence. - Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis + Please report bugs to https://forge.etsi.org/rep/nfv/SOL005/issues license: name: "ETSI Forge copyright notice" url: https://forge.etsi.org/etsi-forge-copyright-notice.txt externalDocs: - description: ETSI GS NFV-SOL 005 V2.7.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.07.01_60/gs_NFV-SOL005v020701p.pdf + description: ETSI GS NFV-SOL 005 V2.8.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.08.01_60/gs_NFV-SOL005v020801p.pdf basePath: /callback/v1 @@ -33,7 +33,6 @@ paths: ################################################################################## '/URI_is_provided_by_the_client_when_creating_the_subscription-NsLcmOperationOccurrenceNotification': post: - summary: Notify about NS lifecycle change description: > 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. @@ -114,7 +113,6 @@ paths: $ref: "../responses/SOL005_resp.yaml#/responses/503" get: - summary: Test the notification endpoint. description: > Query NS Instances. @@ -184,7 +182,7 @@ paths: '/URI_is_provided_by_the_client_when_creating_the_subscription-NsIdentifierCreationNotification': post: - summary: Notify about NS lifecycle change + description: 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. This method shall follow the provisions specified in the Tables 6.4.18.3.1-1 and 6.4.18.3.1-2 for URI query parameters, @@ -264,7 +262,6 @@ paths: $ref: "../responses/SOL005_resp.yaml#/responses/503" get: - summary: Test the notification endpoint. description: > Query NS Instances. @@ -334,7 +331,6 @@ paths: '/URI_is_provided_by_the_client_when_creating_the_subscription-NsIdentifierDeletionNotification': post: - summary: Notify about NS lifecycle change description: > 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. @@ -416,7 +412,6 @@ paths: $ref: "../responses/SOL005_resp.yaml#/responses/503" get: - summary: Test the notification endpoint. description: > Query NS Instances. diff --git a/src/SOL005/NSLifecycleManagementNotification/definitions/SOL005NSLifecycleManagementNotification_def.yaml b/src/SOL005/NSLifecycleManagementNotification/definitions/SOL005NSLifecycleManagementNotification_def.yaml index cbfc6a79aa81ed59e833bc41fcafacc5894c5579..2568f4fa1d9a67b57f3525bb26525f52656a4269 100644 --- a/src/SOL005/NSLifecycleManagementNotification/definitions/SOL005NSLifecycleManagementNotification_def.yaml +++ b/src/SOL005/NSLifecycleManagementNotification/definitions/SOL005NSLifecycleManagementNotification_def.yaml @@ -159,11 +159,15 @@ definitions: $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" timestamp: description: > - Date-time of the generation of the notification. + Date-time of the generation of the notification. Shall be set to the + same "id" attribute value of the associated "NsInstance" + representation of the "Individual NS instance" resource. $ref: "../../definitions/SOL005_def.yaml#/definitions/DateTime" nsInstanceId: description: > - The created NS instance identifier + The created NS instance identifier. Shall be set to the same "id" + attribute value of the associated "NsInstance" representation of + the "Individual NS instance" resource. $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" _links: description: > @@ -203,7 +207,9 @@ definitions: $ref: "../../definitions/SOL005_def.yaml#/definitions/DateTime" nsInstanceId: description: > - The created NS instance identifier + The deleted NS instance identifier. Shall be set to the + same "id" attribute value of the associated "NsInstance" + representation of the "Individual NS instance" resource. $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" _links: description: > @@ -272,7 +278,7 @@ definitions: associated to the notification and impacts the NS component directly or indirectly. - $ref: "#/definitions/LcmOpNameForChangeNotificationType" + $ref: "../../NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/LcmOpNameForChangeNotificationType" lcmOpOccStatusImpactingNsComponent: description: > Indicates this status of the lifecycle @@ -280,7 +286,7 @@ definitions: associated to the notification and impacts the NS component directly or indirectly. - $ref: "#/definitions/LcmOpOccStatusForChangeNotificationType" + $ref: "../../NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/LcmOpOccStatusForChangeNotificationType" notificationType: description: > Discriminator for the different diff --git a/src/SOL005/NSPerformanceManagement/NSPerformanceManagement.yaml b/src/SOL005/NSPerformanceManagement/NSPerformanceManagement.yaml index ab293551c88a41b0a3b691516c766bbb6bda1d1b..6656ce08ca0adcf0fc660d98ecbde1cc39b3964e 100644 --- a/src/SOL005/NSPerformanceManagement/NSPerformanceManagement.yaml +++ b/src/SOL005/NSPerformanceManagement/NSPerformanceManagement.yaml @@ -1,7 +1,7 @@ swagger: "2.0" info: - version: "2.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + version: "2.1.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" title: "SOL005 - NS Performance Management Interface" description: > SOL005 - NS Performance Management Interface @@ -9,7 +9,7 @@ info: 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 Group Specification takes precedence. - Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis + Please report bugs to https://forge.etsi.org/rep/nfv/SOL005/issues license: name: "ETSI Forge copyright notice" url: https://forge.etsi.org/etsi-forge-copyright-notice.txt @@ -17,8 +17,8 @@ info: name: "NFV-SOL WG" externalDocs: - description: ETSI GS NFV-SOL 005 V2.7.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.07.01_60/gs_NFV-SOL005v020701p.pdf + description: ETSI GS NFV-SOL 005 V2.8.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.08.01_60/gs_NFV-SOL005v020801p.pdf basePath: /nspm/v2 @@ -60,7 +60,6 @@ paths: type: string post: - summary: Create a PM job. description: > The POST method creates a PM job. This method shall follow the provisions specified in the @@ -136,13 +135,14 @@ paths: $ref: "../responses/SOL005_resp.yaml#/responses/405" 406: $ref: "../responses/SOL005_resp.yaml#/responses/406" + 422: + $ref: "../responses/SOL005_resp.yaml#/responses/422" 500: $ref: "../responses/SOL005_resp.yaml#/responses/500" 503: $ref: "../responses/SOL005_resp.yaml#/responses/503" get: - summary: Query PM jobs. description: > The API consumer can use this method to retrieve information about PM jobs. parameters: @@ -186,7 +186,7 @@ paths: 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 PmJob structure in the response - body if this parameter is provided, or none of the parameters "all_fields," "fields", + body if this parameter is provided, or none of the parameters "all_fields", "fields", "exclude_fields", "exclude_default" are provided: reports. - name: nextpage_opaque_marker @@ -306,7 +306,6 @@ paths: type: string get: - summary: Read a single PM job. description: > The API consumer can use this method for reading an individual PM job. parameters: @@ -366,7 +365,6 @@ paths: $ref: "../responses/SOL005_resp.yaml#/responses/503" patch: - summary: Modify a PM job. description: > This method allows to modify an "individual PM job" resource. This method shall follow the provisions specified in the @@ -425,13 +423,14 @@ paths: $ref: "../responses/SOL005_resp.yaml#/responses/406" 412: $ref: "../responses/SOL005_resp.yaml#/responses/412" + 422: + $ref: "../responses/SOL005_resp.yaml#/responses/422" 500: $ref: "../responses/SOL005_resp.yaml#/responses/500" 503: $ref: "../responses/SOL005_resp.yaml#/responses/503" delete: - summary: Delete a PM job. description: > This method terminates an individual PM job. This method shall follow the provisions specified in the Tables 7.4.3.3.5-1 @@ -511,7 +510,6 @@ paths: type: string get: - summary: Read an individual performance report. description: > The API consumer can use this method for reading an individual performance report. @@ -592,7 +590,6 @@ paths: type: string post: - summary: Create a threshold. description: > The POST method can be used by the API consumer to create a threshold. @@ -672,13 +669,14 @@ paths: $ref: "../responses/SOL005_resp.yaml#/responses/405" 406: $ref: "../responses/SOL005_resp.yaml#/responses/406" + 422: + $ref: "../responses/SOL005_resp.yaml#/responses/422" 500: $ref: "../responses/SOL005_resp.yaml#/responses/500" 503: $ref: "../responses/SOL005_resp.yaml#/responses/503" get: - summary: Query thresholds. description: > The API consumer can use this method to query information about thresholds. parameters: @@ -801,7 +799,6 @@ paths: type: string get: - summary: Query a single threshold. description: > The API consumer can use this method for reading an individual threshold. @@ -865,7 +862,6 @@ paths: $ref: "../responses/SOL005_resp.yaml#/responses/503" patch: - summary: Modify a Threshold description: > This method allows to modify an "Individual threshold" resource. This method shall follow the provisions specified in the Tables @@ -921,13 +917,14 @@ paths: $ref: "../responses/SOL005_resp.yaml#/responses/406" 412: $ref: "../responses/SOL005_resp.yaml#/responses/412" + 422: + $ref: "../responses/SOL005_resp.yaml#/responses/422" 500: $ref: "../responses/SOL005_resp.yaml#/responses/500" 503: $ref: "../responses/SOL005_resp.yaml#/responses/503" delete: - summary: Delete a Threshold. description: > This method allows to delete a threshold. diff --git a/src/SOL005/NSPerformanceManagement/definitions/SOL005NSPerformanceManagement_def.yaml b/src/SOL005/NSPerformanceManagement/definitions/SOL005NSPerformanceManagement_def.yaml index 83ec79c822d4297086e515cb35ff7299703b9027..557b6d7d349c84dcc26557fd2c58f1653d76fb16 100644 --- a/src/SOL005/NSPerformanceManagement/definitions/SOL005NSPerformanceManagement_def.yaml +++ b/src/SOL005/NSPerformanceManagement/definitions/SOL005NSPerformanceManagement_def.yaml @@ -450,7 +450,7 @@ definitions: description: > New value of the "authentication" attribute, or "null" to remove the attribute. If present in a request body, these modifications shall be applied according to - the rules of JSON Merge PATCH (see IETF RFC 7396). + the rules of JSON Merge Patch (see IETF RFC 7396). This attribute shall not be present in response bodies. At least one of the attributes defined in this type shall be present in request bodies. $ref: "../../definitions/SOL005_def.yaml#/definitions/SubscriptionAuthentication" @@ -510,7 +510,7 @@ definitions: description: > Group of performance metrics. A metric group is a pre-defined list of metrics, - known to the producer that it can decompose to + known to the API producer that it can decompose to individual metrics. Valid values are specified as "Measurement Group" values in clause 7.3 of ETSI GS NFV-IFA 027. At least one of the two attributes @@ -520,10 +520,10 @@ definitions: $ref: "../../definitions/SOL005_def.yaml#/definitions/String" collectionPeriod: description: > - Specifies the periodicity at which the producer - will collect performance information. The unit - shall be seconds. - At the end of each reportingPeriod, the producer will inform the consumer about availability of the performance + Specifies the periodicity at which the API + producer will collect performance information. + The unit shall be seconds. + At the end of each reportingPeriod, the API producer will inform the API consumer about availability of the performance data collected for each completed collection period during this reportingPeriod. The reportingPeriod should be equal to or a multiple of the collectionPeriod. In the latter case, the performance data for the collection periods within one reporting period are reported together. @@ -534,10 +534,10 @@ definitions: default: 0 reportingPeriod: description: > - Specifies the periodicity at which the producer - will report to the consumer. + Specifies the periodicity at which the API + producer will report to the API consumer. about performance information. The unit shall be seconds. - At the end of each reportingPeriod, the producer will inform the consumer about availability of the performance + At the end of each reportingPeriod, the API producer will inform the API consumer about availability of the performance data collected for each completed collection period during this reportingPeriod. The reportingPeriod should be equal to or a multiple of the collectionPeriod. In the latter case, the performance data for the collection periods within one reporting period are reported together. diff --git a/src/SOL005/NSPerformanceManagementNotification/NSPerformanceManagementNotification.yaml b/src/SOL005/NSPerformanceManagementNotification/NSPerformanceManagementNotification.yaml index 469ba341964406a7c3d6647d68d0206f651c5159..13aa90291681918694e5cbbb1518f34e1922981e 100644 --- a/src/SOL005/NSPerformanceManagementNotification/NSPerformanceManagementNotification.yaml +++ b/src/SOL005/NSPerformanceManagementNotification/NSPerformanceManagementNotification.yaml @@ -1,21 +1,20 @@ swagger: "2.0" info: - version: "2.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + version: "2.1.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" title: "SOL005 - NS Performance Management Notification interface" description: > SOL005 - NS Performance Management Notification interface IMPORTANT: Please note that this file might be not aligned to the current version of the ETSI Group Specification it refers to. In case of discrepancies the published ETSI Group Specification takes precedence. - Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis + Please report bugs to https://forge.etsi.org/rep/nfv/SOL005/issues license: name: "ETSI Forge copyright notice" url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - externalDocs: - description: ETSI GS NFV-SOL 005 V2.7.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.07.01_60/gs_NFV-SOL005v020701p.pdf + description: ETSI GS NFV-SOL 005 V2.8.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.08.01_60/gs_NFV-SOL005v020801p.pdf basePath: /callback/v2 @@ -33,7 +32,7 @@ paths: ################################################################################## # Notification endpoint PerformanceInformationAvailableNotification # ################################################################################## - '/URI_is_provided_by_the_client_when_creating_the_subscription_PerformanceInformationAvailableNotificatio': + '/URI_is_provided_by_the_client_when_creating_the_subscription-PerformanceInformationAvailableNotification': parameters: - name: Authorization description: > @@ -50,7 +49,6 @@ paths: type: string post: - summary: Notify about PM related events description: > The POST method delivers a notification regarding a performance management event from the API producer to an API consumer. The API consumer shall have previously @@ -119,7 +117,6 @@ paths: $ref: "../responses/SOL005_resp.yaml#/responses/503" get: - summary: Test the notification endpoint description: > The GET method allows the API producer to test the notification endpoint that is provided by the API consumer, e.g. during @@ -178,7 +175,7 @@ paths: ################################################################################## # Notification endpoint ThresholdCrossedNotification # ################################################################################## - '/URI_is_provided_by_the_client_when_creating_the_subscription_ThresholdCrossedNotification': + '/URI_is_provided_by_the_client_when_creating_the_subscription-ThresholdCrossedNotification': parameters: - name: Authorization description: > @@ -195,7 +192,6 @@ paths: type: string post: - summary: Notify about PM related events description: > The POST method delivers a notification regarding a performance management event from the API producer to an API consumer. The API consumer shall have previously @@ -264,7 +260,6 @@ paths: $ref: "../responses/SOL005_resp.yaml#/responses/503" get: - summary: Test the notification endpoint description: > The GET method allows the API producer to test the notification endpoint that is provided by the API consumer, e.g. during @@ -318,4 +313,4 @@ paths: 500: $ref: "../responses/SOL005_resp.yaml#/responses/500" 503: - $ref: "../responses/SOL005_resp.yaml#/responses/503" \ No newline at end of file + $ref: "../responses/SOL005_resp.yaml#/responses/503" diff --git a/src/SOL005/NSPerformanceManagementNotification/definitions/SOL005NSPerformanceManagementNotification_def.yaml b/src/SOL005/NSPerformanceManagementNotification/definitions/SOL005NSPerformanceManagementNotification_def.yaml index 67c276eab5e23a8ba3b4624883736d3a336c80f7..bbd7dd6021ee0f7df56b883f392530eed47a6a27 100644 --- a/src/SOL005/NSPerformanceManagementNotification/definitions/SOL005NSPerformanceManagementNotification_def.yaml +++ b/src/SOL005/NSPerformanceManagementNotification/definitions/SOL005NSPerformanceManagementNotification_def.yaml @@ -14,6 +14,7 @@ definitions: - id - notificationType - timeStamp + - pmJobId - objectType - objectInstanceId - _links @@ -36,6 +37,10 @@ definitions: description: > Date and time of the generation of the notification. $ref: "../../definitions/SOL005_def.yaml#/definitions/DateTime" + pmJobId: + description: > + Identifier of the PM job for which performance information is available. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" objectType: description: > Type of the measured object. diff --git a/src/SOL005/VNFPackageManagement/VNFPackageManagement.yaml b/src/SOL005/VNFPackageManagement/VNFPackageManagement.yaml index 871aae853fb9919e5d47f515a72ca61b2376015b..2b6257a8516c8944bf9af3465e46f78d265efa39 100644 --- a/src/SOL005/VNFPackageManagement/VNFPackageManagement.yaml +++ b/src/SOL005/VNFPackageManagement/VNFPackageManagement.yaml @@ -1,7 +1,7 @@ swagger: "2.0" info: - version: "2.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + version: "2.1.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" title: SOL005 - VNF Package Management Interface description: > SOL005 - VNF Package Management Interface @@ -9,15 +9,15 @@ info: 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 Group Specification takes precedence. - Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis + Please report bugs to https://forge.etsi.org/rep/nfv/SOL005/issues license: name: "ETSI Forge copyright notice" url: https://forge.etsi.org/etsi-forge-copyright-notice.txt contact: name: "NFV-SOL WG" externalDocs: - description: ETSI GS NFV-SOL 005 V2.7.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.07.01_60/gs_NFV-SOL005v020701p.pdf + description: ETSI GS NFV-SOL 005 V2.8.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.08.01_60/gs_NFV-SOL005v020801p.pdf basePath: /vnfpkgm/v2 schemes: @@ -37,7 +37,7 @@ paths: # VNF Packages # ############################################################################### '/vnf_packages': - #ETSI GS NFV-SOL 005 V2.7.1 location: 9.4.2 + #ETSI GS NFV-SOL 005 V2.8.1 location: 9.4.2 parameters: - name: Authorization description: > @@ -53,7 +53,6 @@ paths: required: true type: string post: - summary: Create a new individual VNF package resource. description: > The POST method creates a new individual VNF package resource. parameters: @@ -139,7 +138,6 @@ paths: 504: $ref: "../responses/SOL005_resp.yaml#/responses/504" get: - 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 @@ -246,9 +244,7 @@ paths: schema: type: array items: - properties: - VnfPkgInfo: - $ref: "definitions/SOL005VNFPackageManagement_def.yaml#/definitions/VnfPkgInfo" + $ref: "definitions/SOL005VNFPackageManagement_def.yaml#/definitions/VnfPkgInfo" 400: $ref: "../responses/SOL005_resp.yaml#/responses/400" 401: @@ -272,7 +268,7 @@ paths: # Individual VNF Package # ############################################################################### '/vnf_packages/{vnfPkgId}': - #ETSI GS NFV-SOL 005 V2.7.1 location: 9.4.3 + #ETSI GS NFV-SOL 005 V2.8.1 location: 9.4.3 parameters: - name: vnfPkgId description: > @@ -294,7 +290,6 @@ paths: required: true type: string get: - summary: Read information about an individual VNF package. description: > The GET method reads the information of a VNF package. parameters: @@ -353,7 +348,6 @@ paths: 503: $ref: "../responses/SOL005_resp.yaml#/responses/503" patch: - summary: Update information about an individual VNF package. description: > "The PATCH method updates the information of a VNF package." @@ -403,9 +397,7 @@ paths: maximum: 1 minimum: 1 schema: - properties: - VnfPkgInfoModifications: - $ref: "definitions/SOL005VNFPackageManagement_def.yaml#/definitions/VnfPkgInfoModifications" + $ref: "definitions/SOL005VNFPackageManagement_def.yaml#/definitions/VnfPkgInfoModifications" 400: $ref: "../responses/SOL005_resp.yaml#/responses/400" 401: @@ -425,7 +417,6 @@ paths: 503: $ref: "../responses/SOL005_resp.yaml#/responses/503" delete: - summary: Delete an individual VNF package. description: > The DELETE method deletes an individual VNF Package resource. responses: @@ -467,7 +458,7 @@ paths: # VNFD in an individual VNF package # ############################################################################### '/vnf_packages/{vnfPkgId}/vnfd': - #ETSI GS NFV-SOL 005 V2.7.1 location: 9.4.4 + #ETSI GS NFV-SOL 005 V2.8.1 location: 9.4.4 parameters: - name: Authorization description: > @@ -491,24 +482,108 @@ paths: type: string required: true get: - summary: Read VNFD of an on-boarded VNF package. description: > The GET method reads the content of the VNFD within a VNF package. - The default format of the ZIP archive shall be the one specified in ETSI GS NFV-SOL 004 [5] where only the files - 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 and (if requested) further security information are included. This means that the structure of the - ZIP archive shall correspond to the directory structure used in the VNF package and that the archive shall contain the - following files from the package: - • TOSCA.meta (if available in the package). - • The main TOSCA definitions YAML file (either as referenced from TOSCA.meta or available as a file with - the extension ".yml" or ".yaml" from the root of the archive). - Every component of the VNFD referenced (recursively) from the main TOSCA definitions YAML file. - • The related security information, if the "include_signatures" URI parameter is provided, as follows: - - the manifest file; - - the singleton certificate file in the root of the VNF package (if available in the package); - - the signing certificates of the individual files included in the ZIP archive (if available in the package); - - the signatures of the individual files (if available in the package). + The VNFD is implemented as a collection of one or more files. A ZIP archive embedding these + files shall be returned when reading this resource. + The default format of the ZIP archive shall comply with the CSAR format as specified in ETSI + GS NFV-SOL 004 where only the files representing the VNFD and information needed to navigate + the ZIP archive and to identify the file that is the entry point for parsing the VNFD and (if requested) + further security information are included, and software images as well as other artifacts referenced + from the YAML files are excluded. This means that the structure of the ZIP archive shall correspond + to the directory structure used in the VNF package and that the archive shall contain the following + files from the package: + - TOSCA.meta (if available in the package). + - The main TOSCA definitions YAML file (either as referenced from TOSCA.meta or available as a file + with the extension ".yml" or ".yaml" from the root of the archive). + - Every component of the VNFD referenced (recursively) from the main TOSCA definitions YAML file. + + NOTE 1: For a VNFD based on TOSCA, it includes all the imported type definition files as indicated + in the top level service template and in any of the lower level service template if it has any as + described in ETSI GS NFV-SOL 001. + NOTE 2: For a VNFD based on YANG, it includes the file as indicated by the "yang_definitions" keyname + in the metadata section of the main yaml file as described in ETSI GS NFV-SOL 004. + + - The related security information, if the "include_signatures" URI parameter is provided, as follows: + - the manifest file; + - the singleton certificate file in the root of the VNF package (if available in the package); + - the signing certificates of the individual files included in the ZIP archive (if available in the package); + - the signatures of the individual files (if available in the package). + Tree examples are provided below. + + NOTE 3: These examples do not show the security related files. + + EXAMPLE 1: Assuming a request is sent for the following VNF package (as described in clause A.1 in ETSI GS NFV-SOL 004): + !------TOSCA-Metadata + !------TOSCA.meta (metadata for navigating the ZIP file) + + !------Definitions + !----- MRF.yaml (main VNFD file) + !----- OtherTemplates (e.g. type definitions referenced by the main VNFD file) + + !------Files + !----- ChangeLog.txt + !----- image(s) + !----- other artifacts + + !------Tests + !----- file(s) + + !------Licenses + !----- file(s) + + !------Scripts + !----- install.sh + !----- MRF.mf + + The NFVO will return a ZIP file of the following format: + !------TOSCA-Metadata + !------TOSCA.meta + + !------Definitions + !----- MRF.yaml + !----- OtherTemplates + + EXAMPLE 2: Assuming a request is sent for the following VNF package (a VNF package without a TOSCA Metadata directory, + as described in clause A.2 in ETSI GS NFV-SOL 004): + !------MRF.yaml (main VNFD file) + !------MRF.mf + !------ChangeLog.txt + + !------Tests + !----- file(s) + + !------Licenses + !----- file(s) + + !------Artifacts + !----- install.sh + !----- start.yang + + The NFVO will return a ZIP file of the following format: + !------MRF.yaml + + EXAMPLE 3: Assuming a request is sent for the following VNF package (a VNF package with the YANG VNFD without a + TOSCA-Metadata directory, as described in clause A.3 in ETSI GS NFV SOL 004): + !----CompanyVNFD.yaml + !----CompanyVNFD.xml + !----CompanyVNFD.mf + !----ChangeLog.txt + + !-----Files + + !-----Instance Data Files + !----start.xml + + !-----Licenses + + !-----Scripts + !-----install.sh + + The NFVO will return a ZIP file of the following format: + !----CompanyVNFD.yaml + !----CompanyVNFD.xml (indicated in the yang_definitions metadata in CompanyVNFD.yaml) parameters: - name: Accept description: > @@ -583,7 +658,7 @@ paths: # Access Configuration for external artifacts # ############################################################################### '/vnf_packages/{vnfPkgId}/ext_artifacts_access': - #ETSI GS NFV-SOL 005 V2.7.1 location: 9.4.4a + #ETSI GS NFV-SOL 005 V2.8.1 location: 9.4.4a parameters: - name: Authorization description: > @@ -607,7 +682,6 @@ paths: required: true type: string get: - summary: Get the content of external VNF package artifacts. description: > The GET method reads the access configuration information that is used by the NFVO to get the content of external VNF package artifacts. @@ -672,7 +746,6 @@ paths: 503: $ref: "../responses/SOL005_resp.yaml#/responses/503" put: - summary: Download the content of external VNF package artifacts. description: > The PUT method provides the access configuration information for the NFVO to download the content of external VNF package artifacts. @@ -763,7 +836,7 @@ paths: # Manifest in an individual VNF package # ############################################################################### '/vnf_packages/{vnfPkgId}/manifest': - #ETSI GS NFV-SOL 005 V2.7.1 location: 9.4.4b + #ETSI GS NFV-SOL 005 V2.8.1 location: 9.4.4b parameters: - name: Authorization description: > @@ -877,7 +950,7 @@ paths: # VNF Package Content # ############################################################################### '/vnf_packages/{vnfPkgId}/package_content': - #ETSI GS NFV-SOL 005 V2.7.1 location: 9.4.5 + #ETSI GS NFV-SOL 005 V2.8.1 location: 9.4.5 parameters: - name: Authorization description: > @@ -899,7 +972,6 @@ paths: required: true type: string get: - 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. @@ -982,7 +1054,6 @@ paths: 503: $ref: "../responses/SOL005_resp.yaml#/responses/503" put: - summary: Upload a VNF package by providing the content of the VNF package. description: > The PUT method uploads the content of a VNF package. This method shall follow the provisions specified in the @@ -992,7 +1063,9 @@ paths: structure to "UPLOADING". Upon successful upload of the package, if the package references external artifacts, the NFVO shall obtain the external artifacts. Subsequently, upon success, the NFVO shall set that attribute to "PROCESSING" and shall process the package, which shall include checking package consistency. Upon successful - processing, the NFVO shall set the "onboardingState" attribute to "ONBOARDED". If an error occurs during uploading + processing, the NFVO shall set the "onboardingState" attribute to "ONBOARDED", the "operationalState" attribute to + "ENABLED", and the "usageState" attribute to "NOT_IN_USE". In addition, the NFVO shall set the value of the attributes + in the "VnfPkgInfo" that are copied from the VNFD (refer to clause 9.5.2.5). If an error occurs during uploading the package, downloading the external artifacts or processing the package, the NFVO shall set the "onboardingState" attribute to "ERROR" and shall populate the "onboardingFailureDetails" attribute in "VnfPkgInfo". consumes: @@ -1054,7 +1127,7 @@ paths: # VNF package artifact # ############################################################################### '/vnf_packages/{vnfPkgId}/artifacts': - #ETSI GS NFV-SOL 005 V2.7.1 location: 9.4.5a + #ETSI GS NFV-SOL 005 V2.8.1 location: 9.4.5a parameters: - name: vnfPkgId description: > @@ -1079,13 +1152,14 @@ paths: required: true type: string get: - summary: Fetch set of VNF package artifacts. description: > The GET method shall return an archive that contains a set of artifacts according to the provisions for inclusion/exclusion defined below, embedded in a directory structure being the same as in the VNF package. The criteria for exclusion/inclusion of an artifact in the archive are defined as follows: • Artifacts that are software images shall be excluded from the archive. - • Artifacts that are external to the VNF package shall be excluded from the archive. + • Artifacts that are not software images and that are external to the VNF package shall be excluded from the + archive unless the URI query parameter "include_external_artifacts" has been provided. + External artifacts shall be included in the archive using the content of the "artifactPath" attribute as the path. • All additional artifacts included in the VNF package that are MANO artifacts shall be included in the archive, unless the URI query parameter "exclude_all_mano_artifacts" has been provided, in which case such artifacts shall be excluded. @@ -1141,7 +1215,7 @@ paths: Flag (i.e. parameter without value) that instructs the NFVO to exclude the set of additional MANO artifacts (i.e. those that are not images) from the response payload body. - The NFVO shall support this parameter. The VNFM may supply + The NFVO shall support this parameter. The OSS/BSS may supply this parameter. - name: exclude_all_non_mano_artifacts in: query @@ -1151,8 +1225,18 @@ paths: Flag (i.e. parameter without value) that instructs the NFVO to exclude the set of non-MANO artifacts from the response payload body. - The NFVO shall support this parameter. The VNFM may supply - this parameter. + The NFVO shall support this parameter. The OSS/BSS may supply + this parameter. + - name: include_external_artifacts + description: > + Flag (i.e. parameter without value) that instructs the NFVO to include + external artifacts in the response payload body. It shall not be treated + as an error if this flag is provided but there is no external artifact to + include in the result. If this parameter is missing, no external artifacts + shall be included. + The NFVO shall support this parameter. The OSS/BSS may supply this parameter. + in: query + type: string - name: select_non_mano_artifact_sets in: query required: false @@ -1162,7 +1246,7 @@ paths: which the artifacts are to be included in the response body. The NFVO should support this parameter. If the NFVO does not support this parameter, it shall ignore it, i.e. provide a response as - if no parameter was provided. The VNFM may supply this + if no parameter was provided. The OSS/BSS may supply this parameter. responses: 200: @@ -1257,9 +1341,8 @@ paths: # Upload VNF package from URI task # ############################################################################### '/vnf_packages/{vnfPkgId}/package_content/upload_from_uri': - #ETSI GS NFV-SOL 005 V2.7.1 location: 9.4.6 + #ETSI GS NFV-SOL 005 V2.8.1 location: 9.4.6 post: - summary: Upload a VNF package by providing the address information of the VNF package. description: > The POST method provides the information for the NFVO to get the content of a VNF package. This method shall follow the provisions specified in the Tables 9.4.6.3.1-1 and 9.4.6.3.1-2 for URI query parameters, @@ -1268,7 +1351,9 @@ paths: to "UPLOADING". Upon successfully obtaining the package, if the package references external artifacts, the NFVO shall obtain the external artifacts. Subsequently, upon success, the NFVO shall set that attribute to "PROCESSING" and shall process the package, which shall include checking package consistency. Upon successful processing, the NFVO - shall set the "onboardingState" attribute to "ONBOARDED". If an error occurs during obtaining the package, + shall set the "onboardingState" attribute to "ONBOARDED", the "operationalState" attribute to "ENABLED", and the + "usageState" attribute to "NOT_IN_USE". In addition, the NFVO shall set the value of the attributes in the "VnfPkgInfo" + that are copied from the VNFD (refer to clause 9.5.2.5). If an error occurs during obtaining the package, downloading the external artifacts or processing the package, the NFVO shall set the "onboardingState" attribute to "ERROR" and shall populate the "onboardingFailureDetails" attribute in "VnfPkgInfo". parameters: @@ -1344,7 +1429,7 @@ paths: # Individual VNF package artifact # ############################################################################### '/vnf_packages/{vnfPkgId}/artifacts/{artifactPath}': - #ETSI GS NFV-SOL 005 V2.7.1 location: 9.4.7 + #ETSI GS NFV-SOL 005 V2.8.1 location: 9.4.7 parameters: - name: vnfPkgId description: > @@ -1358,7 +1443,7 @@ paths: - name: artifactPath description: > For an artifact contained as a file in the VNF package, this variable shall contain a sequence of - one or path segments representing the path of the artifact within the VNF package, relative to + one or more path segments representing the path of the artifact within the VNF package, relative to the root of the package. See note 3. EXAMPLE: foo/bar/m%40ster.sh For an external artifact represented as a URI in the VNF package manifest, this variable shall @@ -1382,7 +1467,6 @@ paths: required: true type: string get: - 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 @@ -1524,7 +1608,7 @@ paths: # Subscriptions # ############################################################################### '/subscriptions': - #ETSI GS NFV-SOL 005 V2.7.1 location: 9.4.8 + #ETSI GS NFV-SOL 005 V2.8.1 location: 9.4.8 parameters: - name: Authorization description: > @@ -1540,20 +1624,19 @@ paths: required: true type: string post: - 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. - 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). + As the result of successfully executing this method, a new "Individual subscription" resource as defined + in clause 9.4.9 shall have been created. This method shall not trigger any notification. + Creation of two "Individual subscription" resources with the same callback URI and the same filter can + result in performance degradation and will provide duplicates of notifications to the OSS/BSS, and might + make sense only in very rare use cases. Consequently, the NFVO may either allow creating a new "Individual + subscription" resource if another "Individual subscription" resource with the same filter and callback URI + already exists (in which case it shall return the "201 Created" response code), or may decide to not create + a duplicate "Individual subscription" resource (in which case it shall return a "303 See Other" response + code referencing the existing "Individual subscription" resource with the same filter and callback URI). parameters: - name: Accept description: > @@ -1586,8 +1669,7 @@ paths: The response body shall contain a representation of the created "Individual subscription" resource. The HTTP response shall include a "Location" - HTTP header that points to the created - subscription resource. + HTTP header that points to the created resource. headers: Content-Type: description: The MIME type of the body of the response. @@ -1633,7 +1715,6 @@ paths: 503: $ref: "../responses/SOL005_resp.yaml#/responses/503" get: - 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. @@ -1645,11 +1726,11 @@ paths: required: false type: string description: > - 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. + Attribute-based filter 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 PkgmSubscription and in data types referenced from it - shall be supported by the NFVO in the filtering expression + shall be supported by the NFVO in the filter expression - name: nextpage_opaque_marker in: query required: false @@ -1725,14 +1806,14 @@ paths: # Individual subscription # ############################################################################### '/subscriptions/{subscriptionId}': - #ETSI GS NFV-SOL 005 V2.7.1 location: 9.4.9 + #ETSI GS NFV-SOL 005 V2.8.1 location: 9.4.9 parameters: - name: subscriptionId description: > Identifier of this subscription. This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a POST request - creating a new subscription resource. It can also be retrieved from + creating a new "Individual subscription" resource. It can also be retrieved from the "id" attribute in the payload body of that response. in: path type: string @@ -1751,7 +1832,6 @@ paths: required: true type: string get: - summary: Read an individual subscription resource. description: > Query Subscription Information The GET method reads an individual subscription. @@ -1813,7 +1893,6 @@ paths: 503: $ref: "../responses/SOL005_resp.yaml#/responses/503" delete: - 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 diff --git a/src/SOL005/VNFPackageManagement/definitions/SOL005VNFPackageManagement_def.yaml b/src/SOL005/VNFPackageManagement/definitions/SOL005VNFPackageManagement_def.yaml index 22cdea768342a5c9ddb5cc8da6be7c064d7f7ba8..aac5085a4d98492c67510e60a380aed0956d5e9e 100644 --- a/src/SOL005/VNFPackageManagement/definitions/SOL005VNFPackageManagement_def.yaml +++ b/src/SOL005/VNFPackageManagement/definitions/SOL005VNFPackageManagement_def.yaml @@ -150,7 +150,7 @@ definitions: $ref: "../../definitions/SOL005_def.yaml#/definitions/Link" vnfd: description: > - Link to the VNFD resource. + Link to the "VNFD in an individual VNF package" resource. $ref: "../../definitions/SOL005_def.yaml#/definitions/Link" packageContent: description: > @@ -159,7 +159,7 @@ definitions: VnfPackageArtifactInfo: description: > - This type represents an artifact other than a software image which is contained in a VNF package. + This type represents an artifact other than a software image which is contained in or external to a VNF package. It shall comply with provisions defined in Table 9.5.3.3-1. required: - isEncrypted @@ -175,7 +175,7 @@ definitions: attribute shall start with the name of the first segment in the path in the package, i.e. it shall not be prefixed by path separator characters such as "." and "/". - EXAMPLE: foo/bar/m@ster + EXAMPLE: foo/bar/m@ster.sh For an external artifact represented as a URI in the VNF descriptor, this attribute shall be present if the artifact has been downloaded by the NFVO and shall be absent @@ -198,6 +198,18 @@ definitions: description: > Checksum of the artifact file. $ref: "../../definitions/SOL005_def.yaml#/definitions/Checksum" + isEncrypted: + description: > + Reflects whether the artifact is encrypted (true) or not (false). + type: boolean + nonManoArtifactSetId: + description: > + Non-MANO artifact set identifier of the non-MANO artifact + set to which the artifact belongs, as defined in + clause 4.3.7 of ETSI GS NFV-SOL 004 [5]. Shall be + provided if the artifact is a non-MANO artifact, and shall + be omitted otherwise. + type: string artifactClassification: description: > Marks specific types of artifacts as defined in the VNF @@ -215,18 +227,6 @@ definitions: - HISTORY - TESTING - LICENSE - isEncrypted: - description: > - Reflects whether the artifact is encrypted (true) or not (false). - type: boolean - nonManoArtifactSetId: - description: > - Non-MANO artifact set identifier of the non-MANO artifact - set to which the artifact belongs, as defined in - clause 4.3.7 of ETSI GS NFV-SOL 004 [5]. Shall be - provided if the artifact is a non-MANO artifact, and shall - be omitted otherwise. - type: string metadata: description: > The metadata of the artifact that are available in the @@ -244,8 +244,8 @@ definitions: vnfPackage: description: > Link to the resource representing the VNF package to - which the notified change applies, i.e. the individual on boarded - VNF package resource that represents the VNF package. + which the notified change applies, i.e. the "Individual + VNF package" resource that represents the VNF package. $ref: "../../definitions/SOL005_def.yaml#/definitions/NotificationLink" subscription: description: > @@ -254,7 +254,7 @@ definitions: VnfPackageSoftwareImageInfo: description: > - This type represents an artifact contained in a VNF package which represents a software image. + This type represents an artifact contained in or external to a VNF package which represents a software image. required: - id - name @@ -373,8 +373,33 @@ definitions: description: > Path in the VNF package, which identifies the image artifact and also allows to access a copy of the image - artifact. + artifact. For a software image contained as a file in + the VNF package, this attribute shall be present, and + the value of this attribute shall start with the name + of the first segment in the path in the package, i.e., + it shall not be prefixed by path separator characters + such as "." and "/". + + EXAMPLE: foo/bar/m%40ster.vhd + For an external software image represented as a URI in + the VNF descriptor, this attribute shall be present if + the image artifact has been downloaded by the NFVO and + shall be absent otherwise. If present, it shall contain + the artifactPath under which the image artifact can be + obtained using the "Individual artifact in a VNF package" + resource defined in clause 9.4.7. It is the responsibility + of the NFVO to synthesize this path in a manner that avoids + any collision of the synthesized artifact path with the paths + and names of image artifacts included in the package. type: string + imageUri: + description: > + URI of the image artifact as defined in the VNF package manifest. + Shall be present if the image artifact is external to the VNF + package and shall be absent otherwise. + + EXAMPLE: https://example.com/m%40ster.vhd + $ref: "../../definitions/SOL005_def.yaml#/definitions/Uri" NsdOperationalStateType: type: "string" @@ -419,8 +444,8 @@ definitions: description: > "The enumeration PackageUsageStateType shall comply with the provisions. Acceptable values are: - -IN_USE - VNF instances instantiated from this VNF package exist. - -NOT_IN_USE - No existing VNF instance is instantiated from this VNF package" + - IN_USE: "Individual VNF instance" resources created from this VNF package exist. + - NOT_IN_USE: - No "individual VNF instance" resource created from this VNF package exists. enum: - "IN_USE" - "NOT_IN_USE" @@ -533,7 +558,7 @@ definitions: properties: id: description: > - Identifier of this subscription resource + Identifier of this "Individual subscription" resource. $ref: "../../definitions/SOL005_def.yaml#/definitions/Uri" filter: description: > diff --git a/src/SOL005/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml b/src/SOL005/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml index 18364dc7b8cb7fc976451cd2ac8ad52ea157027e..873a69b47888b2767bb853d813927ac1474ec82a 100644 --- a/src/SOL005/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml +++ b/src/SOL005/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml @@ -1,19 +1,20 @@ swagger: "2.0" info: - version: "2.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + version: "2.1.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" title: "SOL005 - VNF Package Management Notification interface" description: > SOL005 - VNF Package Management Notification interface IMPORTANT: Please note that this file might be not aligned to the current version of the ETSI Group Specification it refers to. In case of discrepancies the published ETSI Group Specification takes precedence. - Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis + Please report bugs to https://forge.etsi.org/rep/nfv/SOL005/issues license: name: "ETSI Forge copyright notice" url: https://forge.etsi.org/etsi-forge-copyright-notice.txt externalDocs: - description: ETSI GS NFV-SOL 005 V2.7.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.07.01_60/gs_NFV-SOL005v020701p.pdf + description: ETSI GS NFV-SOL 005 V2.8.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.08.01_60/gs_NFV-SOL005v020801p.pdf + basePath: /callback/v1 schemes: - http @@ -28,7 +29,6 @@ paths: ################################################################################## '/URI_is_provided_by_the_client_when_creating_the_subscription-VnfPackageOnboardingNotification': post: - summary: Notify about VNF package onboarding or change description: > 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. @@ -100,7 +100,6 @@ paths: $ref: "../responses/SOL005_resp.yaml#/responses/503" get: - summary: Test the notification endpoint. description: > The GET method allows the API producer to test the notification endpoint that is provided by the API consumer, e.g. during subscription. @@ -166,12 +165,10 @@ paths: '/URI_is_provided_by_the_client_when_creating_the_subscription-VnfPackageChangeNotification': 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: VnfPackageChangeNotification description: > @@ -241,7 +238,6 @@ paths: $ref: "../responses/SOL005_resp.yaml#/responses/503" get: - summary: Test the notification endpoint description: > The GET method allows the API producer to test the notification endpoint that is provided by the API consumer, e.g. during subscription. diff --git a/src/SOL005/VNFPackageManagementNotification/definitions/SOL005VNFPackageManagementNotification_def.yaml b/src/SOL005/VNFPackageManagementNotification/definitions/SOL005VNFPackageManagementNotification_def.yaml index 11c6f48a752fdf132a862ec2b50cea64fb5b9222..a6f9749fd736532de4b7ce1d97858f627ca6867f 100644 --- a/src/SOL005/VNFPackageManagementNotification/definitions/SOL005VNFPackageManagementNotification_def.yaml +++ b/src/SOL005/VNFPackageManagementNotification/definitions/SOL005VNFPackageManagementNotification_def.yaml @@ -75,7 +75,7 @@ definitions: 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". + package has the value "ONBOARDED" (i.e. the package has been onboarded previously"). • The on-boarded VNF package has been deleted, and the "onboardingState" attribute of the deleted package had the value "ONBOARDED". type: object diff --git a/src/SOL005/endpoints/SOL005_endpoints.yaml b/src/SOL005/endpoints/SOL005_endpoints.yaml index b5ee389c3ae71e6fb92cb92dcf1893c4ad9a7ffa..506f8ab44f8211ee6297e557f98900d3edec658d 100644 --- a/src/SOL005/endpoints/SOL005_endpoints.yaml +++ b/src/SOL005/endpoints/SOL005_endpoints.yaml @@ -10,7 +10,6 @@ endpoints: required: false type: string get: - summary: Retrieve API version information description: > The GET method reads API version information. This method shall follow the provisions specified in table 4.6.3.3.3.2-1 for request and response data structures, and response codes. URI query parameters are not @@ -38,7 +37,6 @@ endpoints: 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' } 413: { $ref: '../responses/SOL005_resp.yaml#/responses/413' } 414: { $ref: '../responses/SOL005_resp.yaml#/responses/414' } @@ -47,4 +45,28 @@ endpoints: 429: { $ref: '../responses/SOL005_resp.yaml#/responses/429' } 500: { $ref: '../responses/SOL005_resp.yaml#/responses/500' } 503: { $ref: '../responses/SOL005_resp.yaml#/responses/503' } - 504: { $ref: '../responses/SOL005_resp.yaml#/responses/504' } \ No newline at end of file + 504: { $ref: '../responses/SOL005_resp.yaml#/responses/504' } + post: + description: > + This method is not supported. When this method is requested on this resource, the API producer shall + return a "405 Method Not Allowed" response + responses: + 405: { $ref: '../responses/SOL005_resp.yaml#/responses/405' } + put: + description: > + This method is not supported. When this method is requested on this resource, the API producer shall + return a "405 Method Not Allowed" response + responses: + 405: { $ref: '../responses/SOL005_resp.yaml#/responses/405' } + patch: + description: > + This method is not supported. When this method is requested on this resource, the API producer shall + return a "405 Method Not Allowed" response + responses: + 405: { $ref: '../responses/SOL005_resp.yaml#/responses/405' } + delete: + description: > + This method is not supported. When this method is requested on this resource, the API producer shall + return a "405 Method Not Allowed" response + responses: + 405: { $ref: '../responses/SOL005_resp.yaml#/responses/405' } diff --git a/src/SOL005/responses/SOL005_resp.yaml b/src/SOL005/responses/SOL005_resp.yaml index 2d898dc98a1fd06b4732eba6c07cff7a7137a1f3..af3b4d12e56e0266b05b97d3337420a92ee4fc06 100644 --- a/src/SOL005/responses/SOL005_resp.yaml +++ b/src/SOL005/responses/SOL005_resp.yaml @@ -69,6 +69,9 @@ responses: 303: description: > 303 SEE OTHER + Shall be returned when a subscription with the same callback URI and the same filter already exists 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 "Individual subscription" resource. + The response body shall be empty. headers: Content-Type: description: The MIME type of the body of the response. @@ -267,7 +270,9 @@ responses: minimum: 1 schema: $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" - + maximum: 1 + minimum: 0 + 406: description: > 406 NOT ACCEPTABLE