diff --git a/Readme.md b/Readme.md index 59baacd0f4388f33f402492962e5cd1de3ddc11c..36c1f1f2f2853a8af30983b784227de0e9d71a31 100644 --- a/Readme.md +++ b/Readme.md @@ -1,7 +1,8 @@ # NFV SOL002 and SOL003 APIs This repository hosts the [OpenAPI](https://www.openapis.org/) specificatons and other documentation -for the APIs defined in ETSI NFV GSs [SOL002](https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.07.01_60/gs_NFV-SOL002v020701p.pdf) and [SOL003](https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.07.01_60/gs_nfv-sol003v020701p.pdf). +for the APIs defined in ETSI NFV GSs [SOL002](https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.08.01_60/gs_NFV-SOL002v020801p.pdf) and +[SOL003](https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.08.01_60/gs_nfv-sol003v020801p.pdf). The APIs described in this repository are defined for the following reference points: diff --git a/src/SOL002/APIVersion/APIVersion.yaml b/src/SOL002/APIVersion/APIVersion.yaml index c050b0548c5e01f140a6637b41da507c54a2a9a6..884fcdad04bf520a5c6bf5ff138d29f956fd976f 100644 --- a/src/SOL002/APIVersion/APIVersion.yaml +++ b/src/SOL002/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/SOL002-SOL003/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 002 V2.7.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.07.01_60/gs_nfv-sol002v020701p.pdf + description: ETSI GS NFV-SOL 002 V2.8.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.08.01_60/gs_NFV-SOL002v020801p.pdf schemes: - http diff --git a/src/SOL002/VNFConfiguration/VNFConfiguration.yaml b/src/SOL002/VNFConfiguration/VNFConfiguration.yaml index b70febcf653489cc32a261c145addbff20117d47..bcefa18d0e7b22121ab8dc4849121b8e6b3e67bc 100644 --- a/src/SOL002/VNFConfiguration/VNFConfiguration.yaml +++ b/src/SOL002/VNFConfiguration/VNFConfiguration.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/SOL002-SOL003/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 002 V2.7.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.07.01_60/gs_nfv-sol002v020701p.pdf + description: ETSI GS NFV-SOL 002 V2.8.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.08.01_60/gs_NFV-SOL002v020801p.pdf basePath: /vnfconfig/v1 @@ -58,9 +58,8 @@ paths: required: false type: string get: - summary: Read VNF/VNFC configuration from VNF description: > - The client can use this method to read configuration information about a VNF instance and/or its VNFC instances. + The API consumer can use this method to read configuration information about a VNF instance and/or its VNFC instances. responses: 200: description: > @@ -113,7 +112,6 @@ paths: 504: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" patch: - summary: Modify VNF/VNFC configuration. description: This method sets or modifies a configuration resource. parameters: - name: configModifications diff --git a/src/SOL002/VNFConfiguration/definitions/SOL002VNFConfiguration_def.yaml b/src/SOL002/VNFConfiguration/definitions/SOL002VNFConfiguration_def.yaml index 45d668898061fcb722b6285b675d926c6b456944..f2a34e4d969e9e40714a5249393f226181caac6b 100644 --- a/src/SOL002/VNFConfiguration/definitions/SOL002VNFConfiguration_def.yaml +++ b/src/SOL002/VNFConfiguration/definitions/SOL002VNFConfiguration_def.yaml @@ -100,6 +100,7 @@ definitions: vnfcInstanceId: description: > Identifier of a VNFC instance to which this set of configuration data applies. + The identifier references the "id" attribute in a "VnfcInfo" structure. $ref: '../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf' intCpConfig: description: > diff --git a/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml b/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml index 0b7df075439ed9dc48522512a0fd1d08117ff7f4..716f53ae34d6a9d8ecfaa740b67729d87c195256 100644 --- a/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml +++ b/src/SOL002/VNFFaultManagement/VNFFaultManagement.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/SOL002-SOL003/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 002 V2.7.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.07.01_60/gs_nfv-sol002v020701p.pdf + description: ETSI GS NFV-SOL 002 V2.8.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.08.01_60/gs_NFV-SOL002v020801p.pdf basePath: /vnffm/v1 @@ -43,7 +43,7 @@ paths: # Alarms # ############################################################################### '/alarms': - #SOL003 location: 7.4.2 + #SOL002 location: 7.4.2 parameters: - name: Version description: > @@ -60,7 +60,7 @@ paths: type: string get: description: > - The client can use this method to retrieve information about the alarm + The API consumer can use this method to retrieve information about the alarm list. parameters: - name: Accept @@ -190,7 +190,7 @@ paths: # Individual alarm # ############################################################################### '/alarms/{alarmId}': - #SOL003 location: 7.4.3 + #SOL002 location: 7.4.3 parameters: - name: alarmId description: > @@ -218,7 +218,7 @@ paths: type: string get: description: > - The client can use this method to read an individual alarm. + The API consumer can use this method to read an individual alarm. parameters: - name: Accept description: > @@ -474,7 +474,7 @@ paths: # Subscriptions # ############################################################################### '/subscriptions': - #SOL003 location: 7.4.4 + #SOL002 location: 7.4.5 parameters: - name: Version description: > @@ -602,8 +602,8 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" get: description: > - The client can use this method to retrieve the list of active - subscriptions for VNF alarms subscribed by the client. It can be used + The API consumer can use this method to retrieve the list of active + subscriptions for VNF alarms subscribed by the API consumer. It can be used e.g. for resynchronization after error situations. parameters: - name: Accept @@ -667,7 +667,7 @@ paths: description: > 200 OK - The list of subscriptions has been queried successfully. The response + Shall be returned when the list of subscriptions has been queried successfully. The response body shall contain the representations of all active subscriptions of the functional block that invokes the method. If the "filter" URI parameter was supplied in the request, the data @@ -759,8 +759,8 @@ paths: type: string get: description: > - The client can use this method for reading an individual subscription - for VNF alarms subscribed by the client. + The API consumer can use this method for reading an individual subscription + for VNF alarms subscribed by the API consumer. parameters: - name: Accept description: > diff --git a/src/SOL002/VNFFaultManagement/definitions/SOL002VNFFaultManagement_def.yaml b/src/SOL002/VNFFaultManagement/definitions/SOL002VNFFaultManagement_def.yaml index e2b4c336a9238af2f9a5b3915c338e8d6abc8b81..7a6da418f7cadf7e410a50516aacb842fe5b0d61 100644 --- a/src/SOL002/VNFFaultManagement/definitions/SOL002VNFFaultManagement_def.yaml +++ b/src/SOL002/VNFFaultManagement/definitions/SOL002VNFFaultManagement_def.yaml @@ -28,7 +28,9 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" vnfcInstanceIds: description: > - Identifiers of the affected VNFC instances. + Identifiers of the affected VNFC instances. Each identifier references the "id" + attribute in a "VnfcInfo" structure. Shall be present if the alarm affects at + least one VNFC instance. type: array items: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" diff --git a/src/SOL002/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml b/src/SOL002/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml index 061f08c2337fca7c9ae6c8c5620f087fd0984b83..da9b2c9a6847bf12f3e0c3a15f5bf5f05f8bd5e3 100644 --- a/src/SOL002/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml +++ b/src/SOL002/VNFFaultManagementNotification/VNFFaultManagementNotification.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/SOL002-SOL003/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 002 V2.7.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.07.01_60/gs_nfv-sol002v020701p.pdf + description: ETSI GS NFV-SOL 002 V2.8.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.08.01_60/gs_NFV-SOL002v020801p.pdf basePath: /callback/v1 @@ -36,7 +36,7 @@ paths: ############################################################################### # Notification endpoint AlarmNotification # ############################################################################### - '/URI-is-provided-by-the-client-when-creating-the-subscription_AlarmNotification': + '/URI_is_provided_by_the_client_when_creating_the_subscription-AlarmNotification': parameters: - name: Version description: > @@ -112,8 +112,8 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" get: 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. responses: 204: description: > @@ -154,7 +154,7 @@ paths: ############################################################################### # Notification endpoint AlarmClearedNotification # ############################################################################### - '/URI-is-provided-by-the-client-when-creating-the-subscription_AlarmClearedNotification': + '/URI_is_provided_by_the_client_when_creating_the_subscription-AlarmClearedNotification': parameters: - name: Version description: > @@ -230,8 +230,8 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" get: 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. responses: 204: description: > @@ -272,7 +272,7 @@ paths: ############################################################################### # Notification endpoint AlarmListRebuiltNotification # ############################################################################### - '/URI-is-provided-by-the-client-when-creating-the-subscription_AlarmListRebuiltNotification': + '/URI_is_provided_by_the_client_when_creating_the_subscription-AlarmListRebuiltNotification': parameters: - name: Version description: > @@ -348,8 +348,8 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" get: 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. responses: 204: description: > diff --git a/src/SOL002/VNFIndicator/VNFIndicator.yaml b/src/SOL002/VNFIndicator/VNFIndicator.yaml index cb5532d79a3d54d8074b1251532f682664a6bb01..7f29eb85817b747b6523092a4568d6d0e04b99a4 100644 --- a/src/SOL002/VNFIndicator/VNFIndicator.yaml +++ b/src/SOL002/VNFIndicator/VNFIndicator.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/SOL002-SOL003/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 002 V2.7.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.07.01_60/gs_nfv-sol002v020701p.pdf + description: ETSI GS NFV-SOL 002 V2.8.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.08.01_60/gs_NFV-SOL002v020801p.pdf basePath: /vnfind/v1 @@ -58,7 +58,6 @@ paths: required: false type: string get: - summary: Query multiple indicators description: Get a list of indicators. Support of attribute based filtering via query parameters. parameters: - name: filter @@ -110,8 +109,8 @@ paths: Shall be returned when information about zero or more VNF indicators was queried successfully. The response body shall contain in an array the - representations of all VNF indicators that match the attribute-based - filtering parameters, i.e. zero or more representations of VNF indicators + representations of all VNF indicators that match the attribute + filter, i.e. zero or more representations of VNF indicators as defined in clause 8.5.2.2. If the "filter" URI parameter was supplied in the request, the data in the response body shall have been transformed according to the rules @@ -195,7 +194,6 @@ paths: required: false type: string get: - summary: Query multiple indicators related to a VNF instance. description: > Get a list of indicators related to a specific VNF instance. Support of attribute based filtering via query parameters. parameters: @@ -341,7 +339,6 @@ paths: required: false type: string get: - summary: Read an inidividual VNF indicator related to a VNF instance. description: > Read an individual VNF indicator related to a specific VNF instance. NOTE: This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a @@ -396,7 +393,6 @@ paths: ############################################################################### /subscriptions: post: - summary: Create a new subscription to VNF indicator change notifications description: > This method creates a new subscription. As the result of successfully executing this method, a new "Individual @@ -518,7 +514,6 @@ paths: 504: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" get: - summary: Query multiple subscriptions. description: > Service Unavailable @@ -649,11 +644,10 @@ paths: required: false type: string get: - summary: Read an individual subscription. description: > Service Unavailable - This resource represents an individual subscription. The client can use this resource to + This resource represents an individual subscription. The API consumer can use this resource to read and to terminate a subscription to notifications related to VNF indicator value changes. parameters: - name: subscriptionId @@ -713,7 +707,6 @@ paths: 504: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" delete: - summary: Delete a subscription description: > This method terminates an individual subscription. As the result of successfully executing this method, the "Individual @@ -741,7 +734,7 @@ paths: description: > 204 NO CONTENT - Shall be returned when the subscription has been deleted successfully. + Shall be returned when the "Individual subscription" has been deleted successfully. The response body shall be empty. headers: Version: diff --git a/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml b/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml index 3bc5145b9b87079414314e3c59ab6e3418ed6929..5a601c574e5ab92096965714b83afd3cf7513849 100644 --- a/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml +++ b/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml @@ -2,14 +2,14 @@ swagger: "2.0" info: version: "1.2.1-impl:etsi.org:ETSI_NFV_OpenAPI:1" - title: SOL002 - VNF Indicator Notification Endpoint interface + title: SOL002 - VNF Indicator Notification interface description: > - SOL002 - VNF Indicator Notification Endpoint interface + SOL002 - VNF Indicator Notification interface IMPORTANT: Please note that this file might be not aligned to the current version of the ETSI Group Specification it refers to and has not been approved by the ETSI NFV ISG. In case of discrepancies the published ETSI 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/SOL002-SOL003/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 002 V2.7.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.07.01_60/gs_nfv-sol002v020701p.pdf + description: ETSI GS NFV-SOL 002 V2.8.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.08.01_60/gs_NFV-SOL002v020801p.pdf schemes: - http @@ -34,7 +34,7 @@ paths: ############################################################################### # Notification endpoint VnfIndicatorValueChangeNotification # ############################################################################### - '/URI-is-provided-by-the-client-when-creating-the-subscription_VnfIndicatorValueChangeNotification': + '/URI_is_provided_by_the_client_when_creating_the_subscription-VnfIndicatorValueChangeNotification': parameters: - name: Version description: > @@ -50,7 +50,6 @@ paths: required: false type: string post: - summary: Notification endpoint description: > The API producer can use this resource to send notifications related to VNF indicator value changes to a subscribed API consumer, which has provided the URI of this resource @@ -94,12 +93,11 @@ paths: 503: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" get: - summary: Test notification endpoint. description: > Service Unavailable - 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. responses: 204: description: > diff --git a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml index 51bbbc5c048d5f04d44de0e42ecf8222de1d4524..547f1e0c8078a1c3d5b11a14e3079d7448585af3 100644 --- a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -1,7 +1,7 @@ swagger: "2.0" info: - version: "1.4.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + version: "1.5.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" title: SOL002 - VNF Lifecycle Management interface description: > SOL002 - VNF Lifecycle 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/SOL002-SOL003/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 002 V2.7.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.07.01_60/gs_nfv-sol002v020701p.pdf + description: ETSI GS NFV-SOL 002 V2.8.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.08.01_60/gs_NFV-SOL002v020801p.pdf basePath: /vnflcm/v1 @@ -43,7 +43,7 @@ paths: # VNF instances # ############################################################################### '/vnf_instances': - #SOL003 location: 5.4.2 + #SOL002 location: 5.4.2 parameters: - name: Version description: > @@ -60,7 +60,7 @@ paths: type: string post: description: > - The POST method creates a new VNF instance resource. + The POST method creates a new VNF instance resource based on a VNF package that is onboarded and in "ENABLED" state. parameters: - name: createVnfRequest description: > @@ -293,7 +293,7 @@ paths: # Individual VNF instance # ############################################################################### '/vnf_instances/{vnfInstanceId}': - #SOL003 location: 5.4.3.2 + #SOL002 location: 5.4.3.2 parameters: - name: vnfInstanceId description: > @@ -375,14 +375,9 @@ paths: 504: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" patch: - #SOL003 location: 5.4.3.3.4 + #SOL002/SOL003 location: 5.4.3.3.4 description: > - This method modifies an "Individual VNF instance" resource. Changes to - the VNF configurable properties are applied to the configuration in - the VNF instance, and are reflected in the representation of this - resource. Other changes are applied to the VNF instance information - managed by the VNFM, and are reflected in the representation of this - resource + This method modifies an "Individual VNF instance" resource. parameters: - name: vnfInfoModifications description: Input parameters for VNF info modification @@ -531,7 +526,7 @@ paths: # Instantiate VNF task # ############################################################################### '/vnf_instances/{vnfInstanceId}/instantiate': - #SOL003 location: 5.4.4.2 + #SOL002 location: 5.4.4.2 parameters: - name: vnfInstanceId description: > @@ -643,7 +638,7 @@ paths: # Scale VNF task # ############################################################################### '/vnf_instances/{vnfInstanceId}/scale': - #SOL003 location: 5.4.5.2 + #SOL002 location: 5.4.5.2 parameters: - name: vnfInstanceId description: > @@ -757,7 +752,7 @@ paths: # Scale VNF to Level task # ############################################################################### '/vnf_instances/{vnfInstanceId}/scale_to_level': - #SOL003 location: 5.4.6.2 + #SOL002 location: 5.4.6.2 parameters: - name: vnfInstanceId description: > @@ -984,7 +979,7 @@ paths: # Terminate VNF task # ############################################################################### '/vnf_instances/{vnfInstanceId}/terminate': - #SOL003 location: 5.4.8.2 + #SOL002 location: 5.4.8.2 parameters: - name: vnfInstanceId description: > @@ -1027,7 +1022,7 @@ paths: The request has been accepted for processing. The response body shall be empty. The HTTP response shall include a "Location" HTTP header that contains the URI of the - newly-created "VNF LCM operation occurrence" resource corresponding to the operation. + newly-created "Individual VNF LCM operation occurrence" resource corresponding to the operation. headers: Content-Type: description: The MIME type of the body of the response. @@ -1096,7 +1091,7 @@ paths: # Heal VNF task # ############################################################################### '/vnf_instances/{vnfInstanceId}/heal': - #SOL003 location: 5.4.9.2 + #SOL002 location: 5.4.9.2 parameters: - name: vnfInstanceId description: > @@ -1208,7 +1203,7 @@ paths: # Operate VNF task # ############################################################################### '/vnf_instances/{vnfInstanceId}/operate': - #SOL003 location: 5.4.9.2 + #SOL002 location: 5.4.9.2 parameters: - name: vnfInstanceId description: > @@ -1320,7 +1315,7 @@ paths: # Change external VNF connectivity task # ############################################################################### '/vnf_instances/{vnfInstanceId}/change_ext_conn': - #SOL003 location: 5.4.9.2 + #SOL002 location: 5.4.9.2 parameters: - name: vnfInstanceId description: > @@ -1433,7 +1428,7 @@ paths: # VNF LCM operation occurrences # ############################################################################### '/vnf_lcm_op_occs': - #SOL003 location: 5.4.12 + #SOL002 location: 5.4.12 parameters: - name: Version description: > @@ -1450,7 +1445,7 @@ paths: type: string get: description: > - The client can use this method to query status information about + The API consumer can use this method to query status information about multiple VNF lifecycle management operation occurrences. parameters: - name: filter @@ -1600,7 +1595,7 @@ paths: # Individual VNF LCM operation occurrence # ############################################################################### '/vnf_lcm_op_occs/{vnfLcmOpOccId}': - #SOL003 location: 5.4.13 + #SOL002 location: 5.4.13 parameters: - name: vnfLcmOpOccId description: > @@ -1628,7 +1623,7 @@ paths: type: string get: description: > - The client can use this method to retrieve status information about a + The API consumer can use this method to retrieve status information about a VNF lifecycle management operation occurrence by reading an "Individual VNF LCM operation occurrence" resource. responses: @@ -1688,7 +1683,7 @@ paths: # Retry operation task # ############################################################################### '/vnf_lcm_op_occs/{vnfLcmOpOccId}/retry': - #SOL003 location: 5.4.14 + #SOL002 location: 5.4.14 parameters: - name: vnfLcmOpOccId description: > @@ -1782,7 +1777,7 @@ paths: # Rollback operation task # ############################################################################### '/vnf_lcm_op_occs/{vnfLcmOpOccId}/rollback': - #SOL003 location: 5.4.15 + #SOL002 location: 5.4.15 parameters: - name: vnfLcmOpOccId description: > @@ -1875,7 +1870,7 @@ paths: # Fail operation task # ############################################################################### '/vnf_lcm_op_occs/{vnfLcmOpOccId}/fail': - #SOL003 location: 5.4.16 + #SOL002 location: 5.4.16 parameters: - name: vnfLcmOpOccId description: > @@ -1975,7 +1970,7 @@ paths: # Cancel operation task # ############################################################################### '/vnf_lcm_op_occs/{vnfLcmOpOccId}/cancel': - #SOL003 location: 5.4.17 + #SOL002 location: 5.4.17 parameters: - name: vnfLcmOpOccId description: > @@ -2079,7 +2074,7 @@ paths: # Subscriptions # ############################################################################### '/subscriptions': - #SOL003 location: 5.4.18 + #SOL002 location: 5.4.18 parameters: - name: Version description: > @@ -2100,7 +2095,7 @@ paths: parameters: - name: LccnSubscriptionRequest description: > - Details of the subscription to be created. + Details of the subscription to be created, as defined in clause 5.5.2.15. in: body required: true schema: @@ -2279,7 +2274,7 @@ paths: # Individual subscription # ############################################################################### '/subscriptions/{subscriptionId}': - #SOL003 location: 5.4.19 + #SOL002 location: 5.4.19 parameters: - name: subscriptionId description: > diff --git a/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml b/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml index 61385094147c5f0e2e2e68a0c4e08079aa9914e9..067fa5b1725aaa4a1ddf3a10c44043497c61e059 100644 --- a/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml +++ b/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml @@ -13,7 +13,6 @@ definitions: - vnfProductName - vnfSoftwareVersion - vnfdVersion - - vnfPkgInfoId - instantiationState - _links properties: @@ -37,11 +36,11 @@ definitions: This attribute can be modified with the PATCH method. 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 not changed with respect - to the previous VNFD apart from 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 + 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/SOL002SOL003_def.yaml#/definitions/Identifier" vnfProvider: @@ -60,12 +59,6 @@ definitions: description: > Identifies the version of the VNFD. The value is copied from the VNFD. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Version" - vnfPkgId: - description: > - Identifier of information held by the NFVO about the specific VNF - package on which the VNF is based. This identifier was allocated by the - NFVO. This attribute can be modified with the PATCHmethod. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" vnfConfigurableProperties: description: > Additional VNF-specific attributes that provide the current values @@ -79,18 +72,14 @@ definitions: VNF instantiation operation (if the VNF instance is in NOT_INSTANTIATED state at the time of the modification). Configurable properties referred in these attributes shall be declared - in the VNFD. - The declaration of configurable properties in the VNFD can optionally - contain the specification of initial values. - ETSI GS NFV-SOL 001 specifies the structure and format of the - VNFD based on TOSCA specifications. - VNF configurable properties are sometimes also referred to as configuration - parameters applicable to a VNF. Some of these are set prior to instantiation - and cannot be modified if the VNF is instantiated, some are set prior to - instantiation (are part of initial configuration) and can be modified later, - and others can be set only after instantiation. The applicability of certain - configuration may depend on the VNF and the required operation of the VNF at - a certain point in time. + in the VNFD. The declaration of configurable properties in the VNFD can optionally + contain the specification of initial values. See note 2, note 3 and note 4. + ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on TOSCA specifications. + VNF configurable properties are sometimes also referred to as configuration parameters applicable to a VNF. + Some of these are set prior to instantiation and cannot be modified if the VNF is instantiated, some are set + prior to instantiation (are part of initial configuration) and can be modified later, and others can be set + only after instantiation. The applicability of certain configuration may depend on the VNF and the required + operation of the VNF at a certain point in time. These configurable properties include the following standard attributes, which are declared in the VNFD if auto-scaling and/or auto-healing are supported by the VNF: @@ -100,7 +89,17 @@ definitions: - isAutohealEnabled: If present, the VNF supports auto-healing. If set to true, auto-healing is currently enabled. If set to false, auto-healing is currently disabled. - This attributeThese attributes can be modified with the PATCH method. + These configurable properties can be initialized with default values from the VNFD (see note 4). + Configurable properties can be modified with values passed in the request structures + of certain LCM operations, such as the InstantiateVnfRequest structure. + Further, these configurable properties can be created, modified or deleted with the PATCH method. + + note 4: Upon creation of the VnfInstance structure, the VNFM shall create and initialize all child attributes + of "vnfConfigurableProperties", "metadata" and "extensions" that were declared in the VNFD with a defined + initial value. The defined initial values can be declared in the VNFD, and/or, in case of "metadata", + obtained from the "CreateVnfRequest" structure. Child attributes of "vnfConfigurableProperties", "metadata" + and "extensions" that have no defined initial value shall not be created, in order to be consistent with the + semantics of the JSON Merge Patch method (see IETF RFC 7396) that interprets null values as deletion request. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" instantiationState: description: > @@ -182,7 +181,7 @@ definitions: by the VNFCs of the VNF instance. type: array items: - $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfcResourceInfo" + $ref: "#/definitions/VnfcResourceInfo" virtualLinkResourceInfo: description: > Information about the virtualised network resources used by the VLs @@ -196,6 +195,12 @@ definitions: type: array items: $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VirtualStorageResourceInfo" + vnfcInfo: + description: > + Information about the VNFC instances. + type: array + items: + $ref: "#/definitions/VnfcInfo" metadata: description: > Additional VNF-specific attributes that provide metadata describing the VNF instance. @@ -209,36 +214,38 @@ definitions: accept requests to write metadata that are not are declared in the VNFD. These attributes can be initialized with default values from VNFD and/or with values - passed in the CreateVnfRequest structure (see clause 5.5.2.3). + passed in the CreateVnfRequest structure (see clause 5.4.2.3.1). - This attribute can be modified with the PATCH method. + These attributes can be created, modified or removed with the PATCH method. ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on TOSCA specifications. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" extensions: description: > - Additional VNF specific attributes that affect the lifecycle management of this - VNF instance by the VNFM, or the lifecycle management scripts. - 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 shall be declared in the VNFD. - This attribute can be be initialized with default values from VNFD and/or - with values passed in the InstantiateVnfRequest structure (see clause 5.5.2.4). + 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. + All extensions that are allowed for the VNF are declared in the VNFD. The declaration of an extension + in the VNFD contains information on whether its presence is optional or required, and optionally can + specify an initial value. See note 2 and note 4. The VNFM shall reject requests to write extension + attributes that are not declared in the VNFD with a "422 Unprocessable entity" error response as defined + in clause 6.4 of ETSI GS NFV SOL 013. + 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. + These attributes can be initialized with default values from the VNFD (see note 4). + These attributes can be modified with values passed in the request structures of certain LCM operations, + such as the InstantiateVnfRequest structure. + Further, these attributes can be created, modified or deleted with the PATCH method. - A value initialised with default values from the VNFD can be updated with values - passed in the InstantiateVnfRequest structure. - - Further, 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. + NOTE 2: ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on TOSCA specifications. + NOTE 4: Upon creation of the VnfInstance structure, the VNFM shall create and initialize all child attributes + of "vnfConfigurableProperties", "metadata" and "extensions" that were declared in the VNFD with a defined + initial value. The defined initial values can be declared in the VNFD, and/or, in case of "metadata", + obtained from the "CreateVnfRequest" structure. Child attributes of "vnfConfigurableProperties", "metadata" + and "extensions" that have no defined initial value shall not be created, in order to be consistent with the + semantics of the JSON Merge Patch method (see IETF RFC 7396) that interprets null values as deletion request. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" _links: description: > @@ -330,7 +337,12 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtVirtualLinkData" extManagedVirtualLinks: description: > - Information about external VLs to connect the VNF to. + Information about internal VLs that are managed by other entities than the VNFM. + NOTE: 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/SOL002SOL003_def.yaml#/definitions/ExtManagedVirtualLinkData" @@ -347,18 +359,15 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" extensions: description: > - If present, this attribute provides values for the "extensions" attribute in "VnfInstance", - as defined in clause 5.5.2.2. If an entry with the same key exists in the VnfInstance data structure, - the VNFM shall replace its value with the value passed in the InstantiateVnfRequest data structure. + If present, this attribute provides modifications to the default values, as obtained from the VNFD, of + the "extensions" attribute in "VnfInstance", as defined in clause 5.5.2.2. Provisions for handling + extensions during operation are defined in clause 5.4.4.3.1. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" vnfConfigurableProperties: description: > - This parameter provides values for the VNF configurable - properties attribute in the "VnfInstance", as defined in - clause 5.5.2.2. If an entry with the same key exists in the - VnfInstance data structure, the VNFM shall replace its - value with the value passed in the InstantiateVnfRequest - data structure. + If present, this attribute provides modifications to the default values, as obtained from the VNFD, + of the "vnfConfigurableProperties" attribute in "VnfInstance", as defined in clause 5.5.2.2. + Provisions for handling configurable properties during the operation are defined in clause 5.4.4.3.1. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" ChangeVnfFlavourRequest: @@ -386,7 +395,12 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtVirtualLinkData" extManagedVirtualLinks: description: > - Information about external VLs to connect the VNF to. + Information about internal VLs that are managed by other entities than the VNFM. + NOTE: 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/SOL002SOL003_def.yaml#/definitions/ExtManagedVirtualLinkData" @@ -396,6 +410,18 @@ definitions: to the VNF being instantiated, as declared in the VNFD as part of "InstantiateVnfOpConfig". $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + extensions: + description: > + If present, this attribute provides modifications to the values of the "extensions" attribute in + "VnfInstance", as defined in clause 5.5.2.2. Provisions for handling extensions during the operation, + are defined in clause 5.4.7.3.1. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + vnfConfigurableProperties: + description: > + If present, this attribute provides modifications to the values of the vnfConfigurableProperties" attribute + in "VnfInstance", as defined in clause 5.5.2.2. Provisions for handling VNF configurable properties during + the operation, are defined in clause 5.4.7.3.1. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" TerminateVnfRequest: type: object @@ -408,9 +434,27 @@ definitions: Permitted values: * FORCEFUL: The VNFM will shut down the VNF and release the resources immediately after accepting the request. + * GRACEFUL: The VNFM will first arrange to take the VNF out + of service after accepting the request. Once the operation of + taking the VNF out of service finishes (irrespective of whether + it has succeeded or failed) or once the timer value specified in + the "gracefulTerminationTimeout" attribute expires, the VNFM will + shut down the VNF and release the resources. type: string enum: - FORCEFUL + - GRACEFUL + gracefulTerminationTimeout: + description: > + This attribute is only applicable in case of graceful termination. + It defines the time to wait for the VNF to be taken out of service + before shutting down the VNF and releasing the resources. + The unit is seconds. + If not given and the "terminationType" attribute is set to + "GRACEFUL", it is expected that the VNFM waits for the successful + taking out of service of the VNF, no matter how long it takes, + before shutting down the VNF and releasing the resources. + type: integer additionalParams: description: > Additional parameters passed by the NFVO as input to the termination @@ -423,7 +467,10 @@ definitions: properties: vnfcInstanceId: description: > - List of VNFC instances requiring a healing action. + List identifiers of of VNFC instances for which a healing action is requested. + Each identifier references the "id" attribute in a "VnfcInfo" structure. + Cardinality can be "0" to denote that the request applies to the whole VNF + and not a specific VNFC instance. type: array items: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" @@ -452,7 +499,8 @@ definitions: properties: vnfcInstanceId: description: > - Identifier of VNFC instances. Cardinality can be "0" to denote + List of identifiers of VNFC instances. Each identifier references the "id" attribute + in a "VnfcInfo" structure. Cardinality can be "0" to denote that the request applies to the whole VNF and not a specific VNFC instance. type: array items: @@ -465,12 +513,30 @@ definitions: stopType: description: > It signals whether forceful or graceful stop is requested. - Ignored if changeStateTo=STARTED. - Permitted values: - FORCEFUL: The VNFM will stop down the VNF or the affected VNFCs immediately after accepting the request. - type: string - enum: - - FORCEFUL + The "stopType" and "gracefulStopTimeout" attributes shall be absent, + when the "changeStateTo" attribute is equal to "STARTED". + The "gracefulStopTimeout" attribute shall be present, when the + "changeStateTo" is equal to "STOPPED" and the "stopType" attribute is + equal to "GRACEFUL". The "gracefulStopTimeout" attribute shall be absent, + when the "changeStateTo" attribute is equal to "STOPPED" and the "stopType" + attribute is equal to "FORCEFUL". The request shall be treated as if the + "stopType" attribute has been set to "FORCEFUL", when the "changeStateTo" + attribute is equal to "STOPPED" and the "stopType" attribute is absent. + $ref: "#/definitions/StopType" + gracefulStopTimeout: + description: > + The time interval (in seconds) to wait for the VNF to be taken out + of service during graceful stop, before stopping the VNF. + The "stopType" and "gracefulStopTimeout" attributes shall be absent, + when the "changeStateTo" attribute is equal to "STARTED". + The "gracefulStopTimeout" attribute shall be present, when the + "changeStateTo" is equal to "STOPPED" and the "stopType" attribute is + equal to "GRACEFUL". The "gracefulStopTimeout" attribute shall be absent, + when the "changeStateTo" attribute is equal to "STOPPED" and the "stopType" + attribute is equal to "FORCEFUL". The request shall be treated as if the + "stopType" attribute has been set to "FORCEFUL", when the "changeStateTo" + attribute is equal to "STOPPED" and the "stopType" attribute is absent. + type: integer additionalParams: description: > Additional parameters passed by the NFVO as input to the process, @@ -525,31 +591,586 @@ definitions: description: > Modifications of the "vnfConfigurableProperties" attribute in "VnfInstance". If present, these modifications shall be applied according to the rules of - JSON Merge PATCH (see IETF RFC 7396 [15]). + JSON Merge Patch (see IETF RFC 7396). $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" metadata: description: > - Modifications of the "metadattametadata" attribute in "VnfInstance". + Modifications of the "metadata" attribute in "VnfInstance". If present, these modifications shall be applied according to the rules of - JSON Merge PATCH (see IETF RFC 7396 [15]). + JSON Merge Patch (see IETF RFC 7396). $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" extensions: description: > Modifications of the "extensions" attribute in "VnfInstance". If present, these modifications shall be applied according to the rules of - JSON Merge PATCH (see IETF RFC 7396 [15]). + JSON Merge Patch (see IETF RFC 7396). $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" vnfcInfoModifications: description: > Modifications of certain entries in the "vnfcInfo" attribute array in the - "instantiatedVnfInfo" attribute of "VnfInstance"." to be used as "newList" as defined below this table. + "instantiatedVnfInfo" attribute of "VnfInstance" to be used as "newList" as defined below this table. type: array items: $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfcInfoModifications" - vnfcInfoModificationsDeleteIds: + + VnfcResourceInfo: + description: > + This type represents the information on virtualised compute and storage + resources used by a VNFC in a VNF instance. + type: object + required: + - id + - vduId + - computeResource + properties: + id: + description: > + Identifier of this VnfcResourceInfo instance. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + vduId: + description: > + Reference to the applicable VDU in the VNFD. + ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on TOSCA specifications. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" + computeResource: + description: > + Reference to the VirtualCompute resource. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ResourceHandle" + storageResourceIds: + description: > + References to the VirtualStorage resources. The value refers to a + VirtualStorageResourceInfo item in the VnfInstance. + type: array + items: + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + reservationId: + description: > + The reservation identifier applicable to the resource. It shall be + present when an applicable reservation exists. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + vnfcCpInfo: + description: > + All CPs of the VNFC instance. + type: array + items: + type: object + required: + - id + - cpdId + properties: + id: + description: > + Identifier of this VNFC CP instance and the associated array + entry. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + cpdId: + description: > + Identifier of the VDU CPD, cpdId, in the VNFD. + ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on TOSCA specifications. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" + vnfExtCpId: + description: > + 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/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + cpProtocolInfo: + description: > + 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/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/CpProtocolInfo" + vnfLinkPortId: + description: > + Identifier of the "VnfLinkPorts" structure in the + "VnfVirtualLinkResourceInfo" structure. Shall be present if the CP is associated to a link port + on an internal VL of the VNF instance and shall be absent otherwise. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + metadata: + description: > + Metadata about this CP. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + metadata: + description: > + Metadata about this resource. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + + StopType: + description: > + * FORCEFUL: The VNFM will stop the VNF instance or VNFC instance(s) immediately after + accepting the request. + * GRACEFUL: The VNFM will first arrange to take the VNF instance or VNFC instance(s) out of service + after accepting the request. Once that operation is successful or once + the timer value specified in the "gracefulStopTimeout" attribute + expires, the VNFM will stop the VNF instance or VNFC instance(s). + type: string + enum: + - FORCEFUL + - GRACEFUL + + VnfInfoModifications: + description: > + This type represents attribute modifications that were performed on an + "Individual VNF instance" resource. The attributes that can be included + consist of those requested to be modified explicitly in the + "VnfInfoModificationRequest" data structure, and additional attributes + of the "VnfInstance" data structure that were modified implicitly e.g. + when modifying the referenced VNF package. + type: object + properties: + vnfInstanceName: + description: > + If present, this attribute signals modifications of the + "vnfInstanceName" attribute in "VnfInstance". + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/String" + vnfInstanceDescription: + description: > + If present, this attribute signals modifications of the + "vnfInstanceDescription" attribute in "VnfInstance". + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/String" + vnfConfigurableProperties: + description: > + If present, this attribute signals modifications of the + "vnfConfigurableProperties" attribute in "VnfInstance". + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + metadata: + description: > + If present, this attribute signals modifications of the "metadata" + attribute in "VnfInstance". + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + extensions: + description: > + If present, this attribute signals modifications of the "extensions" + attribute in "VnfInstance". + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + vnfdId: + description: > + If present, this attribute signals modifications of the "vnfdId" + attribute in "VnfInstance". + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + vnfProvider: + description: > + If present, this attribute signals modifications of the + "vnfProvider" attribute in "VnfInstance". + If present, this attribute (which depends on the value of the + "vnfPkgId" attribute) was modified implicitly following a request to + modify the "vnfPkgId" attribute, by copying the value of this + attribute from the VNFD in the VNF Package identified by the + "vnfPkgId” attribute. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/String" + vnfProductName: + description: > + If present, this attribute signals modifications of the + "vnfProductName" attribute in "VnfInstance". + If present, this attribute (which depends on the value of the + "vnfPkgId" attribute) was modified implicitly following a request to + modify the "vnfPkgId" attribute, by copying the value of this + attribute from the VNFD in the VNF Package identified by the + "vnfPkgId” attribute. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/String" + vnfSoftwareVersion: description: > - List of identifiers entries to be deleted from the 'vnfcInfoModifications" attribute array - to be used as "deleteIdList" as defined below this table. + If present, this attribute signals modifications of the + "vnfSoftwareVersion" attribute in "VnfInstance". + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Version" + vnfdVersion: + description: > + If present, this attribute signals modifications of the + "vnfdVersion" attribute in "VnfInstance". + If present, this attribute (which depends on the value of the + "vnfdId" attribute) was modified implicitly following a request to + modify the "vnfdId" attribute, by copying the value of this + attribute from the VNFD in the VNF Package identified by the + "vnfdId” attribute. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Version" + vnfcInfoModifications: + description: > + If present, this attribute signals modifications of certain + entries in the "vnfcInfo" attribute array in the + "instantiatedVnfInfo" attribute of "VnfInstance", as defined + in clause 5.5.2.12 type: array items: - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" \ No newline at end of file + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfcInfoModifications" + + AffectedVirtualLink: + description: > + This type provides information about added, deleted, modified and + temporary VLs, and added or removed VNF link ports. + It shall comply with the provisions in table 5.5.3.20-1. + type: object + required: + - id + - vnfVirtualLinkDescId + - changeType + - networkResource + properties: + id: + description: > + Identifier of the virtual link instance, identifying the applicable + "vnfVirtualLinkResourceInfo" entry in the "VnfInstance" data type. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + vnfVirtualLinkDescId: + description: > + Identifier of the related VLD in the VNFD. + $ref: "../../../definitions/SOL002SOL003_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. + + NOTE: When signalling the addition (LINK_PORT_ADDED) or removal (LINK_PORT_REMOVED) of VNF link + ports, the "networkResource" and "resourceDefinitionId" attributes refer to the affected virtual + link instance, not the link port instance. The resource handles of the affected VNF link ports can + be found by dereferencing the identifiers in the "vnfLinkPortIds" attribute. + 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. + + NOTE 1: When signalling the addition (LINK_PORT_ADDED) or removal (LINK_PORT_REMOVED) of VNF link + ports, the "networkResource" and "resourceDefinitionId" attributes refer to the affected virtual + link instance, not the link port instance. The resource handles of the affected VNF link ports can + be found by dereferencing the identifiers in the "vnfLinkPortIds" attribute. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ResourceHandle" + virtualLinkPortIds: + description: > + Identifiers of the link ports of the affected VL related to the change. + Each identifier references a "VnfLinkPortInfo" structure. + Shall be set when changeType is equal to "LINK_PORT_ADDED" or "LINK_PORT_REMOVED", + and the related "VnfLinkPortInfo" structures are present (case "added") or have + been present (case "removed") in the "VnfVirtualLinkResourceInfo" or "ExtManagedVirtualLinkInfo" + structures that are represented by the "vnfVirtualLinkResource¬Info" or "extManagedVirtualLinkInfo" + attribute in the "VnfInstance" structure. See note. + + NOTE: When signalling the addition (LINK_PORT_ADDED) or removal (LINK_PORT_REMOVED) of VNF link ports, + the "networkResource" attribute refers to the affected virtual link instance, not the link port + instance. The resource handles of the affected VNF link ports can be found by dereferencing the + identifiers in the "vnfLinkPortIds" attribute. + type: array + items: + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + 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/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + + VnfLcmOpOcc: + description: > + This type represents a VNF lifecycle management operation occurrence. + type: object + required: + - id + - operationState + - stateEnteredTime + - startTime + - vnfInstanceId + - operation + - isAutomaticInvocation + - isCancelPending + properties: + id: + description: > + Identifier of this VNF lifecycle management operation occurrence. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + operationState: + description: > + The state of the LCM operation. + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LcmOperationStateType" + stateEnteredTime: + description: > + Date-time when the current state has been entered. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime" + startTime: + description: > + Date-time of the start of the operation. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime" + vnfInstanceId: + description: > + Identifier of the VNF instance to which the operation applies + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + grantId: + description: > + Identifier of the grant related to this VNF LCM operation + occurrence. Shall be set to the value of the "id" attribute + in the "Grant" representing the associated "Individual Grant", + if such grant exists. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + operation: + description: > + Type of the actual LCM operation represented by this VNF LCM + operation occurrence. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/LcmOperationType" + isAutomaticInvocation: + description: > + Set to true if this VNF LCM operation occurrence has been triggered + by an automated procedure inside the VNFM (i.e. + ScaleVnf / ScaleVnfToLevel triggered by auto-scale, or HealVnf + triggered by auto-heal). Set to false otherwise. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Boolean" + operationParams: + description: > + Input parameters of the LCM operation. This attribute shall be + formatted according to the request data type of the related LCM + operation. The following mapping between operationType and the + data type of this attribute shall apply: + * INSTANTIATE: InstantiateVnfRequest + * SCALE: ScaleVnfRequest + * SCALE_TO_LEVEL: ScaleVnfToLevelRequest + * CHANGE_FLAVOUR: ChangeVnfFlavourRequest + * OPERATE: OperateVnfRequest + * HEAL: HealVnfRequest + * CHANGE_EXT_CONN: ChangeExtVnfConnectivityRequest + * TERMINATE: TerminateVnfRequest + * MODIFY_INFO: VnfInfoModifications + + This attribute shall be present if this data type is returned in a response + to reading an individual resource, and may be present according to the + chosen attribute selector parameter if this data type is returned in a + response to a query of a container resource. + type: object + isCancelPending: + description: > + If the VNF LCM operation occurrence is in "STARTING", "PROCESSING" + or "ROLLING_BACK" state and the operation is being cancelled, this + attribute shall be set to true. Otherwise, it shall be set to false. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Boolean" + cancelMode: + description: > + The mode of an ongoing cancellation. Shall be present when + isCancelPending=true, and shall be absent otherwise. + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/CancelModeType" + error: + description: > + If "operationState" is "FAILED_TEMP" or "FAILED" or "operationState" + is "PROCESSING" or "ROLLING_BACK" and previous value of + "operationState" was "FAILED_TEMP", this attribute shall be present + and contain error information, unless it has been requested to be + excluded via an attribute selector. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + resourceChanges: + description: > + This attribute contains information about the cumulative changes to + virtualised resources that were performed so far by the LCM + operation since its start, if applicable. + type: object + properties: + affectedVnfcs: + description: > + Information about VNFC instances that were affected during the + lifecycle operation. + NOTE 1: This allows the API consumer to obtain the information contained in the + latest "result" notification if it has not received it due to an + error or a wrongly configured subscription filter. + type: array + items: + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/AffectedVnfc" + affectedVirtualLinks: + description: > + Information about VL instances that were affected during the + lifecycle operation. See note 1 and note 2. + + NOTE 1: This allows the API consumer to obtain the information contained in + the latest "result" notification if it has not received it due to an + error or a wrongly configured subscription filter. + NOTE 2: For a particular affected VL, there shall be as many + "AffectedVirtualLink" entries as needed for signalling the different + types of changes, i.e., one per virtual link and change type. For instance, + in the case of signaling affected VL instances involving the addition of a + particular VL instance with links ports, one "AffectedVirtualLink" entry + signals the addition of the VL by using the "changeType" attribute of + "AffectedVirtualLink" structure equal to "ADDED", and another "AffectedVirtualLink" + entry signals the addition of externally visible VNF link ports of the VL by using + the "changeType" equal to "LINK_PORT_ADDED". + type: array + items: + $ref: "#/definitions/AffectedVirtualLink" + affectedExtLinkPorts: + description: > + Information about external VNF link ports that were affected during + the lifecycle operation. + + NOTE 1: This allows the API consumer to obtain the information contained in + the latest "result" notification if it has not received it due to an + error or a wrongly configured subscription filter. + type: array + items: + $ref: "#/definitions/AffectedExtLinkPort" + affectedVirtualStorages: + description: > + Information about virtualised storage instances that were affected + during the lifecycle operation. + This allows the NFVO to obtain the information contained in the + latest "result" notification if it has not received it due to an + error or a wrongly configured subscription filter. + type: array + items: + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/AffectedVirtualStorage" + changedInfo: + description: > + Information about the changed VNF instance information, including + VNF configurable properties, if applicable. + This allows the API consumer to obtain the information contained in the + latest "result" notification if it has not received it due to an + error or a wrongly configured subscription filter. + $ref: "#/definitions/VnfInfoModifications" + changedExtConnectivity: + description: > + Information about changed external connectivity, if applicable. + This allows the API consumer to obtain the information contained in the + latest "result" notification if it has not received it due to an + error or a wrongly configured subscription filter. + type: array + items: + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ExtVirtualLinkInfo" + _links: + description: > + Links to resources related to this resource. + type: object + required: + - self + - vnfInstance + properties: + self: + description: > + URI of this resource. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" + vnfInstance: + description: > + Link to the VNF instance that the operation applies to. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" + grant: + description: > + Link to the grant for this operation, if one exists. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" + cancel: + description: > + Link to the task resource that represents the "cancel" operation + for this VNF LCM operation occurrence, if cancelling is + currently allowed. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" + retry: + description: > + Link to the task resource that represents the "retry" operation + for this VNF LCM operation occurrence, if retrying is currently + allowed. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" + rollback: + description: > + Link to the task resource that represents the "rollback" + operation for this VNF LCM operation occurrence, if rolling back + is currently allowed. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" + fail: + description: > + Link to the task resource that represents the "fail" operation + for this VNF LCM operation occurrence, if declaring as failed is + currently allowed. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" + + AffectedExtLinkPort: + description: > + This type provides information about added and deleted external link ports (link ports attached to external + virtual links). It shall comply with the provisions in table 5.5.3.20a-1. + type: object + required: + - id + - changeType + - extCpInstanceId + - resourceHandle + properties: + id: + description: > + Identifier of the link port, identifying the applicable "extLinkPorts" entry in the "ExtVirtualLinkInfo" + data type (see clause 5.5.3.3). + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + changeType: + description: > + Signals the type of change. Permitted values: + - ADDED + - REMOVED + type: string + enum: + - ADDED + - REMOVED + extCpInstanceId: + description: > + Identifier of the related external CP instance. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + resourceHandle: + description: > + Reference to the link port resource. Detailed information is (for added resources) + or has been (for removed resources) available from the VIM. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ResourceHandle" + + VnfcInfo: + description: > + This type represents the information about a VNFC instance that is part of a VNF instance. It shall comply with the + provisions defined in table 5.5.3.23-1. + type: object + required: + - id + - vduId + - vnfcState + properties: + id: + description: > + Identifier of the VNFC instance. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + vduId: + description: > + Reference to the applicable VDU information element in + the VNFD. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + vnfcResourceInfoId: + description: > + Identifier of the VnfcResourceInfo instance representing + the virtualised resources used by this VNFC instance. + Shall be present in case a corresponding VnfcResourceInfo instance exists. See note. + NOTE: This allows to represent the error condition that a VNFC instance has lost its resources. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + vnfcState: + description: > + State of the VNFC instance. + Permitted values: + • STARTED: The VNFC instance is up and + running. + • STOPPED: The VNFC instance has been shut down + type: string + enum: + - STARTED + - STOPPED + vnfcConfigurableProperties: + description: > + Current values of the configurable properties of the + VNFC instance. + Configurable properties referred in this attribute are + declared in the VNFD. + This attribute can be modified with the PATCH method. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" \ No newline at end of file diff --git a/src/SOL002/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml b/src/SOL002/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml index f3c25abf74f7e5ddc5c1461d52b3b731c12a0dd8..05a61013964c6148b0c00bffe7082fb75b629995 100644 --- a/src/SOL002/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml +++ b/src/SOL002/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml @@ -1,7 +1,7 @@ swagger: "2.0" info: - version: "1.4.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + version: "1.5.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" title: SOL002 - VNF Lifecycle Management Notification interface description: > SOL002 - VNF Lifecycle Management Notification 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/SOL002-SOL003/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 002 V2.7.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.07.01_60/gs_nfv-sol002v020701p.pdf + description: ETSI GS NFV-SOL 002 V2.8.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.08.01_60/gs_NFV-SOL002v020801p.pdf basePath: /callback/v1 @@ -36,7 +36,7 @@ paths: ############################################################################### # Notification endpoint VnfLcmOperationOccurrenceNotification # ############################################################################### - '/URI-is-provided-by-the-client-when-creating-the-subscription_VnfLcmOperationOccurrenceNotification': + '/URI_is_provided_by_the_client_when_creating_the_subscription-VnfLcmOperationOccurrenceNotification': parameters: - name: Version description: > @@ -118,7 +118,7 @@ paths: get: description: > - The GET method allows the server to test the notification endpoint + 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: Authorization @@ -172,7 +172,7 @@ paths: ############################################################################### # Notification endpoint VnfIdentifierCreationNotification # ############################################################################### - '/URI-is-provided-by-the-client-when-creating-the-subscription_VnfIdentifierCreationNotification': + '/URI_is_provided_by_the_client_when_creating_the_subscription-VnfIdentifierCreationNotification': parameters: - name: Version description: > @@ -256,7 +256,7 @@ paths: get: description: > - The GET method allows the server to test the notification endpoint + 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: Authorization @@ -310,7 +310,7 @@ paths: ############################################################################### # Notification endpoint VnfIdentifierDeletionNotification # ############################################################################### - '/URI-is-provided-by-the-client-when-creating-the-subscription_VnfIdentifierDeletionNotification': + '/URI_is_provided_by_the_client_when_creating_the_subscription-VnfIdentifierDeletionNotification': parameters: - name: Version description: > @@ -394,7 +394,7 @@ paths: get: description: > - The GET method allows the server to test the notification endpoint + 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: Authorization diff --git a/src/SOL002/VNFLifecycleManagementNotification/definitions/VNFLifecycleManagementNotification_def.yaml b/src/SOL002/VNFLifecycleManagementNotification/definitions/VNFLifecycleManagementNotification_def.yaml index c425ca3b74a9e258355661e31397952c69c931d8..2b4f7e539d451ab462d4b9f84e6092be6e736065 100644 --- a/src/SOL002/VNFLifecycleManagementNotification/definitions/VNFLifecycleManagementNotification_def.yaml +++ b/src/SOL002/VNFLifecycleManagementNotification/definitions/VNFLifecycleManagementNotification_def.yaml @@ -10,7 +10,7 @@ definitions: notification is mandatory. This notification shall be triggered by the VNFM when there is a change in the VNF lifecycle caused by a VNF LCM operation occurrence, - including: + which represents an occurrence of one the following LCM operations: * Instantiation of the VNF * Scaling of the VNF instance (including auto-scaling) * Healing of the VNF instance (including auto-healing) @@ -64,6 +64,8 @@ definitions: subscriptionId: description: > Identifier of the subscription that this notification relates to. + Shall be set to the value of the "id" attribute of the "LccnSubscription" + representing the associated "Individual subscription" resource. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" timeStamp: description: > @@ -105,7 +107,9 @@ definitions: vnfLcmOpOccId: description: > The identifier of the VNF lifecycle management operation occurrence - associated to the notification. + associated to the notification. Shall be set to the value of the "id" + attribute of the "VnfLcmOpOcc" representing the associated + "Individual VNF lifecycle management operation occurrence" resource. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" affectedVnfcs: description: > @@ -124,15 +128,36 @@ definitions: description: > Information about VL instances that were affected during the lifecycle operation. - Shall be present if the "notificationStatus" is set to "RESULT" and + NOTE 1: Shall be present if the "notificationStatus" is set to "RESULT" and the operation has performed any resource modification. Shall be absent otherwise. This attribute contains information about the cumulative changes to virtualised resources that were performed so far by the VNF LCM operation occurrence and by any of the error handling procedures for that operation occurrence. + NOTE 2: For a particular affected VL, there shall be as many "AffectedVirtualLink" + entries as needed for signalling the different types of changes, i.e., one per + virtual link and change type. For instance, in the case of signaling affected VL + instances involving the addition of a particular VL instance with links ports, one + "AffectedVirtualLink" entry signals the addition of the VL by using the "changeType" + attribute of "AffectedVirtualLink" structure equal to "ADDED", and another + "AffectedVirtualLink" entry signals the addition of VNF link ports of the VL + by using the "changeType" equal to "LINK_PORT_ADDED". type: array items: $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/AffectedVirtualLink" + affectedExtLinkPorts: + description: > + Information about external VNF link ports that were affected during the lifecycle + operation. See note 1. + + NOTE 1: Shall be present if the "notificationStatus" is set to "RESULT" and the operation + has performed any resource modification. Shall be absent otherwise. This attribute contains + information about the cumulative changes to virtualised resources that were performed so far + by the VNF LCM operation occurrence and by any of the error handling procedures for that + operation occurrence. + type: array + items: + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/AffectedExtLinkPort" affectedVirtualStorages: description: > Information about virtualised storage instances that were affected @@ -170,10 +195,12 @@ definitions: description: > Details of the latest error, if one has occurred during executing the LCM operation. Shall be present if the "operationState" - attribute is "FAILED_TEMP" or "FAILED", and shall be absent + attribute is "FAILED_TEMP", "FAILED" or, ROLLED_BACK" and shall be absent otherwise. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" _links: description: > - Links to resources related to this notification. + Links to resources related to this notification. The link URIs in this structure + shall be set to point to the resources identified by the corresponding identifier + attributes in this notification. $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LccnLinks" diff --git a/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml b/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml index 143e76e2bb13c5d182d996533273486788b9f1c2..5be3b2cc47102ad47d362a071da1655ae30aa1fe 100644 --- a/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml +++ b/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.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: SOL002 - VNF Perfomance Management interface description: > SOL002 - VNF 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/SOL002-SOL003/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 002 V2.7.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.07.01_60/gs_nfv-sol002v020701p.pdf + description: ETSI GS NFV-SOL 002 V2.8.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.08.01_60/gs_NFV-SOL002v020801p.pdf basePath: /vnfpm/v2 @@ -43,7 +43,7 @@ paths: # PM jobs # ############################################################################### '/pm_jobs': - #SOL003 location: 6.4.2 + #SOL002 location: 6.4.2 parameters: - name: Version description: > @@ -146,7 +146,7 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" get: description: > - The client can use this method to retrieve information about PM jobs. + The API consumer can use this method to retrieve information about PM jobs. parameters: - name: Accept description: > @@ -166,7 +166,7 @@ paths: description: > Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV-SOL 013. The VNFM shall support receiving this parameter as part of the URI query string. - The EM may supply this parameter. All attribute names that appear in the PmJob + The API consumer may supply this parameter. All attribute names that appear in the PmJob and in data types referenced from it shall be supported by the VNFM in attribute-based filtering expression. EXAMPLE @@ -337,7 +337,7 @@ paths: type: string get: description: > - The client can use this method for reading an individual PM job. + The API consumer can use this method for reading an individual PM job. parameters: - name: Accept description: > @@ -572,7 +572,7 @@ paths: type: string get: description: > - The client can use this method for reading an individual performance + The API consumer can use this method for reading an individual performance report. parameters: - name: Accept @@ -640,7 +640,7 @@ paths: # Thresholds # ############################################################################### '/thresholds': - #SOL003 location: 6.4.5 + #SOL002 location: 6.4.5 parameters: - name: Version description: > @@ -657,7 +657,7 @@ paths: type: string post: description: > - The POST method can be used by the client to create a threshold. + The POST method can be used by the API consumer to create a threshold. As the result of successfully executing this method, a new "Individual threshold" resource as defined in clause 6.4.6 shall have been created. @@ -744,7 +744,7 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504" get: description: > - The client can use this method to query information about thresholds. + The API consumer can use this method to query information about thresholds. parameters: - name: Accept description: > @@ -757,7 +757,7 @@ paths: description: > Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV-SOL 013. The VNFM shall support receiving this parameter as part of the URI query string. - The EM may supply this parameter. All attribute names that appear in the Thresholds + The API consumer may supply this parameter. All attribute names that appear in the Thresholds and in data types referenced from it shall be supported by the VNFM in attribute-based filtering expression. EXAMPLE @@ -869,7 +869,7 @@ paths: # Individual threshold # ############################################################################### '/thresholds/{thresholdId}': - #SOL003 location: 6.4.6 + #SOL002 location: 6.4.6 parameters: - name: thresholdId description: > @@ -896,7 +896,7 @@ paths: type: string get: description: > - The client can use this method for reading an individual threshold. + The API consumer can use this method for reading an individual threshold. parameters: - name: Accept description: > diff --git a/src/SOL002/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml b/src/SOL002/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml index 030a04b3644a65af20cd3feba39c3424eacb311c..8f52e816b501a8a5202885db127ed4951b71aeb9 100644 --- a/src/SOL002/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml +++ b/src/SOL002/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.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: SOL002 - VNF Performance Management Notification interface description: > SOL002 - VNF Performance Management Notification 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/SOL002-SOL003/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 002 V2.7.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.07.01_60/gs_nfv-sol002v020701p.pdf + description: ETSI GS NFV-SOL 002 V2.8.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.08.01_60/gs_NFV-SOL002v020801p.pdf basePath: /callback/v1 @@ -36,7 +36,7 @@ paths: ############################################################################### # Notification endpoint PerformanceInformationAvailableNotification # ############################################################################### - '/URI-is-provided-by-the-client-when-creating-the-subscription_PerformanceInformationAvailableNotification': + '/URI_is_provided_by_the_client_when_creating_the_subscription-PerformanceInformationAvailableNotification': post: description: > Notify @@ -110,8 +110,8 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" get: 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: Authorization description: > @@ -166,7 +166,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': post: description: > Notify @@ -240,8 +240,8 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" get: 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: Authorization description: > diff --git a/src/SOL003/APIVersion/APIVersion.yaml b/src/SOL003/APIVersion/APIVersion.yaml index 5076f848e0622c32616c01d48f9bf7b010ec7b05..0c00835197a9e5198eee69fdb0fe58611f376434 100644 --- a/src/SOL003/APIVersion/APIVersion.yaml +++ b/src/SOL003/APIVersion/APIVersion.yaml @@ -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/SOL002-SOL003/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 003 V2.7.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.07.01_60/gs_NFV-SOL003v020701p.pdf + description: ETSI GS NFV-SOL 003 V2.8.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.08.01_60/gs_NFV-SOL003v020801p.pdf schemes: - http - https diff --git a/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml b/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml index 62292e434679aae34d93f2b77a6e4ba68c9029ed..88c42b4e872c8bc471877ff21a2a40266febc304 100644 --- a/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml +++ b/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml @@ -19,14 +19,14 @@ info: of this GS for inclusion in the corresponding future ETSI NFV OpenAPI design. - Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution= + Please report bugs to https://forge.etsi.org/rep/nfv/SOL002-SOL003/issues license: name: "ETSI Forge copyright notice" url: https://forge.etsi.org/etsi-forge-copyright-notice.txt externalDocs: - description: ETSI GS NFV-SOL 003 V2.7.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.07.01_60/gs_NFV-SOL003v020701p.pdf + description: ETSI GS NFV-SOL 003 V2.8.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.08.01_60/gs_NFV-SOL003v020801p.pdf basePath: "/vnffm/v1" @@ -244,7 +244,7 @@ paths: patch: description: > Acknowledge Alarm. - This method modifies an individual alarm resource. + This method modifies an "Individual alarm" resource. This method shall follow the provisions specified in the tables 7.4.3.3.4-1 and 7.4.3.3.4-2 for URI query parameters, request and response data structures, and response codes. parameters: @@ -354,14 +354,14 @@ paths: 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 as defined in clause 7.4.5 shall have been created. This method shall not trigger any notification. - Creation of two "Individual subscription" resources with the same callbackURI and the same filter + 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 NFVO, and might make sense only in very rare use cases. Consequently, the VNFM may either allow creating a new "Individual subscription" resource if another "Individual subscription" resource with the - same filter and callbackUri already exists (in which case it shall return the "201 Created" response code), + 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 callbackUri). + same filter and callback URI). parameters: - name: FmSubscriptionRequest description: The VNF creation parameters @@ -431,17 +431,6 @@ paths: schema: $ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/FmSubscription" 303: -# description: > -# 303 SEE OTHER -# -# Shall be returned when a subscription with the -# same callbackURI and the same filter already exists -# and the policy of the VNFM 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. $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/303" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" @@ -525,7 +514,7 @@ paths: description: > 200 OK - The list of subscriptions has been queried successfully. + Shall be returned when the list of subscriptions has been queried successfully. The response body shall contain in an array the representations of all active subscriptions of the functional block that invokes the method, i.e. zero or more representations of FM subscriptions as defined in clause 7.5.2.3. diff --git a/src/SOL003/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml b/src/SOL003/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml index bf184d75c0b5fef4108e02c5472d186d0afc54e7..6b9b0dc36f6aa2c16df1b1929c3bf1d7ff2a0c6e 100644 --- a/src/SOL003/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml +++ b/src/SOL003/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml @@ -6,27 +6,18 @@ info: description: > SOL003 - VNF Fault 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. - - In clause 4.3.2 of ETSI GS NFV-SOL 003 v2.4.1, an attribute-based - filtering mechanism is defined. This mechanism is currently not - included in the corresponding OpenAPI design for this GS version. Changes - to the attribute-based filtering mechanism are being considered in v2.5.1 - of this GS for inclusion in the corresponding future ETSI NFV OpenAPI - design. - - Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution= + Please report bugs to https://forge.etsi.org/rep/nfv/SOL002-SOL003/issues license: name: "ETSI Forge copyright notice" url: https://forge.etsi.org/etsi-forge-copyright-notice.txt externalDocs: - description: ETSI GS NFV-SOL 003 V2.7.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.07.01_60/gs_NFV-SOL003v020701p.pdf + description: ETSI GS NFV-SOL 003 V2.8.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.08.01_60/gs_NFV-SOL003v020801p.pdf basePath: "/callback/v1" @@ -42,7 +33,7 @@ paths: ############################################################################### # Notification endpoint AlarmNotification # ############################################################################### - '/URI-is-provided-by-the-client-when-creating-the-subscription-AlarmNotification': + '/URI_is_provided_by_the_client_when_creating_the_subscription-AlarmNotification': #SOL003 location: 7.4.6 post: description: > @@ -119,7 +110,7 @@ paths: get: description: > - The GET method allows the server to test the notification endpoint that is provided by the API consumer, + The GET method allows the API producer to test the notification endpoint that is provided by the API consumer, e.g. during subscription. This method shall follow the provisions specified in the tables 7.4.6.3.2-1 and 7.4.6.3.2-2 for URI query parameters, request and response data structures, and response codes. @@ -177,7 +168,7 @@ paths: ############################################################################### # Notification endpoint AlarmClearedNotification # ############################################################################### - '/URI-is-provided-by-the-client-when-creating-the-subscription-AlarmClearedNotification': + '/URI_is_provided_by_the_client_when_creating_the_subscription-AlarmClearedNotification': #SOL003 location: 7.4.6 post: description: > @@ -254,7 +245,7 @@ paths: get: description: > - The GET method allows the server to test the notification endpoint that is provided by the API consumer, + The GET method allows the API producer to test the notification endpoint that is provided by the API consumer, e.g. during subscription. This method shall follow the provisions specified in the tables 7.4.6.3.2-1 and 7.4.6.3.2-2 for URI query parameters, request and response data structures, and response codes. @@ -312,7 +303,7 @@ paths: ############################################################################### # Notification endpoint AlarmListRebuiltNotification # ############################################################################### - '/URI-is-provided-by-the-client-when-creating-the-subscription-AlarmListRebuiltNotification': + '/URI_is_provided_by_the_client_when_creating_the_subscription-AlarmListRebuiltNotification': #SOL003 location: 7.4.6 post: description: > @@ -389,7 +380,7 @@ paths: get: description: > - The GET method allows the server to test the notification endpoint that is provided by the API consumer, + The GET method allows the API producer to test the notification endpoint that is provided by the API consumer, e.g. during subscription. This method shall follow the provisions specified in the tables 7.4.6.3.2-1 and 7.4.6.3.2-2 for URI query parameters, request and response data structures, and response codes. diff --git a/src/SOL003/VNFIndicator/VNFIndicator.yaml b/src/SOL003/VNFIndicator/VNFIndicator.yaml index 13e161d62d9c7f8a43cf8cd9e12bfa5a9c5727a1..1625c60e83e0196069a33345271732483d1777cf 100644 --- a/src/SOL003/VNFIndicator/VNFIndicator.yaml +++ b/src/SOL003/VNFIndicator/VNFIndicator.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&list_id=61&product=NFV&resolution= + Please report bugs to https://forge.etsi.org/rep/nfv/SOL002-SOL003/issues license: name: "ETSI Forge copyright notice" url: https://forge.etsi.org/etsi-forge-copyright-notice.txt externalDocs: - description: ETSI GS NFV-SOL 003 V2.7.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.07.01_60/gs_NFV-SOL003v020701p.pdf + description: ETSI GS NFV-SOL 003 V2.8.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.08.01_60/gs_NFV-SOL003v020801p.pdf basePath: "/vnfind/v1" @@ -407,14 +407,14 @@ paths: The POST method creates a new subscription. As the result of successfully executing this method, a new "Individual subscription" resource as defined in clause 8.4.6 shall have been created. This method shall not trigger any notification. - Creation of two "Individual subscription" resources with the same callbackURI and the same filter + 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 NFVO, and might make sense only in very rare use cases. Consequently, the VNFM may either allow creating a new "Individual subscription" resource if another "Individual subscription" resource with the - same filter and callbackUri already exists (in which case it shall return the "201 Created" response code), + 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 callbackUri). + filter and callback URI). This method shall follow the provisions specified in the tables 8.4.5.3.1-1 and 8.4.5.3.1-2 for URI query parameters, request and response data structures, and response codes. parameters: diff --git a/src/SOL003/VNFIndicatorNotification/VNFIndicatorNotification.yaml b/src/SOL003/VNFIndicatorNotification/VNFIndicatorNotification.yaml index e93597ed469b92ee6425e19c583d9e08ca436a48..f05658fb16bd699003705ed6303849aba1cc66d2 100644 --- a/src/SOL003/VNFIndicatorNotification/VNFIndicatorNotification.yaml +++ b/src/SOL003/VNFIndicatorNotification/VNFIndicatorNotification.yaml @@ -2,31 +2,22 @@ swagger: "2.0" info: version: "1.2.1-impl:etsi.org:ETSI_NFV_OpenAPI:1" - title: SOL003 - VNF Indicator interface + title: SOL003 - VNF Indicator Notification Interface description: > - SOL003 - VNF Indicator interface - + SOL003 - VNF Indicator 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. - - In clause 4.3.2 of ETSI GS NFV-SOL 003 v2.4.1, an attribute-based - filtering mechanism is defined. This mechanism is currently not - included in the corresponding OpenAPI design for this GS version. Changes - to the attribute-based filtering mechanism are being considered in v2.5.1 - of this GS for inclusion in the corresponding future ETSI NFV OpenAPI - design. - - Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution= + Please report bugs to https://forge.etsi.org/rep/nfv/SOL002-SOL003/issues license: name: "ETSI Forge copyright notice" url: https://forge.etsi.org/etsi-forge-copyright-notice.txt externalDocs: - description: ETSI GS NFV-SOL 003 V2.7.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.07.01_60/gs_NFV-SOL003v020701p.pdf + description: ETSI GS NFV-SOL 003 V2.8.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.08.01_60/gs_NFV-SOL003v020801p.pdf basePath: "/callback/v1" @@ -42,7 +33,7 @@ paths: ############################################################################### # Notification endpoint VnfIndicatorValueChangeNotification # ############################################################################### - '/URI-is-provided-by-the-client-when-creating-the-subscription-VnfIndicatorValueChangeNotification': + '/URI_is_provided_by_the_client_when_creating_the_subscription-VnfIndicatorValueChangeNotification': #SOL003 location: 8.4.7 post: description: > @@ -111,7 +102,7 @@ paths: get: description: > - The GET method allows the server to test the notification endpoint that is provided by the API consumer, + The GET method allows the API producer to test the notification endpoint that is provided by the API consumer, e.g. during subscription. This method shall follow the provisions specified in the tables 8.4.7.3.2-1 and 8.4.7.3.2-2 for URI query parameters, request and response data structures, and response codes. diff --git a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml index 5c0768f102e574456b510ec4641905ef03dcfb5d..7c6760a38f6b64fbd92384db2019a662f3308991 100644 --- a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -1,32 +1,23 @@ swagger: "2.0" info: - version: "1.4.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + version: "1.5.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" title: SOL003 - VNF Lifecycle Management interface description: > SOL003 - VNF Lifecycle Management interface definition - 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. - - In clause 4.3.2 of ETSI GS NFV-SOL 003 v2.4.1, an attribute-based - filtering mechanism is defined. This mechanism is currently not - included in the corresponding OpenAPI design for this GS version. Changes - to the attribute-based filtering mechanism are being considered in v2.5.1 - of this GS for inclusion in the corresponding future ETSI NFV OpenAPI - design. - - Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution= + Please report bugs to https://forge.etsi.org/rep/nfv/SOL002-SOL003/issues license: name: "ETSI Forge copyright notice" url: https://forge.etsi.org/etsi-forge-copyright-notice.txt externalDocs: - description: ETSI GS NFV-SOL 003 V2.7.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.07.01_60/gs_NFV-SOL003v020701p.pdf + description: ETSI GS NFV-SOL 003 V2.8.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.08.01_60/gs_NFV-SOL003v020801p.pdf basePath: "/vnflcm/v1" @@ -52,15 +43,8 @@ paths: #SOL003 location: 5.4.2 post: description: > - Create VNF Identifier. - The POST method creates a new VNF instance resource. - This method shall follow the provisions specified in the tables 5.4.2.3.1-1 and 5.4.2.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 VNF instance" - resource as defined in clause 5.4.3 shall have been created, and the value of the - "instantiationState" attribute in the representation of that resource shall be "NOT_INSTANTIATED". - A notification of type VnfIdentifierCreationNotification shall be triggered as part of successfully - executing this method as defined in clause 5.5.2.18. + The POST method creates a new VNF instance resource based on a VNF package + that is onboarded and in "ENABLED" state. parameters: - name: createVnfRequest description: The VNF creation parameters @@ -1737,7 +1721,7 @@ paths: maximum: 1 minimum: 0 schema: - $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOpOcc" + $ref: "./definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOpOcc" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: @@ -1831,7 +1815,7 @@ paths: maximum: 1 minimum: 1 schema: - $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOpOcc" + $ref: "./definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOpOcc" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: @@ -2112,7 +2096,7 @@ paths: Shall be returned when the state of the VNF lifecycle management operation occurrence has been changed successfully. - The response shall include a representation of the "Individual VNF lifecycle operation occurrence" resource. + The response body shall include a representation of the "Individual VNF lifecycle operation occurrence" resource. headers: Content-Type: description: The MIME type of the body of the response. @@ -2134,7 +2118,7 @@ paths: maximum: 1 minimum: 1 schema: - $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOpOcc" + $ref: "./definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOpOcc" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" 401: @@ -2292,14 +2276,14 @@ paths: 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 as defined in clause 5.4.3 shall have been created. This method shall not trigger any notification. - Creation of two "Individual subscription" resources with the same callbackURI and the same filter + 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 NFVO, and might make sense only in very rare use cases. Consequently, the VNFM may either allow creating an "Individual subscription" resource if another "Individual subscription" resource with the same - filter and callbackUri already exists (in which case it shall return the "201 Created" response code), + 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 callbackUri). + with the same filter and callback URI). parameters: - name: LccnSubscriptionRequest description: > @@ -2371,14 +2355,6 @@ paths: schema: $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LccnSubscription" 303: - #description: > - #303 SEE OTHER - - #Shall be returned if a subscription with the same callbackURI and the same filter already exists - #and the policy of the VNFM 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. $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/303" 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" diff --git a/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml b/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml index 11b3331c90d11d634763f3a224167914fa8b3b62..891592e7d4888233d6b072e67b06462b2f649143 100644 --- a/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml +++ b/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml @@ -82,12 +82,22 @@ definitions: set to true, auto-healing is currently enabled. If set to false, auto-healing is currently disabled. These configurable properties can be initialized with default values - from the VNFD (see note 4) or with values passed in the InstantiateVnfRequest - structure (see clause 5.5.2.4). - Configurable properties initialized with default values from the VNFD can be - updated with values passed in the InstantiateVnfRequest structure. + from the VNFD (see note 4). + Configurable properties can be modified with values passed in request + structures of certain LCM operations, such as the InstantiateVnfRequest + structure. Further, these configurable properties can be created, modified or deleted with the PATCH method. + + NOTE 4: Upon creation of the VnfInstance structure, the VNFM shall create + and initialize all child attributes of "vnfConfigurableProperties", "metadata" + and "extensions" that were declared in the VNFD with a defined initial value. + The defined initial values can be declared in the VNFD, and/or, in case of + "metadata", obtained from the "CreateVnfRequest" structure. Child attributes of + "vnfConfigurableProperties", "metadata" and "extensions" that have no defined + initial value shall not be created, in order to be consistent with the semantics + of the JSON Merge Patch method (see IETF RFC 7396) that interprets null values + as deletion request. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" vimConnectionInfo: description: > @@ -179,7 +189,7 @@ definitions: by the VNFCs of the VNF instance. type: array items: - $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfcResourceInfo" + $ref: "#/definitions/VnfcResourceInfo" virtualLinkResourceInfo: description: > Information about the virtualised network resources used by the VLs @@ -205,8 +215,8 @@ definitions: The declaration of metadata in the VNFD can optionally contain the specification of initial values. The VNFM shall accept requests to write metadata that are not declared in the VNFD. These attributes can be initialized with default values from the VNFD or with values - passed in the CreateVnfRequest structure (see clause 5.5.2.3). - This attributeThese attributes can be created, modified or removed with the PATCH method. + passed in the CreateVnfRequest structure (see clause 5.4.2.3.1). + These attributes can be created, modified or removed with the PATCH method. ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on TOSCA specifications. Upon creation of the VnfInstance structure, the VNFM shall create and initialize all child attributes @@ -218,28 +228,28 @@ definitions: 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 the lifecycle management scripts during the execution of - VNF lifecycle management operations. - All extensions that are allowed for the VNF are declared in the VNFD. The declaration of an extension - in the VNFD contains information on whether its presence is optional or required, and optionally - can specify an initial value. See note 2 and note 4. The VNFM shall reject requests to write extension - attributes that are not declared in the VNFD with a "422 Unprocessable entity" error response as defined - in clause 6.4 of ETSI GS NFV-SOL 013. - 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 + These attributes represent values that are stored persistently in the VnfInstance structure for + consumption by the VNFM or the lifecycle management scripts during the execution of VNF lifecycle + management operations. All extensions that are allowed for the VNF are declared in the VNFD. + The declaration of an extension in the VNFD contains information on whether its presence is optional + or required, and optionally can specify an initial value. See note 2 and note 4. The VNFM shall reject + requests to write extension attributes that are not declared in the VNFD with a "422 Unprocessable entity" + error response as defined in clause 6.4 of ETSI GS NFV- SOL 013. + 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. - These attributes can be initialized with default values from the VNFD or with values passed in the - InstantiateVnfRequest structure (see clause 5.5.2.4). - Attributes initialized with default values from the VNFD can be updated with values passed in the - InstantiateVnfRequest structure. + These attributes can be initialized with default values from the VNFD (see note 4). + These attributes can be updatedmodified with values passed in the request structures of certain LCM operations, + such as the InstantiateVnfRequest structure. Further, these attributes can be created, modified or deleted with the PATCH method. - Upon creation of the VnfInstance structure, the VNFM shall create and initialize all child attributes - of "vnfConfigurableProperties", "metadata" and "extensions" that were declared in the VNFD with - a defined initial value. Child attributes of "vnfConfigurableProperties", "metadata" and "extensions" - that have no declared initial value shall not be created, in order to be consistent with the semantics - of the JSON Merge Patch method (see IETF RFC 7396) that interprets null values as deletion request. + NOTE 2: ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on TOSCA specifications. + NOTE 4: Upon creation of the VnfInstance structure, the VNFM shall create and initialize all child attributes + of "vnfConfigurableProperties", "metadata" and "extensions" that were declared in the VNFD with a defined initial + value. The defined initial values can be declared in the VNFD, and/or, in case of "metadata", obtained from the + "CreateVnfRequest" structure. Child attributes of "vnfConfigurableProperties", "metadata" and "extensions" that + have no declareddefined initial value shall not be created, in order to be consistent with the semantics of the + JSON Merge Patch method (see IETF RFC 7396) that interprets null values as deletion request. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" _links: description: > @@ -333,6 +343,11 @@ definitions: extManagedVirtualLinks: description: > Information about internal VLs that are managed by the NFVO. + NOTE: 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/SOL002SOL003_def.yaml#/definitions/ExtManagedVirtualLinkData" @@ -359,18 +374,15 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" extensions: description: > - If present, this attribute provides values for the "extensions" attribute - in "VnfInstance", as defined in clause 5.5.2.2. If an entry with the same - key exists in the VnfInstance data structure, the VNFM shall replace its - value with the value passed in the InstantiateVnfRequest data structure. + If present, this attribute provides modifications to the default values, as obtained + from the VNFD, of the "extensions" attribute in "VnfInstance", as defined in clause 5.5.2.2. + Provisions for handling extensions during the operation are defined in clause 5.4.4.3.1. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" vnfConfigurableProperties: description: > - This parameter provides values for the VNF configurable properties - attribute in the "VnfInstance", as defined in clause 5.5.2.2. - If an entry with the same key exists in the VnfInstance data structure, - the VNFM shall replace its value with the value passed in the - InstantiateVnfRequest data structure. + If present, this attribute provides modifications to the default values, as obtained from the VNFD, + of the "vnfConfigurableProperties" attribute in "VnfInstance", as defined in clause 5.5.2.2. + Provisions for handling configurable properties during the operation are defined in clause 5.4.4.3.1. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" ChangeVnfFlavourRequest: @@ -401,6 +413,11 @@ definitions: extManagedVirtualLinks: description: > Information about internal VLs that are managed by the NFVO. + + NOTE: 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/SOL002SOL003_def.yaml#/definitions/ExtManagedVirtualLinkData" @@ -420,6 +437,18 @@ definitions: to the VNF being instantiated, as declared in the VNFD as part of "InstantiateVnfOpConfig". $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + extensions: + description: > + If present, this attribute provides modifications to the values of the "extensions" attribute in + "VnfInstance", as defined in clause 5.5.2.2. Provisions for handling extensions during the operation, + are defined in clause 5.4.7.3.1. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + vnfConfigurableProperties: + description: > + If present, this attribute provides modifications to the values of the vnfConfigurableProperties" attribute + in "VnfInstance", as defined in clause 5.5.2.2. Provisions for handling VNF configurable properties during + the operation, are defined in clause 5.4.7.3.1. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" TerminateVnfRequest: type: object @@ -581,19 +610,19 @@ definitions: description: > Modifications of the "vnfConfigurableProperties" attribute in "VnfInstance". If present, these modifications shall be applied - according to the rules of JSON Merge PATCH (see IETF RFC 7396). + according to the rules of JSON Merge Patch (see IETF RFC 7396). $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" metadata: description: > Modifications of the "metadata" attribute in "VnfInstance". If present, these modifications shall be applied according to the rules - of JSON Merge PATCH (see IETF RFC 7396). + of JSON Merge Patch (see IETF RFC 7396). $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" extensions: description: > Modifications of the "extensions" attribute in "VnfInstance". If present, these modifications shall be applied according to the rules - of JSON Merge PATCH (see IETF RFC 7396). + of JSON Merge Patch (see IETF RFC 7396). $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" vimConnectionInfo: description: > @@ -703,13 +732,481 @@ definitions: StopType: description: > - * FORCEFUL: The VNFM will stop the VNF immediately after accepting the + * FORCEFUL: The VNFM will stop the VNF instance immediately after accepting the request. - * GRACEFUL: The VNFM will first arrange to take the VNF out of service + * GRACEFUL: The VNFM will first arrange to take the VNF instance out of service after accepting the request. Once that operation is successful or once the timer value specified in the "gracefulStopTimeout" attribute - expires, the VNFM will stop the VNF. + expires, the VNFM will stop the VNF instance. type: string enum: - FORCEFUL - - GRACEFUL \ No newline at end of file + - GRACEFUL + + VnfcResourceInfo: + description: > + This type represents the information on virtualised compute and storage + resources used by a VNFC in a VNF instance. + type: object + required: + - id + - vduId + - computeResource + properties: + id: + description: > + Identifier of this VnfcResourceInfo instance. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + vduId: + description: > + Reference to the applicable VDU in the VNFD. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" + computeResource: + description: > + Reference to the VirtualCompute resource. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ResourceHandle" + zoneId: + description: > + The identifier of the resource zone, as managed by the + resource management layer (typically, the VIM), where + the referenced VirtualCompute resource is placed. + Shall be provided if this information is available from the VIM. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + storageResourceIds: + description: > + References to the VirtualStorage resources. The value refers to a + VirtualStorageResourceInfo item in the VnfInstance. + type: array + items: + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + reservationId: + description: > + The reservation identifier applicable to the resource. It shall be + present when an applicable reservation exists. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + vnfcCpInfo: + description: > + CPs of the VNFC 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 + required: + - id + - cpdId + properties: + id: + description: > + Identifier of this VNFC CP instance and the associated array + entry. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + cpdId: + description: > + Identifier of the VDU CPD, cpdId, in the VNFD. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" + vnfExtCpId: + description: > + 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/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + cpProtocolInfo: + description: > + 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/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/CpProtocolInfo" + vnfLinkPortId: + description: > + Identifier of the "VnfLinkPortInfo" structure in the + "VnfVirtualLinkResourceInfo" structure. Shall be present if the CP is associated to a link port + on an internal VL of the VNF instance and shall be absent otherwise. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + metadata: + description: > + Metadata about this CP. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + metadata: + description: > + Metadata about this resource. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + + VnfLcmOpOcc: + description: > + This type represents a VNF lifecycle management operation occurrence. + type: object + required: + - id + - operationState + - stateEnteredTime + - startTime + - vnfInstanceId + - operation + - isAutomaticInvocation + - isCancelPending + properties: + id: + description: > + Identifier of this VNF lifecycle management operation occurrence. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + operationState: + description: > + The state of the LCM operation. + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LcmOperationStateType" + stateEnteredTime: + description: > + Date-time when the current state has been entered. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime" + startTime: + description: > + Date-time of the start of the operation. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime" + vnfInstanceId: + description: > + Identifier of the VNF instance to which the operation applies + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + grantId: + description: > + Identifier of the grant related to this VNF LCM operation + occurrence. Shall be set to the value of the "id" attribute + in the "Grant" representing the associated "Individual Grant", + if such grant exists. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + operation: + description: > + Type of the actual LCM operation represented by this VNF LCM + operation occurrence. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/LcmOperationType" + isAutomaticInvocation: + description: > + Set to true if this VNF LCM operation occurrence has been triggered + by an automated procedure inside the VNFM (i.e. + ScaleVnf / ScaleVnfToLevel triggered by auto-scale, or HealVnf + triggered by auto-heal). Set to false otherwise. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Boolean" + operationParams: + description: > + Input parameters of the LCM operation. This attribute shall be + formatted according to the request data type of the related LCM + operation. The following mapping between operationType and the + data type of this attribute shall apply: + * INSTANTIATE: InstantiateVnfRequest + * SCALE: ScaleVnfRequest + * SCALE_TO_LEVEL: ScaleVnfToLevelRequest + * CHANGE_FLAVOUR: ChangeVnfFlavourRequest + * OPERATE: OperateVnfRequest + * HEAL: HealVnfRequest + * CHANGE_EXT_CONN: ChangeExtVnfConnectivityRequest + * TERMINATE: TerminateVnfRequest + * MODIFY_INFO: VnfInfoModifications + type: object + isCancelPending: + description: > + If the VNF LCM operation occurrence is in "STARTING", "PROCESSING" + or "ROLLING_BACK" state and the operation is being cancelled, this + attribute shall be set to true. Otherwise, it shall be set to false. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Boolean" + cancelMode: + description: > + The mode of an ongoing cancellation. Shall be present when + isCancelPending=true, and shall be absent otherwise. + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/CancelModeType" + error: + description: > + If "operationState" is "FAILED_TEMP" or "FAILED" or "operationState" + is "PROCESSING" or "ROLLING_BACK" and previous value of + "operationState" was "FAILED_TEMP", this attribute shall be present + and contain error information, unless it has been requested to be + excluded via an attribute selector. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + resourceChanges: + description: > + This attribute contains information about the cumulative changes to + virtualised resources that were performed so far by the LCM + operation since its start, if applicable. + type: object + properties: + affectedVnfcs: + description: > + Information about VNFC instances that were affected during the + lifecycle operation. + NOTE 1: This allows the NFVO to obtain the information contained in the + latest "result" notification if it has not received it due to an + error or a wrongly configured subscription filter. + type: array + items: + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/AffectedVnfc" + affectedVirtualLinks: + description: > + Information about VL instances that were affected during the + lifecycle operation. See note 1 and note 2. + + NOTE 1: This allows the NFVO to obtain the information contained in + the latest "result" notification if it has not received it due to an + error or a wrongly configured subscription filter. + NOTE 2: For a particular affected VL, there shall be as many + "AffectedVirtualLink" entries as needed for signalling the different + types of changes, i.e., one per virtual link and change type. For instance, + in the case of signaling affected VL instances involving the addition of a + particular VL instance with links ports, one "AffectedVirtualLink" entry + signals the addition of the VL by using the "changeType" attribute of + "AffectedVirtualLink" structure equal to "ADDED", and another "AffectedVirtualLink" + entry signals the addition of externally visible VNF link ports of the VL by using + the "changeType" equal to "LINK_PORT_ADDED". + type: array + items: + $ref: "#/definitions/AffectedVirtualLink" + affectedExtLinkPorts: + description: > + Information about external VNF link ports that were affected during the lifecycle + operation. See note 1. + + NOTE 1: This allows the NFVO to obtain the information contained in the latest "result" + notification if it has not received it due to an error or a wrongly configured subscription + filter. + type: array + items: + $ref: "#/definitions/AffectedExtLinkPort" + affectedVirtualStorages: + description: > + Information about virtualised storage instances that were affected + during the lifecycle operation. + This allows the NFVO to obtain the information contained in the + latest "result" notification if it has not received it due to an + error or a wrongly configured subscription filter. + type: array + items: + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/AffectedVirtualStorage" + changedInfo: + description: > + Information about the changed VNF instance information, including + VNF configurable properties, if applicable. + This allows the NFVO to obtain the information contained in the + latest "result" notification if it has not received it due to an + error or a wrongly configured subscription filter. + $ref: "#/definitions/VnfInfoModifications" + changedExtConnectivity: + description: > + Information about changed external connectivity, if applicable. + This allows the NFVO to obtain the information contained in the + latest "result" notification if it has not received it due to an + error or a wrongly configured subscription filter. + type: array + items: + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ExtVirtualLinkInfo" + _links: + description: > + Links to resources related to this resource. + type: object + required: + - self + - vnfInstance + properties: + self: + description: > + URI of this resource. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" + vnfInstance: + description: > + Link to the VNF instance that the operation applies to. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" + grant: + description: > + Link to the grant for this operation, if one exists. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" + cancel: + description: > + Link to the task resource that represents the "cancel" operation + for this VNF LCM operation occurrence, if cancelling is + currently allowed. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" + retry: + description: > + Link to the task resource that represents the "retry" operation + for this VNF LCM operation occurrence, if retrying is currently + allowed. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" + rollback: + description: > + Link to the task resource that represents the "rollback" + operation for this VNF LCM operation occurrence, if rolling back + is currently allowed. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" + fail: + description: > + Link to the task resource that represents the "fail" operation + for this VNF LCM operation occurrence, if declaring as failed is + currently allowed. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" + + AffectedVirtualLink: + description: > + This type provides information about added, deleted, modified and + temporary VLs, and added or removed VNF link ports. + It shall comply with the provisions in table 5.5.3.14-1. + type: object + required: + - id + - vnfVirtualLinkDescId + - changeType + - networkResource + properties: + id: + description: > + Identifier of the virtual link instance, identifying the applicable + "vnfVirtualLinkResourceInfo" entry in the "VnfInstance" data type. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + vnfVirtualLinkDescId: + description: > + Identifier of the related VLD in the VNFD. + $ref: "../../../definitions/SOL002SOL003_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. + + NOTE 1: When signalling the addition (LINK_PORT_ADDED) or removal (LINK_PORT_REMOVED) of VNF link + ports, the "networkResource" and "resourceDefinitionId" attributes refer to the affected virtual + link instance, not the link port instance. The resource handles of the affected VNF link ports can + be found by dereferencing the identifiers in the "vnfLinkPortIds" attribute. + 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. + + NOTE 1: When signalling the addition (LINK_PORT_ADDED) or removal (LINK_PORT_REMOVED) of VNF link + ports, the "networkResource" and "resourceDefinitionId" attributes refer to the affected virtual + link instance, not the link port instance. The resource handles of the affected VNF link ports can + be found by dereferencing the identifiers in the "vnfLinkPortIds" attribute. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ResourceHandle" + vnfLinkPortIds: + description: > + Identifiers of the link ports of the affected VL related to the change. + Each identifier references a "VnfLinkPortInfo" structure. + Shall be set when changeType is equal to "LINK_PORT_ADDED" or "LINK_PORT_REMOVED", + and the related "VnfLinkPortInfo" structures are present (case "added") or have + been present (case "removed") in the "VnfVirtualLinkResourceInfo" or "ExtManagedVirtualLinkInfo" + structures that are represented by the "vnfVirtualLinkResource¬Info" or "extManagedVirtualLinkInfo" + attribute in the "VnfInstance" structure. See note 1. + + NOTE 1: When signalling the addition (LINK_PORT_ADDED) or removal (LINK_PORT_REMOVED) of VNF link + ports, the "networkResource" and "resourceDefinitionId" attributes refer to the affected virtual + link instance, not the link port instance. The resource handles of the affected VNF link ports can + be found by dereferencing the identifiers in the "vnfLinkPortIds" attribute. + type: array + items: + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + resourceDefinitionId: + description: > + The identifier of the "ResourceDefinition" in the granting exchange + related to the LCM operation occurrence. It shall be present when an + applicable GrantInfo for the granted resource exists. + The "resourceDefinitionId" attribute provides information to the API + consumer (i.e. the NFVO) to assist in correlating the resource changes + performed during the LCM operation with the granted resources in a + specific Grant exchange, which is identified by the "grantId" available + in the "Individual VNF lifecycle management operation occurrence" and + the "id" in the "Individual Grant". + + NOTE 1: When signalling the addition (LINK_PORT_ADDED) or removal (LINK_PORT_REMOVED) of VNF link + ports, the "networkResource" and "resourceDefinitionId" attributes refer to the affected virtual + link instance, not the link port instance. The resource handles of the affected VNF link ports can + be found by dereferencing the identifiers in the "vnfLinkPortIds" attribute. + NOTE 2: The "resourceDefinitionId" attribute provides information to the API consumer (i.e. the NFVO) + to assist in correlating the resource changes performed during the LCM operation with the granted + resources in a specific Grant exchange, which is identified by the "grantId" available in the "Individual + VNF lifecycle management operation occurrence" and the "id" in the "Individual Grant". + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierLocal" + zoneId: + description: > + The identifier of the resource zone, as managed by the resource + management layer (typically, the VIM), where the referenced VirtualNetwork + resource is placed. Shall be provided if this information is available from the VIM. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + 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/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + + AffectedExtLinkPort: + description: > + This type provides information about added and deleted external link ports (link ports attached to external + virtual links). It shall comply with the provisions in table 5.5.3.14a-1. + type: object + required: + - id + - changeType + - extCpInstanceId + - resourceHandle + properties: + id: + description: > + Identifier of the link port, identifying the applicable "extLinkPorts" entry in the "ExtVirtualLinkInfo" + data type (see clause 5.5.3.2). + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + changeType: + description: > + Signals the type of change. + Permitted values: + - ADDED + - REMOVED + type: string + enum: + - ADDED + - REMOVED + extCpInstanceId: + description: > + Identifier of the related external CP instance. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + resourceHandle: + description: > + Reference to the link port resource. Detailed information is (for added resources) + or has been (for removed resources) available from the VIM. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ResourceHandle" + resourceDefinitionId: + description: > + The identifier of the "ResourceDefinition" in the granting exchange related to the LCM + operation occurrence. It shall be present when an applicable GrantInfo for the granted + resource exists. See note. + + NOTE: The "resourceDefinitionId" attribute provides information to the API consumer + (i.e. the NFVO) to assist in correlating the resource changes performed during the LCM + operation with the granted resources in a specific Grant exchange, which is identified + by the "grantId" available in the "Individual VNF lifecycle management operation occurrence" + and the "id" in the "Individual Grant". + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierLocal" + + + diff --git a/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml b/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml index d26037d1124ddc60e4a65ef162f754f2c181997d..e70949d89b67aaf43264255eea8b53db58a0a3aa 100644 --- a/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml +++ b/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml @@ -1,32 +1,23 @@ swagger: "2.0" info: - version: "1.4.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + version: "1.5.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" title: SOL003 - VNF Lifecycle Management Notification interface description: > SOL003 - VNF 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. - - In clause 4.3.2 of ETSI GS NFV-SOL 003 v2.4.1, an attribute-based - filtering mechanism is defined. This mechanism is currently not - included in the corresponding OpenAPI design for this GS version. Changes - to the attribute-based filtering mechanism are being considered in v2.5.1 - of this GS for inclusion in the corresponding future ETSI NFV OpenAPI - design. - - Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution= + Please report bugs to https://forge.etsi.org/rep/nfv/SOL002-SOL003/issues license: name: "ETSI Forge copyright notice" url: https://forge.etsi.org/etsi-forge-copyright-notice.txt externalDocs: - description: ETSI GS NFV-SOL 003 V2.7.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.07.01_60/gs_NFV-SOL003v020701p.pdf + description: ETSI GS NFV-SOL 003 V2.8.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.08.01_60/gs_NFV-SOL003v020801p.pdf basePath: "/callback/v1" @@ -42,7 +33,7 @@ paths: ############################################################################### # Notification endpoint VnfLcmOperationOccurrenceNotification # ############################################################################### - '/URI-is-provided-by-the-client-when-creating-the-subscription-VnfLcmOperationOccurrenceNotification': + '/URI_is_provided_by_the_client_when_creating_the_subscription-VnfLcmOperationOccurrenceNotification': post: description: > Notify. @@ -56,7 +47,7 @@ paths: in: body required: true schema: - $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOperationOccurrenceNotification" + $ref: "./definitions/SOL003VNFLifecycleManagementNotification_def.yaml#/definitions/VnfLcmOperationOccurrenceNotification" - name: Authorization description: > The authorization token for the request. @@ -115,7 +106,7 @@ paths: get: description: > - The GET method allows the server to test the notification endpoint that is provided by the API consumer, + The GET method allows the API producer to test the notification endpoint that is provided by the API consumer, e.g. during subscription. This method shall follow the provisions specified in the tables 5.4.20.3.2-1 and 5.4.20.3.2-2 for URI query parameters, request and response data structures, and response codes. @@ -173,7 +164,7 @@ paths: ############################################################################### # Notification endpoint VnfIdentifierCreationNotification # ############################################################################### - '/URI-is-provided-by-the-client-when-creating-the-subscription-VnfIdentifierCreationNotification': + '/URI_is_provided_by_the_client_when_creating_the_subscription-VnfIdentifierCreationNotification': post: description: > Notify. @@ -247,7 +238,7 @@ paths: get: description: > - The GET method allows the server to test the notification endpoint that is provided by the API consumer, + The GET method allows the API producer to test the notification endpoint that is provided by the API consumer, e.g. during subscription. This method shall follow the provisions specified in the tables 5.4.20.3.2-1 and 5.4.20.3.2-2 for URI query parameters, request and response data structures, and response codes. @@ -305,7 +296,7 @@ paths: ############################################################################### # Notification endpoint VnfIdentifierDeletionNotification # ############################################################################### - '/URI-is-provided-by-the-client-when-creating-the-subscription-VnfIdentifierDeletionNotification': + '/URI_is_provided_by_the_client_when_creating_the_subscription-VnfIdentifierDeletionNotification': post: description: > Notify. @@ -379,7 +370,7 @@ paths: get: description: > - The GET method allows the server to test the notification endpoint that is provided by the API consumer, + The GET method allows the API producer to test the notification endpoint that is provided by the API consumer, e.g. during subscription. This method shall follow the provisions specified in the tables 5.4.20.3.2-1 and 5.4.20.3.2-2 for URI query parameters, request and response data structures, and response codes. diff --git a/src/SOL003/VNFLifecycleManagementNotification/definitions/SOL003VNFLifecycleManagementNotification_def.yaml b/src/SOL003/VNFLifecycleManagementNotification/definitions/SOL003VNFLifecycleManagementNotification_def.yaml new file mode 100644 index 0000000000000000000000000000000000000000..7a79a1ed4e7f028ed913e0588b7b7b66ecdbf8a7 --- /dev/null +++ b/src/SOL003/VNFLifecycleManagementNotification/definitions/SOL003VNFLifecycleManagementNotification_def.yaml @@ -0,0 +1,211 @@ +# Copyright (c) ETSI 2017. +# https://forge.etsi.org/etsi-forge-copyright-notice.txt + +definitions: + VnfLcmOperationOccurrenceNotification: + description: > + This type represents a VNF lifecycle management operation occurrence + notification, which informs the receiver of changes in the VNF + lifecycle caused by a VNF LCM operation occurrence. The support of the + notification is mandatory. + This notification shall be triggered by the VNFM when there is a change + in the state of a VNF LCM operation occurrence that changes the VNF lifecycle, + which represents an occurrence of one the following LCM operations: + * Instantiation of the VNF + * Scaling of the VNF instance (including auto-scaling) + * Healing of the VNF instance (including auto-healing) + * Change of the state of the VNF instance (i.e. Operate VNF) + * Change of the deployment flavour of the VNF instance + * Change of the external connectivity of the VNF instance + * Termination of the VNF instance + * Modification of VNF instance information and/or VNF configurable + properties through the "PATCH" method on the "Individual VNF instance" + resource. + Clause 5.6.2 defines the states and state transition of a VNF LCM operation occurrence, + and also specifies details of the notifications to be emitted at each state transition. + If this is the initial notification about the start of a VNF LCM operation occurrence, + it is assumed that the notification is sent by the VNFM before any action (including sending the grant request) + is taken as part of the LCM operation. Due to possible race conditions, the "start" notification, + the grant request and the LCM operation acknowledgment (i.e. the "202 Accepted" response) + can arrive in any order at the NFVO, and the NFVO shall be able to handle such a situation. + If this is a notification about a final or intermediate result state of a VNF LCM operation occurrence, + the notification shall be sent after all related actions of the LCM operation that led + to this state have been executed. + The new state shall be set in the "Individual VNF LCM operation occurrence" resource before + the notification about the state change is sent. + See clause 5.6.2.2 for further provisions regarding sending this notification, including + in cases of handling LCM operation errors. + type: object + required: + - id + - notificationType + - subscriptionId + - timeStamp + - notificationStatus + - operationState + - vnfInstanceId + - operation + - isAutomaticInvocation + - vnfLcmOpOccId + - _links + properties: + id: + description: > + Identifier of this notification. If a notification is sent multiple + times due to multiple subscriptions, the "id" attribute of all these + notifications shall have the same value. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + notificationType: + description: > + Discriminator for the different notification types. Shall be set to + "VnfLcmOperationOccurrenceNotification" for this notification type. + type: string + enum: + - VnfLcmOperationOccurrenceNotification + subscriptionId: + description: > + Identifier of the subscription that this notification relates to. + Shall be set to the value of the "id" attribute of the "LccnSubscription" + representing the associated "Individual subscription" resource. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + timeStamp: + description: > + Date-time of the generation of the notification. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime" + notificationStatus: + description: > + Indicates whether this notification reports about the start of a + lifecycle operation or the result of a lifecycle operation. + Permitted values: + * START: Informs about the start of the VNF LCM operation + occurrence. + * RESULT: Informs about the final or intermediate result of the VNF + LCM operation occurrence. + type: string + enum: + - START + - RESULT + operationState: + description: > + The state of the VNF LCM operation occurrence. + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LcmOperationStateType" + vnfInstanceId: + description: > + The identifier of the VNF instance affected. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + operation: + description: > + The lifecycle management operation. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/LcmOperationType" + isAutomaticInvocation: + description: > + Set to true if this VNF LCM operation occurrence has been triggered + by an automated procedure inside the VNFM + (i.e. ScaleVnf / ScaleVnfToLevel triggered by auto-scale, or HealVnf + triggered by auto-heal). + Set to false otherwise. + type: boolean + vnfLcmOpOccId: + description: > + The identifier of the VNF lifecycle management operation occurrence + associated to the notification. + Shall be set to the value of the "id" attribute of the "VnfLcmOpOcc" + representing the associated "Individual VNF lifecycle management operation + occurrence" resource. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + affectedVnfcs: + description: > + Information about VNFC instances that were affected during the + lifecycle operation. + Shall be present if the "notificationStatus" is set to "RESULT" and + the operation has performed any resource modification. Shall be + absent otherwise. This attribute contains information about the + cumulative changes to virtualised resources that were performed so + far by the VNF LCM operation occurrence and by any of the error + handling procedures for that operation occurrence. + type: array + items: + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/AffectedVnfc" + affectedVirtualLinks: + description: > + Information about VL instances that were affected during the + lifecycle operation. + + NOTE 1: Shall be present if the "notificationStatus" is set to "RESULT" + and the operation has performed any resource modification. Shall be absent + otherwise. This attribute contains information about the cumulative changes + to virtualised resources that were performed so far by the VNF LCM operation + occurrence and by any of the error handling procedures for that operation + occurrence. + NOTE 2: For a particular affected VL, there shall be as many "AffectedVirtualLink" + entries as needed for signalling the different types of changes, i.e., one per + virtual link and change type. For instance, in the case of signaling affected VL + instances involving the addition of a particular VL instance with links ports, + one "AffectedVirtualLink" entry signals the addition of the VL by using the + "changeType" attribute of "AffectedVirtualLink" structure equal to "ADDED", + and another "AffectedVirtualLink" entry signals the addition of externally visible + VNF link ports of the VL by using the "changeType" equal to "LINK_PORT_ADDED". + type: array + items: + $ref: "../../VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/AffectedVirtualLink" + affectedExtLinkPorts: + description: > + Information about external VNF link ports that were affected during the + lifecycle operation. See note 1. + + NOTE 1: Shall be present if the "notificationStatus" is set to "RESULT" + and the operation has performed any resource modification. Shall be absent + otherwise. This attribute contains information about the cumulative changes + to virtualised resources that were performed so far by the VNF LCM operation + occurrence and by any of the error handling procedures for that operation + occurrence. + type: array + items: + $ref: "../../VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/AffectedExtLinkPort" + affectedVirtualStorages: + description: > + Information about virtualised storage instances that were affected + during the lifecycle operation. + Shall be present if the "notificationStatus" is set to "RESULT" and + the operation has performed any resource modification. Shall be + absent otherwise. This attribute contains information about the + cumulative changes to virtualised resources that were performed so + far by the VNF LCM operation occurrence and by any of the error + handling procedures for that operation occurrence. + type: array + items: + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/AffectedVirtualStorage" + changedInfo: + description: > + Information about the changed VNF instance information, including + changed VNF configurable properties. + Shall be present if the "notificationStatus" is set to "RESULT" and + the operation has performed any changes to VNF instance information, + including VNF configurable properties. + Shall be absent otherwise. + $ref: "../../VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfInfoModifications" + changedExtConnectivity: + description: > + Information about changed external connectivity, if this notification + represents the result of a lifecycle operation occurrence. + Shall be present if the "notificationStatus" is set to "RESULT" and + the "operation" has made any changes to the external connectivity of + the VNF instance. Shall be absent otherwise. + Only information about external VL instances that have been added or + modified shall be provided. + type: array + items: + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ExtVirtualLinkInfo" + error: + description: > + Details of the latest error, if one has occurred during executing + the LCM operation (see clause 6.3 of ETSI GS NFV-SOL 013). + Shall be present if the "operationState" attribute is "FAILED_TEMP", "FAILED" + or "ROLLED_BACK" and shall be absent otherwise. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + _links: + description: > + Links to resources related to this notification. + The link URIs in this structure shall be set to point to the resources identified + by the corresponding identifier attributes in this notification. + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LccnLinks" \ No newline at end of file diff --git a/src/SOL003/VNFLifecycleOperationGranting/VNFLifecycleOperationGranting.yaml b/src/SOL003/VNFLifecycleOperationGranting/VNFLifecycleOperationGranting.yaml index 9b96ab2028002103f4e1677d7abed450019fbcef..4aae43beb321c31f77ecb1f87f20892f456310d7 100644 --- a/src/SOL003/VNFLifecycleOperationGranting/VNFLifecycleOperationGranting.yaml +++ b/src/SOL003/VNFLifecycleOperationGranting/VNFLifecycleOperationGranting.yaml @@ -11,23 +11,15 @@ info: version of the ETSI Group Specification it refers to. In case of discrepancies the published ETSI Group Specification takes precedence. - - In clause 4.3.2 of ETSI GS NFV-SOL 003 v2.4.1, an attribute-based - filtering mechanism is defined. This mechanism is currently not - included in the corresponding OpenAPI design for this GS version. Changes - to the attribute-based filtering mechanism are being considered in v2.5.1 - of this GS for inclusion in the corresponding future ETSI NFV OpenAPI - design. - - Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution= + Please report bugs to https://forge.etsi.org/rep/nfv/SOL002-SOL003/issues license: name: "ETSI Forge copyright notice" url: https://forge.etsi.org/etsi-forge-copyright-notice.txt externalDocs: - description: ETSI GS NFV-SOL 003 V2.7.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.07.01_60/gs_NFV-SOL003v020701p.pdf - + description: ETSI GS NFV-SOL 003 V2.8.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.08.01_60/gs_NFV-SOL003v020801p.pdf + basePath: "/grant/v1" schemes: diff --git a/src/SOL003/VNFLifecycleOperationGranting/definitions/VNFLifecycleOperationGranting_def.yaml b/src/SOL003/VNFLifecycleOperationGranting/definitions/VNFLifecycleOperationGranting_def.yaml index 786eb8b53d0a22040db33332e3ce84f1c8c55fa0..8fe17a62d2ef8628633e93b23f6a9de4a4397161 100644 --- a/src/SOL003/VNFLifecycleOperationGranting/definitions/VNFLifecycleOperationGranting_def.yaml +++ b/src/SOL003/VNFLifecycleOperationGranting/definitions/VNFLifecycleOperationGranting_def.yaml @@ -178,12 +178,18 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" vnfInstanceId: description: > - Identifier of the related VNF instance. + Identifier of the related VNF instance. See note 6. + + NOTE 6: The NFVO shall set the value of the attribute by copying the value + from the associated GrantRequest. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" vnfLcmOpOccId: description: > Identifier of the related VNF lifecycle management operation - occurrence. + occurrence. See note 6. + + NOTE 6: The NFVO shall set the value of the attribute by copying the value + from the associated GrantRequest. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" vimConnections: description: > @@ -199,8 +205,9 @@ definitions: This attribute shall only be supported when VNF-related Resource Management in direct mode is applicable. In direct mode, this parameter shall be absent if the VIM information was configured to - the VNFM in another way, present otherwise. - This interface allows to signal the use of multiple VIMs per VNF. + the VNFM in another way, present otherwise. See note 1. + + NOTE 1: This interface allows to signal the use of multiple VIMs per VNF. However, due to the partial support of this feature in the present release, it is recommended in the present document that the number of entries in the "vims" attribute in the Grant is not greater than @@ -229,8 +236,9 @@ definitions: computeReservationId: description: > Information that identifies a reservation applicable to the compute - resource requirements of the corresponding grant request. - At least one of (computeReservationId, networkReservationId, + resource requirements of the corresponding grant request. See note 2. + + NOTE 2: At least one of (computeReservationId, networkReservationId, storageReservationId) shall be present when policy is GRANT_RESERVE_SINGLE and an applicable reservation exists. None of these shall be present otherwise. @@ -238,8 +246,9 @@ definitions: networkReservationId: description: > Information that identifies a reservation applicable to the network - resource requirements of the corresponding grant request. - At least one of (computeReservationId, networkReservationId, + resource requirements of the corresponding grant request. See note 2. + + NOTE 2: At least one of (computeReservationId, networkReservationId, storageReservationId) shall be present when policy is GRANT_RESERVE_SINGLE and an applicable reservation exists. None of these shall be present otherwise. @@ -247,8 +256,9 @@ definitions: storageReservationId: description: > Information that identifies a reservation applicable to the storage - resource requirements of the corresponding grant request. - At least one of (computeReservationId, networkReservationId, + resource requirements of the corresponding grant request. See note 2. + + NOTE 2: At least one of (computeReservationId, networkReservationId, storageReservationId) shall be present when policy is GRANT_RESERVE_SINGLE and an applicable reservation exists. None of these shall be present otherwise. @@ -256,7 +266,7 @@ definitions: addResources: description: > List of resources that are approved to be added, with one entry per - resource. + resource. Shall be set when resources are approved to be added. type: array items: $ref: "#/definitions/GrantInfo" @@ -264,21 +274,22 @@ definitions: description: > List of resources that are approved to be temporarily instantiated during the runtime of the lifecycle operation, with one entry per - resource. + resource. Shall be set when resources are approved to be temporarily + instantiated. type: array items: $ref: "#/definitions/GrantInfo" removeResources: description: > List of resources that are approved to be removed, with one entry - per resource. + per resource. Shall be set when resources are approved to be removed. type: array items: $ref: "#/definitions/GrantInfo" updateResources: description: > List of resources that are approved to be modified, with one entry - per resource. + per resource. Shall be set when resources are approved to be updated. type: array items: $ref: "#/definitions/GrantInfo" @@ -286,8 +297,9 @@ definitions: description: > Information about assets for the VNF that are managed by the NFVO in the VIM, such as software images and virtualised compute resource - flavours. - The Grant response allows the NFVO to pass to the VNFM VIM assets + flavours. See note 3. + + NOTE 3: The Grant response allows the NFVO to pass to the VNFM VIM assets related to the VNF package that is identified by the vnfdId attribute in the corresponding Grant request. The NFVO may send in each Grant response the full set of VIM assets related to the VNF package defined @@ -321,44 +333,52 @@ definitions: $ref: "#/definitions/VimSoftwareImage" extVirtualLinks: description: > - Information about external VLs to connect the VNF to. - External and/or externally-managed internal VLs can be passed in VNF - lifecycle management operation requests such as InstantiateVnf or - ChangeVnfFlavor, and/or in the grant response. The NFVO may choose - to override in the grant response external and/or externally-managed - VL instances that have been passed previously in the associated VNF - lifecycle management request, if the lifecycle management request - has originated from the NFVO itself. - If this attribute is present , it need not contain - those entries that are unchanged compared to the entries that were passed - in the LCM operation which is related to this granting exchange. - External and/or externally-managed internal VLs can be passed in - VNF lifecycle management operation requests such as InstantiateVnf - or ChangeVnfFlavour, and/or in the grant response. The NFVO may choose - to override in the grant response external and/or externally-managed VL - instances that have been passed previously in the associated VNF lifecycle - management request, if the lifecycle management request has originated from the NFVO itself. + Information about external VLs to connect the VNF to. See note 5 and note 7. + If this attribute is present according to note 5 or note 7, it need not + contain those entries that are unchanged compared to the entries that + were passed in the LCM operation which is related to this granting exchange. + + NOTE 5: External and/or externally-managed internal VLs can be passed in VNF + lifecycle management operation requests such as InstantiateVnf, ChangeVnfFlavour + or ChangeExtVnfConnectivity and/or in the grant response. The NFVO may choose to + override in the grant response external and/or externally-managed VL instances + that have been passed previously in the associated VNF lifecycle management request, + if the lifecycle management request has originated from the NFVO itself. + + NOTE 7: In case of granting an InstantiateVnf request that has originated from the + NFVO and that did not contain the "extVirtualLinks" attribute, this attribute shall + be set by the NFVO. Further in case of granting an InstantiateVnf request that has + originated from the NFVO and that did not contain the "extManagedVirtualLinks" attribute, + this attribute shall be set by the NFVO if there is the need to provide information about + externally-managed virtual links. type: array items: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtVirtualLinkData" extManagedVirtualLinks: description: > Information about internal VLs that are managed by other entities - than the VNFM. - 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 + than the VNFM. See note 4, note 5 and note 57 + + NOTE 4: 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. - External and/or externally-managed internal VLs can be passed in VNF - lifecycle management operation requests such as InstantiateVnf or - ChangeVnfFlavor, and/or in the grant response. The NFVO may choose - to override in the grant response external and/or externally-managed - VL instances that have been passed previously in the associated VNF - lifecycle management request, if the lifecycle management request - has originated from the NFVO itself. + network topologies. The present document assumes that externally-managed + internal VLs are managed by the NFVO and created towards the VIM). + + NOTE 5: External and/or externally-managed internal VLs can be passed in VNF + lifecycle management operation requests such as InstantiateVnf, ChangeVnfFlavour + or ChangeExtVnfConnectivity and/or in the grant response. The NFVO may choose to + override in the grant response external and/or externally-managed VL instances + that have been passed previously in the associated VNF lifecycle management request, + if the lifecycle management request has originated from the NFVO itself. + + NOTE 7: In case of granting an InstantiateVnf request that has originated from the + NFVO and that did not contain the "extVirtualLinks" attribute, this attribute shall + be set by the NFVO. Further in case of granting an InstantiateVnf request that has + originated from the NFVO and that did not contain the "extManagedVirtualLinks" attribute, + this attribute shall be set by the NFVO if there is the need to provide information about + externally-managed virtual links. type: array items: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtManagedVirtualLinkData" @@ -425,9 +445,11 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" resourceTemplateId: description: > - Reference to a resource template (VnfVirtualLinkDesc, - VirtualComputeDesc, VnfExtCpd, VirtualStorageDesc) in the - VNFD. + Reference to the applicable resource template in the VNFD as follows: + - If type="VL": VnfVirtualLinkDesc, + - If type="COMPUTE": VirtualComputeDesc, + - If type="LINKPORT": VnfExtCpd, + - If type="STORAGE": VirtualStorageDesc) in the VNFD. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" resource: description: > @@ -455,7 +477,7 @@ definitions: VNFC/VirtualLink/VirtualStorage. It shall be present for new resources when policy is GRANT_RESERVE_MULTI and an applicable reservation exists; shall not be present otherwise. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVim" vimConnectionId: description: > Identifier of the VIM connection to be used to manage this resource. diff --git a/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml b/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml index 2e4de3ac4efb3d67117dc4fa1a858ccde74fc485..ff8e63db6f291c3aed191b9f003edc3e7cba15cf 100644 --- a/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml +++ b/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml @@ -1,32 +1,23 @@ 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: SOL003 - VNF Package Management interface description: > SOL003 - VNF Package Management interface - IMPORTANT: Please note that this file might be not aligned to the current version of the ETSI Group Specification it refers to. In case of discrepancies the published ETSI Group Specification takes precedence. - - In clause 4.3.2 of ETSI GS NFV-SOL 003 v2.4.1, an attribute-based - filtering mechanism is defined. This mechanism is currently not - included in the corresponding OpenAPI design for this GS version. Changes - to the attribute-based filtering mechanism are being considered in v2.5.1 - of this GS for inclusion in the corresponding future ETSI NFV OpenAPI - design. - - Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution= + Please report bugs to https://forge.etsi.org/rep/nfv/SOL002-SOL003/issues license: name: "ETSI Forge copyright notice" url: https://forge.etsi.org/etsi-forge-copyright-notice.txt externalDocs: - description: ETSI GS NFV-SOL 003 V2.7.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.07.01_60/gs_NFV-SOL003v020701p.pdf + description: ETSI GS NFV-SOL 003 V2.8.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.08.01_60/gs_NFV-SOL003v020801p.pdf basePath: "/vnfpkgm/v2" @@ -415,24 +406,41 @@ paths: The GET method reads the content of the VNFD within a VNF 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 be the one 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. 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 default format of the ZIP archive shall comply with 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 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) + Three examples are provided below. - NOTE: These examples do not show the security related files. + 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): @@ -614,24 +622,41 @@ paths: The GET method reads the content of the VNFD within a VNF 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 be the one 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. 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 default format of the ZIP archive shall comply with 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 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) + Three examples are provided below. - NOTE: These examples do not show the security related files. + 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): @@ -1378,24 +1403,26 @@ paths: type: string get: description: > - Fetch VNF Package Artifacts. - 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. + 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. - All additional artifacts included in the VNF package that are non-MANO artifacts - shall be included in the archive, unless: -  the URI query parameter "exclude_all_non_mano_artifacts" has been provided, - in which case such artifacts shall be excluded; -  the URI query parameter "select_non_mano_artifact_sets" has been provided and - is supported by the NFVO, in which case only those non-MANO artifacts shall be - included whose non-MANO artifact set identifier matches one of the values of the query parameter. + shall be included in the archive, unless: + - The URI query parameter "exclude_all_non_mano_artifacts" has been provided, + in which case such artifacts shall be excluded; + - The URI query parameter "select_non_mano_artifact_sets" has been provided and + is supported by the NFVO, in which case only those non-MANO artifacts shall be + included whose non-MANO artifact set identifier matches one of the values of the + query parameter. Package metadata such as manifest file or VNFD shall not be included in the archive. This method shall follow the provisions specified in the tables 10.4.5a.3.2-1 and 10.4.5a.3.2-2 for URI query parameters, request and response data structures, and response codes. @@ -1429,6 +1456,52 @@ paths: in: header required: true type: string + - name: exclude_all_mano_artifacts + description: > + 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 this parameter. + in: query + required: false + type: string + - name: exclude_all_non_mano_artifacts + description: > + 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. + in: query + required: false + type: string + - 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 VNFM may supply this parameter. + in: query + required: false + type: string + - name: select_non_mano_artifact_sets + description: > + Comma-separated list of non-MANO artifact set identifiers for 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 parameter. + in: query + required: false + type: string + - name: include_signatures + description: > + If this parameter is provided, the NFVO shall include in the ZIP archive the individual + signatures and, if provided, related certificates for the included artifacts, in the + format in which they are provided in the VNF package. If this parameter is not given, + the NFVO shall only provide copies of the artifact files. This URI query parameter is + a flag, i.e. it shall have no value. The NFVO shall support this parameter. + in: query + required: false + type: string responses: 200: description: > @@ -1543,24 +1616,26 @@ paths: type: string get: description: > - Fetch VNF Package Artifacts. - 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. + 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. - All additional artifacts included in the VNF package that are non-MANO artifacts - shall be included in the archive, unless: -  the URI query parameter "exclude_all_non_mano_artifacts" has been provided, - in which case such artifacts shall be excluded; -  the URI query parameter "select_non_mano_artifact_sets" has been provided and - is supported by the NFVO, in which case only those non-MANO artifacts shall be - included whose non-MANO artifact set identifier matches one of the values of the query parameter. + shall be included in the archive, unless: + - The URI query parameter "exclude_all_non_mano_artifacts" has been provided, + in which case such artifacts shall be excluded; + - The URI query parameter "select_non_mano_artifact_sets" has been provided and + is supported by the NFVO, in which case only those non-MANO artifacts shall be + included whose non-MANO artifact set identifier matches one of the values of the + query parameter. Package metadata such as manifest file or VNFD shall not be included in the archive. This method shall follow the provisions specified in the tables 10.4.5a.3.2-1 and 10.4.5a.3.2-2 for URI query parameters, request and response data structures, and response codes. @@ -1594,6 +1669,52 @@ paths: in: header required: true type: string + - name: exclude_all_mano_artifacts + description: > + 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 this parameter. + in: query + required: false + type: string + - name: exclude_all_non_mano_artifacts + description: > + 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. + in: query + required: false + type: string + - 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 VNFM may supply this parameter. + in: query + required: false + type: string + - name: select_non_mano_artifact_sets + description: > + Comma-separated list of non-MANO artifact set identifiers for 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 parameter. + in: query + required: false + type: string + - name: include_signatures + description: > + If this parameter is provided, the NFVO shall include in the ZIP archive the individual + signatures and, if provided, related certificates for the included artifacts, in the + format in which they are provided in the VNF package. If this parameter is not given, + the NFVO shall only provide copies of the artifact files. This URI query parameter is + a flag, i.e. it shall have no value. The NFVO shall support this parameter. + in: query + required: false + type: string responses: 200: description: > @@ -1702,7 +1823,7 @@ paths: parameters: - name: artifactPath description: > - SequenceFor an artifact contained as a file in the VNF package, + For an artifact contained as a file in the VNF package, this variable shall contain a sequence of one or more path segments representing the path of the artifact within the VNF package, relative to the root of the package. @@ -1712,9 +1833,14 @@ paths: For an external artifact represented as a URI in the VNF package manifest, this variable shall contain a sequence of one or more path segments as synthesized by the NFVO (see clause 10.5.3.3), - representing this artifact. + representing this artifact. See notes 2 and 4. + + NOTE 2: This identifier can be retrieved from the "artifactPath" attribute + of the applicable "additionalArtifacts" entry in the body of the response + to a GET request querying the "Individual VNF package" or the "VNF packages" + resource. - Since multiple path segments are allowed to be contained in this variable, + NOTE 4: Since multiple path segments are allowed to be contained in this variable, the "/" character that separates these segments is not percent-encoded. Each individual segment is percent-encoded if necessary as defined in clause 4.1 of ETSI GS NFV-SOL 013. @@ -1910,7 +2036,7 @@ paths: parameters: - name: artifactPath description: > - SequenceFor an artifact contained as a file in the VNF package, + For an artifact contained as a file in the VNF package, this variable shall contain a sequence of one or more path segments representing the path of the artifact within the VNF package, relative to the root of the package. @@ -1920,9 +2046,14 @@ paths: For an external artifact represented as a URI in the VNF package manifest, this variable shall contain a sequence of one or more path segments as synthesized by the NFVO (see clause 10.5.3.3), - representing this artifact. + representing this artifact. See notes 2 and 4. + + NOTE 2: This identifier can be retrieved from the "artifactPath" attribute + of the applicable "additionalArtifacts" entry in the body of the response + to a GET request querying the "Individual VNF package" or the "VNF packages" + resource. - Since multiple path segments are allowed to be contained in this variable, + NOTE 4: Since multiple path segments are allowed to be contained in this variable, the "/" character that separates these segments is not percent-encoded. Each individual segment is percent-encoded if necessary as defined in clause 4.1 of ETSI GS NFV-SOL 013. @@ -2128,16 +2259,16 @@ paths: "Individual subscription" resource as defined in clause 10.4.8 shall have been created. This method shall not trigger any notification. Creation of two "Individual subscription" resources with the same - callbackURI and the same filter can result in performance degradation + callback URI and the same filter can result in performance degradation and will provide duplicates of notifications to the VNFM, and might make sense only in very rare use cases. Consequently, the NFVO may either allow creating a new "Individual subscription" resource if another "Individual subscription" resource with the same filter and - callbackUri already exists (in which case it shall return the + 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 callbackUri). + resource with the same filter and callback URI). parameters: - name: PkgmSubscriptionRequest description: > diff --git a/src/SOL003/VNFPackageManagement/definitions/VNFPackageManagement_def.yaml b/src/SOL003/VNFPackageManagement/definitions/VNFPackageManagement_def.yaml index efb7f5c8f3a337ff46b070dd2e025fed039c6d4f..e1b12e18ff62a5b3e8ad8335e56d129f5622bc51 100644 --- a/src/SOL003/VNFPackageManagement/definitions/VNFPackageManagement_def.yaml +++ b/src/SOL003/VNFPackageManagement/definitions/VNFPackageManagement_def.yaml @@ -227,8 +227,9 @@ 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. It shall comply with provisions defined + in table 10.5.3.2-1 type: object required: - id @@ -344,14 +345,36 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" imagePath: description: > - Path in the VNF package, which identifies the image artifact and also + Path which identifies the image artifact and also allows to access a copy of the image 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. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/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/SOL002SOL003_def.yaml#/definitions/Uri" VnfPackageArtifactInfo: description: > This type represents an artifact other than a software image which is - contained in a VNF package. + contained in or external to a VNF package. It shall comply with the provisions + defined in table 10.5.3.3-1. type: object required: - artifactPath @@ -382,6 +405,14 @@ definitions: collision of the synthesized artifact path with the paths and names of artifacts included in the package. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/String" + artifactURI: + description: > + URI of the artifact as defined in the VNF package manifest. + Shall be present if the artifact is external to the package + and shall be absent otherwise. + + EXAMPLE: https://example.com/m%40ster.sh + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Uri" checksum: description: > Checksum of the artifact file. @@ -390,16 +421,6 @@ definitions: description: > Reflects whether the artifact is encrypted (true) or not (false). $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Boolean" - artifactURI: - description: > - URI of the artifact as defined in the VNF package manifest. - Shall be present if the artifact is external to the package - and shall be absent otherwise. - - EXAMPLE: https://example.com/m%40ster.sh - type: array - items: - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Uri" nonManoArtifactSetId: description: > Non-MANO artifact set identifier of the non-MANO artifact set to @@ -586,9 +607,8 @@ definitions: PackageUsageStateType: description: > - - 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. type: string enum: - IN_USE diff --git a/src/SOL003/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml b/src/SOL003/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml index 664b2b156711cf05029fabcd0c13c2e4943d6c8f..b0dce5c65de2bfba592acc337f2a5a0f6f5c1dd7 100644 --- a/src/SOL003/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml +++ b/src/SOL003/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml @@ -1,32 +1,23 @@ 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: SOL003 - VNF Package Management Notification interface description: > SOL003 - 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. - - In clause 4.3.2 of ETSI GS NFV-SOL 003 v2.4.1, an attribute-based - filtering mechanism is defined. This mechanism is currently not - included in the corresponding OpenAPI design for this GS version. Changes - to the attribute-based filtering mechanism are being considered in v2.5.1 - of this GS for inclusion in the corresponding future ETSI NFV OpenAPI - design. - - Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution= + Please report bugs to https://forge.etsi.org/rep/nfv/SOL002-SOL003/issues license: name: "ETSI Forge copyright notice" url: https://forge.etsi.org/etsi-forge-copyright-notice.txt externalDocs: - description: ETSI GS NFV-SOL 003 V2.7.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.07.01_60/gs_NFV-SOL003v020701p.pdf + description: ETSI GS NFV-SOL 003 V2.8.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.08.01_60/gs_NFV-SOL003v020801p.pdf basePath: "/callback/v2" @@ -42,7 +33,7 @@ paths: ############################################################################### # Notification endpoint VnfPackageOnboardingNotification # ############################################################################### - '/URI-is-provided-by-the-client-when-creating-the-subscription-VnfPackageOnboardingNotification': + '/URI_is_provided_by_the_client_when_creating_the_subscription-VnfPackageOnboardingNotification': #SOL003 location: 10.4.9 post: description: > @@ -116,7 +107,7 @@ paths: get: description: > - The GET method allows the server to test the notification endpoint that is provided by the API consumer + The GET method allows the API producer to test the notification endpoint that is provided by the API consumer e.g. during subscription. This method shall follow the provisions specified in the tables 10.4.9.3.2-1 and 10.4.9.3.2-2 for URI query parameters, request and response data structures, and response codes. @@ -174,7 +165,7 @@ paths: ############################################################################### # Notification endpoint VnfPackageChangeNotification # ############################################################################### - '/URI-is-provided-by-the-client-when-creating-the-subscription-VnfPackageChangeNotification': + '/URI_is_provided_by_the_client_when_creating_the_subscription-VnfPackageChangeNotification': #SOL003 location: 10.4.9 post: description: > @@ -249,7 +240,7 @@ paths: get: description: > - The GET method allows the server to test the notification endpoint that is provided by the API consumer + The GET method allows the API producer to test the notification endpoint that is provided by the API consumer e.g. during subscription. This method shall follow the provisions specified in the tables 10.4.9.3.2-1 and 10.4.9.3.2-2 for URI query parameters, request and response data structures, and response codes. diff --git a/src/SOL003/VNFPackageManagementNotification/definitions/VNFPackageManagementNotification_def.yaml b/src/SOL003/VNFPackageManagementNotification/definitions/VNFPackageManagementNotification_def.yaml index 52d66fe316ae85d6dad8aa888026ba6359edc6fd..a692bbc5a7f4484d0b781e2434044a779c158369 100644 --- a/src/SOL003/VNFPackageManagementNotification/definitions/VNFPackageManagementNotification_def.yaml +++ b/src/SOL003/VNFPackageManagementNotification/definitions/VNFPackageManagementNotification_def.yaml @@ -160,19 +160,17 @@ definitions: properties: 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, identified by the "vnfPkgId" - identifier which is managed by the NFVO. This attribute shall be provided - by the NFVO but is deprecated and can be removed in future versions - of the present document. + Link to the resource representing the VNF package to which the notified change + applies, i.e. the "Individual VNF package" resource that represents the VNF package, + identified by the "vnfPkgId" identifier which is managed by the NFVO. + This attribute shall be provided by the NFVO but is deprecated and can be removed + in future versions of the present document. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/NotificationLink" vnfPackageByVnfdId: description: > - Link to the resource representing the VNF package to which the notified - change applies, i.e. the individual VNF package resource that represents - the VNF package, identified by the "vnfdId" identifier which is assigned - by the VNF vendor. + Link to the resource representing the VNF package to which the notified change applies, + i.e. the "Individual VNF package" resource that represents the VNF package, identified + by the "vnfdId" identifier which is assigned by the VNF vendor. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/NotificationLink" subscription: description: > diff --git a/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml b/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml index 5439f47e85f22aaea447551a7acace3ce89675b8..a071866ec4c0035a9de990bac1a0889076db36f8 100644 --- a/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml +++ b/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml @@ -1,32 +1,23 @@ 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: SOL003 - VNF Performance Management interface description: > SOL003 - VNF Performance Management interface - IMPORTANT: Please note that this file might be not aligned to the current version of the ETSI Group Specification it refers to. In case of discrepancies the published ETSI Group Specification takes precedence. - - In clause 4.3.2 of ETSI GS NFV-SOL 003 v2.4.1, an attribute-based - filtering mechanism is defined. This mechanism is currently not - included in the corresponding OpenAPI design for this GS version. Changes - to the attribute-based filtering mechanism are being considered in v2.5.1 - of this GS for inclusion in the corresponding future ETSI NFV OpenAPI - design. - - Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution= + Please report bugs to https://forge.etsi.org/rep/nfv/SOL002-SOL003/issues license: name: "ETSI Forge copyright notice" url: https://forge.etsi.org/etsi-forge-copyright-notice.txt externalDocs: - description: ETSI GS NFV-SOL 003 V2.7.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.07.01_60/gs_NFV-SOL003v020701p.pdf + description: ETSI GS NFV-SOL 003 V2.8.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.08.01_60/gs_NFV-SOL003v020801p.pdf basePath: "/vnfpm/v2" @@ -389,7 +380,7 @@ paths: patch: description: > - This method allows to modify an "individual PM job" resource. + This method allows to modify an "Individual PM job" resource. This method shall follow the provisions specified in the tables 6.4.3.3.4-1 and 6.4.3.3.4-2 for URI query parameters, request and response data structures, and response codes. diff --git a/src/SOL003/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml b/src/SOL003/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml index c6be960ac619ebcea3d713c29cff8c69f3b0baeb..b226a2cedcc926a2ac7b1b1be4e1f48628974468 100644 --- a/src/SOL003/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml +++ b/src/SOL003/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml @@ -1,32 +1,23 @@ 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: SOL003 - VNF Performance Management Notification interface description: > SOL003 - VNF 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. - - In clause 4.3.2 of ETSI GS NFV-SOL 003 v2.4.1, an attribute-based - filtering mechanism is defined. This mechanism is currently not - included in the corresponding OpenAPI design for this GS version. Changes - to the attribute-based filtering mechanism are being considered in v2.5.1 - of this GS for inclusion in the corresponding future ETSI NFV OpenAPI - design. - - Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution= + Please report bugs to https://forge.etsi.org/rep/nfv/SOL002-SOL003/issues license: name: "ETSI Forge copyright notice" url: https://forge.etsi.org/etsi-forge-copyright-notice.txt externalDocs: - description: ETSI GS NFV-SOL 003 V2.7.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.07.01_60/gs_NFV-SOL003v020701p.pdf + description: ETSI GS NFV-SOL 003 V2.8.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.08.01_60/gs_NFV-SOL003v020801p.pdf basePath: "/callback/v2" @@ -42,7 +33,7 @@ paths: ############################################################################### # Notification endpoint PerformanceInformationAvailableNotification # ############################################################################### - '/URI-is-provided-by-the-client-when-creating-the-subscription-PerformanceInformationAvailableNotification': + '/URI_is_provided_by_the_client_when_creating_the_subscription-PerformanceInformationAvailableNotification': #SOL003 location: 6.4.9 post: description: > @@ -118,7 +109,7 @@ paths: get: description: > - The GET method allows the server to test the notification endpoint that is provided by the API consumer, + The GET method allows the API producer to test the notification endpoint that is provided by the API consumer, e.g. during the creation of the PM job or threshold resource. This method shall follow the provisions specified in the tables 6.4.9.3.2-1 and 6.4.9.3.2-2 for URI query parameters, request and response data structures, and response codes. @@ -176,7 +167,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': #SOL003 location: 6.4.9 post: description: > @@ -252,7 +243,7 @@ paths: get: description: > - The GET method allows the server to test the notification endpoint that is provided by the API consumer + The GET method allows the API producer to test the notification endpoint that is provided by the API consumer e.g. during subscription. This method shall follow the provisions specified in the tables 6.4.9.3.2-1 and 6.4.9.3.2-2 for URI query parameters, request and response data structures, and response codes. diff --git a/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/VirtualisedResourcesQuotaAvailableNotification.yaml b/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/VirtualisedResourcesQuotaAvailableNotification.yaml index 457871e2460986850774baf82232765e3e4f4e80..40c293486846a5e8d849643a7f8fc01ce37747c4 100644 --- a/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/VirtualisedResourcesQuotaAvailableNotification.yaml +++ b/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/VirtualisedResourcesQuotaAvailableNotification.yaml @@ -19,15 +19,15 @@ info: of this GS for inclusion in the corresponding future ETSI NFV OpenAPI design. - Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution= + Please report bugs to https://forge.etsi.org/rep/nfv/SOL002-SOL003/issues license: name: "ETSI Forge copyright notice" url: https://forge.etsi.org/etsi-forge-copyright-notice.txt externalDocs: - description: ETSI GS NFV-SOL 003 V2.7.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.07.01_60/gs_NFV-SOL003v020701p.pdf - + description: ETSI GS NFV-SOL 003 V2.8.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.08.01_60/gs_NFV-SOL003v020801p.pdf + basePath: "/vrqan/v1" schemes: @@ -58,15 +58,15 @@ paths: As the result of successfully executing this method, a new "Individual subscription" resource as defined in clause 11.4.3 shall have been created. This method shall not trigger any notification. - Creation of two "Individual subscription" resources with the same callbackURI and + 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 VNFM, 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 - callbackUri already exists (in which case it shall return the "201 Created" response code), + 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 callbackUri). + resource with the same filter and callback URI). parameters: - name: Accept description: > diff --git a/src/SOL003/VirtualisedResourcesQuotaAvailableNotificationNotification/VirtualisedResourcesQuotaAvailableNotificationNotification.yaml b/src/SOL003/VirtualisedResourcesQuotaAvailableNotificationNotification/VirtualisedResourcesQuotaAvailableNotificationNotification.yaml new file mode 100644 index 0000000000000000000000000000000000000000..99e6355cd2d6646bc1b376ff18dae4b6b3981e62 --- /dev/null +++ b/src/SOL003/VirtualisedResourcesQuotaAvailableNotificationNotification/VirtualisedResourcesQuotaAvailableNotificationNotification.yaml @@ -0,0 +1,174 @@ +swagger: "2.0" + +info: + version: "1.2.1-impl:etsi.org:ETSI_NFV_OpenAPI:1" + title: SOL003 - Virtualised Resources Quota Available Notification Notification interface + description: > + SOL003 - Virtualised Resources Quota Available Notification Notificatoion 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/rep/nfv/SOL002-SOL003/issues + license: + name: "ETSI Forge copyright notice" + url: https://forge.etsi.org/etsi-forge-copyright-notice.txt + +externalDocs: + description: ETSI GS NFV-SOL 003 V2.8.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.08.01_60/gs_NFV-SOL003v020801p.pdf + +basePath: "/vrqan/v1" + +schemes: + - https + +consumes: + - "application/json" +produces: + - "application/json" + +paths: + ############################################################################### + # API Versions # + ############################################################################### + '/api_versions': + $ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions' + + ############################################################################### + # Notification endpoint VrQuotaAvailNotification # + ############################################################################### + '/URI_is_provided_by_the_client_when_creating_the_subscription-VrQuotaAvailNotification': + post: + 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 11.4.4.3.1-1 and + 11.4.4.3.1-2 for URI query parameters, request and response data structures, and + response codes. + parameters: + - name: VrQuotaAvailNotification + description: > + A notification related to the availability of the virtualised resources quota. + in: body + required: true + schema: + $ref: "./definitions/VirtualisedResourcesQuotaAvailableNotificationNotification_def.yaml#/definitions/VrQuotaAvailNotification" + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Content-Type + description: > + The Content-Type header shall be set to + "application/merge-patch+json" according to + IETF RFC 7396. + in: header + required: true + type: string + - name: Version + description: > + Version of the API requested to use when responding to this request. + in: header + required: true + type: string + responses: + 204: + description: > + 204 NO CONTENT + + Shall be returned when the notification has been delivered successfully. + The response body shall be empty. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + type: string + maximum: 1 + minimum: 1 + 400: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" + 406: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 500: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" + 503: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + + get: + description: > + The GET method allows the API producer to test the notification endpoint that is provided by the API consumer, + e.g. during subscription. + This method shall follow the provisions specified in the tables 7.4.6.3.2-1 and 7.4.6.3.2-2 + for URI query parameters, request and response data structures, and response codes. + parameters: + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Version + description: > + Version of the API requested to use when responding to this request. + in: header + required: true + type: string + responses: + 204: + description: > + 204 NO CONTENT + + Shall be returned to indicate that the notification endpoint has been tested successfully. + The response body shall be empty. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + type: string + maximum: 1 + minimum: 1 + 400: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" + 406: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 500: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" + 503: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + + \ No newline at end of file diff --git a/src/SOL003/VirtualisedResourcesQuotaAvailableNotificationNotification/definitions/VirtualisedResourcesQuotaAvailableNotificationNotification_def.yaml b/src/SOL003/VirtualisedResourcesQuotaAvailableNotificationNotification/definitions/VirtualisedResourcesQuotaAvailableNotificationNotification_def.yaml new file mode 100644 index 0000000000000000000000000000000000000000..10798f24c503aeb8e23d7af867b7312ba6718dbc --- /dev/null +++ b/src/SOL003/VirtualisedResourcesQuotaAvailableNotificationNotification/definitions/VirtualisedResourcesQuotaAvailableNotificationNotification_def.yaml @@ -0,0 +1,77 @@ +# Copyright (c) ETSI 2017. +# https://forge.etsi.org/etsi-forge-copyright-notice.txt + +definitions: + VrQuotaAvailNotification: + description: > + This type represents a notification which indicates the availability + of a quota applicable to the consumer. It shall comply with the provisions + defined in table 11.5.2.4-1. Support of this notification is mandatory if + the Virtualised Resources Quota Available Notification interface is supported. + The notification shall be triggered by the NFVO when a virtualised resource + quota applicable to the consumer has been set. + type: object + required: + - id + - notificationType + - subscriptionId + - timeStamp + - resourceGroupId + - _links + properties: + id: + description: > + Identifier of this notification. If a notification is sent multiple times + due to multiple subscriptions, the "id" attribute of all these notifications + shall have the same value. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + notificationType: + description: > + Discriminator for the different notification types. + Shall be set to "VrQuotaAvailNotification" for this notification type. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/String" + subscriptionId: + description: > + Identifier of the subscription that this notification relates to. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + timeStamp: + description: > + Date-time of the generation of the notification. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime" + resourceGroupId: + description: > + Identifier of the "infrastructure resource group", logical grouping of + virtual resources assigned to a tenant within an Infrastructure Domain. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVim" + vimConnectionInfo: + description: > + Information about the VIM connection to manage the virtualised resources quota. + This attribute shall only be supported and present when VNF-related Resource Management + in direct mode is applicable. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/VimConnectionInfo" + resourceProviderId: + description: > + Identifies the entity responsible for the management of the virtualised resources quota. + This attribute shall only be supported and present when VNF-related Resource Management + in indirect mode is applicable. The identification scheme is outside the scope of the + present document. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + _links: + description: > + Links to resources related to this notification. + $ref: "#/definitions/QuotaAvailLinks" + + QuotaAvailLinks: + description: > + This type represents the links to resources that a notification of type "VrQuotaAvailNotification" + can contain. It shall comply with the provisions defined in table 11.5.3.3-1. + type: object + required: + - subscription + properties: + subscription: + description: > + Link to the related subscription. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/NotificationLink" + + diff --git a/src/definitions/SOL002SOL003VNFFaultManagement_def.yaml b/src/definitions/SOL002SOL003VNFFaultManagement_def.yaml index 1a3ef0121a043049e2fea506316d1b73e62f4f8b..d0d45a3e5d512a7c9a4b039e45ecdf028d9ee69e 100644 --- a/src/definitions/SOL002SOL003VNFFaultManagement_def.yaml +++ b/src/definitions/SOL002SOL003VNFFaultManagement_def.yaml @@ -91,14 +91,16 @@ definitions: $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" vnfcInstanceIds: description: > - Identifiers of the affected VNFC instances. + Identifiers of the affected VNFC instances. Each identifier references + the "id" attribute in a "VnfcInfo" structure. Shall be present if the + alarm affects at least one VNFC instance. type: array items: $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" rootCauseFaultyResource: description: > The virtualised resources that are causing the VNF fault. - Shall be present if the alarm affects virtualized resources. + Shall be present if the alarm affects virtualised resources. $ref: "#/definitions/FaultyResourceInfo" alarmRaisedTime: description: > @@ -154,7 +156,7 @@ definitions: description: > Attribute indicating if this fault is the root for other correlated alarms. If true, then the alarms listed in the attribute - "correlatedAlarmId" are caused by this fault. + "correlatedAlarmIds" are caused by this fault. type: boolean correlatedAlarmIds: description: > diff --git a/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml b/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml index 658fcdfb5048fddce4656bf1700c8b94279ae316..8b3f671d0ca52f40c12b40caf4c7ca3f99e44f75 100644 --- a/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml +++ b/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml @@ -22,11 +22,10 @@ definitions: type: string metadata: description: > - If present, this attribute provides values for the "metadata" attribute in "VnfInstance", - as defined in clause 5.5.2.2. - If a “metadata” entry in this CreateVnfRequest data structure has a corresponding default - value declared in the VNFD, the value in the “metadata” entry in the CreateVnfRequest - structure takes precedence. + If present, this attribute provides additional initial values, overriding those + obtained from the VNFD, for the "metadata" attribute in "VnfInstance", as defined + in clause 5.5.2.2. Provisions for handling metadata during the operation are defined + in clause 5.4.2.3.1. $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" ScaleVnfRequest: @@ -279,7 +278,9 @@ definitions: grantId: description: > Identifier of the grant related to this VNF LCM operation - occurrence, if such grant exists. + occurrence. Shall be set to the value of the "id" attribute + in the "Grant" representing the associated "Individual Grant", + if such grant exists. $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" operation: description: > @@ -308,6 +309,11 @@ definitions: * CHANGE_EXT_CONN: ChangeExtVnfConnectivityRequest * TERMINATE: TerminateVnfRequest * MODIFY_INFO: VnfInfoModifications + + This attribute shall be present if this data type is returned in a + response to reading an individual resource, and may be present according + to the chosen attribute selector parameter if this data type is returned + in a response to a query of a container resource. type: object isCancelPending: description: > @@ -339,7 +345,7 @@ definitions: description: > Information about VNFC instances that were affected during the lifecycle operation. - This allows the NFVO to obtain the information contained in the + NOTE 1: This allows the NFVO/API consumer to obtain the information contained in the latest "result" notification if it has not received it due to an error or a wrongly configured subscription filter. type: array @@ -348,18 +354,39 @@ definitions: affectedVirtualLinks: description: > Information about VL instances that were affected during the - lifecycle operation. - This allows the NFVO to obtain the information contained in the - latest "result" notification if it has not received it due to an + lifecycle operation. See note 1 and note 2. + + NOTE 1: This allows the NFVO/API consumer to obtain the information contained in + the latest "result" notification if it has not received it due to an error or a wrongly configured subscription filter. + NOTE 2: For a particular affected VL, there shall be as many + "AffectedVirtualLink" entries as needed for signalling the different + types of changes, i.e., one per virtual link and change type. For instance, + in the case of signaling affected VL instances involving the addition of a + particular VL instance with links ports, one "AffectedVirtualLink" entry + signals the addition of the VL by using the "changeType" attribute of + "AffectedVirtualLink" structure equal to "ADDED", and another "AffectedVirtualLink" + entry signals the addition of externally visible VNF link ports of the VL by using + the "changeType" equal to "LINK_PORT_ADDED". type: array items: $ref: "#/definitions/AffectedVirtualLink" + affectedExtLinkPorts: + description: > + Information about external VNF link ports that were affected during the lifecycle + operation. See note 1. + + NOTE 1: This allows the NFVO/API consumer to obtain the information contained in the latest "result" + notification if it has not received it due to an error or a wrongly configured subscription + filter. + type: array + items: + $ref: "#/definitions/AffectedExtLinkPort" affectedVirtualStorages: description: > Information about virtualised storage instances that were affected during the lifecycle operation. - This allows the NFVO to obtain the information contained in the + This allows the NFVO/API consumer to obtain the information contained in the latest "result" notification if it has not received it due to an error or a wrongly configured subscription filter. type: array @@ -369,14 +396,14 @@ definitions: description: > Information about the changed VNF instance information, including VNF configurable properties, if applicable. - This allows the NFVO to obtain the information contained in the + This allows the NFVO/API consumer to obtain the information contained in the latest "result" notification if it has not received it due to an error or a wrongly configured subscription filter. $ref: "#/definitions/VnfInfoModifications" changedExtConnectivity: description: > Information about changed external connectivity, if applicable. - This allows the NFVO to obtain the information contained in the + This allows the NFVO/API consumer to obtain the information contained in the latest "result" notification if it has not received it due to an error or a wrongly configured subscription filter. type: array @@ -574,95 +601,6 @@ definitions: maximum value shall be <= maxScaleLevel as described in the VNFD. type: integer - VnfcResourceInfo: - description: > - This type represents the information on virtualised compute and storage - resources used by a VNFC in a VNF instance. - type: object - required: - - id - - vduId - - computeResource - properties: - id: - description: > - Identifier of this VnfcResourceInfo instance. - $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" - vduId: - description: > - Reference to the applicable VDU in the VNFD. - $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" - computeResource: - description: > - Reference to the VirtualCompute resource. - $ref: "SOL002SOL003_def.yaml#/definitions/ResourceHandle" - zoneId: - description: > - The identifier of the resource zone, as managed by the - resource management layer (typically, the VIM), where - the referenced VirtualCompute resource is placed. - Shall be provided if this information is available from the VIM. - $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" - storageResourceIds: - description: > - References to the VirtualStorage resources. The value refers to a - VirtualStorageResourceInfo item in the VnfInstance. - type: array - items: - $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" - reservationId: - description: > - The reservation identifier applicable to the resource. It shall be - present when an applicable reservation exists. - $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" - 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. - May be present otherwise. - type: array - items: - type: object - required: - - id - - cpdId - properties: - id: - description: > - Identifier of this VNFC CP instance and the associated array - entry. - $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" - cpdId: - description: > - Identifier of the VDU CPD, cpdId, in the VNFD. - $ref: "SOL002SOL003_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. - $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" - cpProtocolInfo: - description: > - Network protocol information for this CP. - type: array - items: - $ref: "#/definitions/CpProtocolInfo" - vnfLinkPortId: - description: > - Identifier of the "vnfLinkPorts" structure in the - "VnfVirtualLinkResourceInfo" structure. Shall be present if - the CP is associated to a link port. - $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" - metadata: - description: > - Metadata about this CP. - $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - metadata: - description: > - Metadata about this resource. - $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" - VnfVirtualLinkResourceInfo: description: > This type represents the information that allows addressing a virtualised @@ -762,7 +700,7 @@ definitions: $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" resourceHandle: description: > - Reference to the virtualised network resource realizing this link + Reference to the virtualised resource realizing this link port. $ref: "SOL002SOL003_def.yaml#/definitions/ResourceHandle" cpInstanceId: @@ -996,7 +934,8 @@ definitions: AffectedVirtualLink: description: > This type provides information about added, deleted, modified and - temporary VLs. + temporary VLs, and added or removed VNF link ports. + It shall comply with the provisions in table 5.5.3.14-1. type: object required: - id @@ -1063,6 +1002,42 @@ definitions: "metadata" attribute of the VnfVirtualLinkResourceInfo structure. $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + AffectedExtLinkPort: + description: > + This type provides information about added and deleted external link ports (link ports attached to external + virtual links). It shall comply with the provisions in table 5.5.3.14a-1. + type: object + required: + - id + - changeType + - extCpInstanceId + - resourceHandle + properties: + id: + description: > + Identifier of the link port, identifying the applicable "extLinkPorts" entry in the "ExtVirtualLinkInfo" + data type (see clause 5.5.3.2). + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + changeType: + description: > + Signals the type of change. + Permitted values: + - ADDED + - REMOVED + type: string + enum: + - ADDED + - REMOVED + extCpInstanceId: + description: > + Identifier of the related external CP instance. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + resourceHandle: + description: > + Reference to the link port resource. Detailed information is (for added resources) + or has been (for removed resources) available from the VIM. + $ref: "SOL002SOL003_def.yaml#/definitions/ResourceHandle" + AffectedVirtualStorage: description: > This type provides information about added, deleted, modified and @@ -1322,6 +1297,8 @@ definitions: subscriptionId: description: > Identifier of the subscription that this notification relates to. + Shall be set to the value of the "id" attribute of the "LccnSubscription" + representing the associated "Individual subscription" resource. $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" timeStamp: description: > @@ -1364,6 +1341,9 @@ definitions: description: > The identifier of the VNF lifecycle management operation occurrence associated to the notification. + Shall be set to the value of the "id" attribute of the "VnfLcmOpOcc" + representing the associated "Individual VNF lifecycle management operation + occurrence" resource. $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" affectedVnfcs: description: > @@ -1382,15 +1362,38 @@ definitions: description: > Information about VL instances that were affected during the lifecycle operation. - Shall be present if the "notificationStatus" is set to "RESULT" and - the operation has performed any resource modification. Shall be - absent otherwise. This attribute contains information about the - cumulative changes to virtualised resources that were performed so - far by the VNF LCM operation occurrence and by any of the error - handling procedures for that operation occurrence. + + NOTE 1: Shall be present if the "notificationStatus" is set to "RESULT" + and the operation has performed any resource modification. Shall be absent + otherwise. This attribute contains information about the cumulative changes + to virtualised resources that were performed so far by the VNF LCM operation + occurrence and by any of the error handling procedures for that operation + occurrence. + NOTE 2: For a particular affected VL, there shall be as many "AffectedVirtualLink" + entries as needed for signalling the different types of changes, i.e., one per + virtual link and change type. For instance, in the case of signaling affected VL + instances involving the addition of a particular VL instance with links ports, + one "AffectedVirtualLink" entry signals the addition of the VL by using the + "changeType" attribute of "AffectedVirtualLink" structure equal to "ADDED", + and another "AffectedVirtualLink" entry signals the addition of externally visible + VNF link ports of the VL by using the "changeType" equal to "LINK_PORT_ADDED". type: array items: $ref: "#/definitions/AffectedVirtualLink" + affectedExtLinkPorts: + description: > + Information about external VNF link ports that were affected during the + lifecycle operation. See note 1. + + NOTE 1: Shall be present if the "notificationStatus" is set to "RESULT" + and the operation has performed any resource modification. Shall be absent + otherwise. This attribute contains information about the cumulative changes + to virtualised resources that were performed so far by the VNF LCM operation + occurrence and by any of the error handling procedures for that operation + occurrence. + type: array + items: + $ref: "#/definitions/AffectedExtLinkPort" affectedVirtualStorages: description: > Information about virtualised storage instances that were affected @@ -1435,6 +1438,8 @@ definitions: _links: description: > Links to resources related to this notification. + The link URIs in this structure shall be set to point to the resources identified + by the corresponding identifier attributes in this notification. $ref: "#/definitions/LccnLinks" VnfIdentifierCreationNotification: @@ -1539,10 +1544,17 @@ definitions: id: description: > Identifier of the VNFC instance of which the information is to be modified. + The identifier references the "id" attribute in a "VnfcInfo" structure. + NOTE: The attribute "id" in this data type represents the same identifier as + the attribute "vnfcInstanceId" in other related data types in the present document. + For reasons of backward compatibility, this misalignment is not corrected. $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" vnfcConfigurableProperties: description: > Changes of the configurable properties of the VNFC instance. + When this structure is part of a request, the modifications signalled + in this attribute shall be applied according to the rules of + JSON Merge Patch (see IETF RFC 7396). $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" VnfcInfo: description: > diff --git a/src/definitions/SOL002SOL003VNFPerformanceManagement_def.yaml b/src/definitions/SOL002SOL003VNFPerformanceManagement_def.yaml index 9b6e1c4733b90ce00746d91069b6ffc7c42257ac..7fcb1c1027f2f14698f5cfa3d41a13179c45fd41 100644 --- a/src/definitions/SOL002SOL003VNFPerformanceManagement_def.yaml +++ b/src/definitions/SOL002SOL003VNFPerformanceManagement_def.yaml @@ -125,6 +125,7 @@ definitions: - id - notificationType - timeStamp + - pmJobId - objectType - objectInstanceId - _links @@ -147,6 +148,10 @@ definitions: description: > Date and time of the generation of the notification. $ref: "SOL002SOL003_def.yaml#/definitions/DateTime" + pmJobId: + description: > + Identifier of the PM job for which performance information is available. + $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" objectType: description: > Type of the measured object. @@ -180,7 +185,7 @@ definitions: objectInstance: description: > Link to the resource representing the measured object instance to which the - notified change applies. Shall be present if the measured object instance + notification applies. Shall be present if the measured object instance information is accessible as a resource. $ref: "SOL002SOL003_def.yaml#/definitions/NotificationLink" pmJob: @@ -197,7 +202,7 @@ definitions: PerformanceReport: description: > - This type defines the format of a performance report provided by the VNFM to the EM as a result + This type defines the format of a performance report provided by the VNFM to the API consumer as a result of collecting performance information as part of a PM job. The type shall comply with the provisions defined in table 6.5.2.10-1. type: object @@ -300,7 +305,7 @@ definitions: string objectInstanceIds: description: > - Identifiers of the VNF instances for which performance information + Identifiers of the measured object instances for which performance information is collected. type: array items: @@ -369,7 +374,7 @@ definitions: $ref: "SOL002SOL003_def.yaml#/definitions/Link" objects: description: > - Links to resources representing the measure + Links to resources representing the measured object instances for which performance information is collected. Shall be present if the measured object instance information is @@ -394,7 +399,7 @@ definitions: 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. + rules of JSON Merge Patch. 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: "SOL002SOL003_def.yaml#/definitions/SubscriptionAuthentication" @@ -418,7 +423,7 @@ definitions: performanceMetricGroup: description: > Group of performance metrics. A metric group is a pre-defined list - of metrics, known to the producer that it can decompose to + of metrics, known to the API producer that it can decompose to individual metrics. Valid values are specified as "Measurement Group" values in clause 7.2 of ETSI GS NFV-IFA 027. At least one of the two attributes (performance metric or group) @@ -428,15 +433,20 @@ definitions: type: 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 data collected for + Specifies the periodicity at which the API producer will collect + performance information. The unit shall be seconds. See notes 1 and 2. + + NOTE 1: 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. + + NOTE 2: In particular when choosing short collection and reporting periods, + the number of PM jobs that can be supported depends on the capability of the + producing entity. type: integer minimum: 0 maximum: 1024 @@ -444,15 +454,21 @@ definitions: # Done using min and max params to set a range for positive int. reportingPeriod: description: > - Specifies the periodicity at which the producer will report to the - 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 data collected for + Specifies the periodicity at which the API producer will report to the + API consumer about performance information. The unit shall be seconds. + See notes 1 and 2. + + NOTE 1: 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. + + NOTE 2: In particular when choosing short collection and reporting periods, + the number of PM jobs that can be supported depends on the capability of the + producing entity. type: integer minimum: 0 maximum: 1024 @@ -546,7 +562,7 @@ definitions: 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. + rules of JSON Merge Patch. 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: "SOL002SOL003_def.yaml#/definitions/SubscriptionAuthentication" @@ -614,7 +630,6 @@ definitions: maximum: 1024 format: float - ThresholdCrossedNotification: description: > This type represents a notification that is sent when a threshold has diff --git a/src/definitions/SOL002SOL003_def.yaml b/src/definitions/SOL002SOL003_def.yaml index abd9749817fd3b5d1e7679d504d1055e5640fe54..ab1ad9ad7fcfb8cc69ae7ddf42885a8892ab0c91 100644 --- a/src/definitions/SOL002SOL003_def.yaml +++ b/src/definitions/SOL002SOL003_def.yaml @@ -696,6 +696,9 @@ definitions: LcmOperationType: description: > + The enumeration LcmOpType defines the permitted values to represent VNF lifecycle operation + types in VNF lifecycle management operation occurrence resources and VNF lifecycle management + operation occurrence notifications. It shall comply with the provisions defined in table 5.5.4.5-1. Value | Description ------|------------ INSTANTIATE | Represents the "Instantiate VNF" LCM operation. diff --git a/src/endpoints/SOL002SOL003_endpoints.yaml b/src/endpoints/SOL002SOL003_endpoints.yaml index 9ae760eda97938b04a18504100a77e833457de86..032deeb1a24cc05ed2957b726d1df695b2285b91 100644 --- a/src/endpoints/SOL002SOL003_endpoints.yaml +++ b/src/endpoints/SOL002SOL003_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 @@ -40,7 +39,6 @@ endpoints: 401: { $ref: '../responses/SOL002SOL003_resp.yaml#/responses/401' } 403: { $ref: '../responses/SOL002SOL003_resp.yaml#/responses/403' } 404: { $ref: '../responses/SOL002SOL003_resp.yaml#/responses/404' } - 405: { $ref: '../responses/SOL002SOL003_resp.yaml#/responses/405' } 406: { $ref: '../responses/SOL002SOL003_resp.yaml#/responses/406' } 413: { $ref: '../responses/SOL002SOL003_resp.yaml#/responses/413' } 414: { $ref: '../responses/SOL002SOL003_resp.yaml#/responses/414' } @@ -49,4 +47,29 @@ endpoints: 429: { $ref: '../responses/SOL002SOL003_resp.yaml#/responses/429' } 500: { $ref: '../responses/SOL002SOL003_resp.yaml#/responses/500' } 503: { $ref: '../responses/SOL002SOL003_resp.yaml#/responses/503' } - 504: { $ref: '../responses/SOL002SOL003_resp.yaml#/responses/504' } \ No newline at end of file + 504: { $ref: '../responses/SOL002SOL003_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/SOL002SOL003_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/SOL002SOL003_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/SOL002SOL003_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/SOL002SOL003_resp.yaml#/responses/405' } \ No newline at end of file