From e4c2289d8da3b88ef44a4ce8b2438b67903677cf Mon Sep 17 00:00:00 2001 From: "g.bernini" Date: Thu, 5 Sep 2024 15:52:48 +0200 Subject: [PATCH 01/18] Update reference to SOL009 v4.5.1 in all NFVMANOCIM tests --- .../ChangeInterfaceStateTask.robot | 12 +++---- .../ChangeNFVMANOEntityStateTask.robot | 12 +++---- .../ChangeStateOperationOccurrences.robot | 30 ++++++++-------- .../IndividualNFVMANOServiceInterface.robot | 16 ++++----- .../IndividualPeerEntity.robot | 16 ++++----- ...vidualStateChangeOperationOccurrence.robot | 12 +++---- .../IndividualSubscription.robot | 14 ++++---- .../NFVMANOEntity.robot | 16 ++++----- .../NFVMANOServiceInterfaces.robot | 30 ++++++++-------- .../NotificationEndpoint.robot | 4 +-- .../Notifications.robot | 4 +-- .../PeerEntities.robot | 36 +++++++++---------- .../Subscriptions.robot | 26 +++++++------- 13 files changed, 114 insertions(+), 114 deletions(-) diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeInterfaceStateTask.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeInterfaceStateTask.robot index 2d4a64d77..eaa7da09c 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeInterfaceStateTask.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeInterfaceStateTask.robot @@ -13,7 +13,7 @@ POST Change interface state task ... Test title: POST Change interface state task ... Test objective: The objective is send put request to change the state of the NFV-MANO service interface produced by the NFV-MANO functional entity ... Pre-conditions: none - ... Reference: clause 5.5.12.3.1 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.12.3.1 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: interface status changed @@ -27,7 +27,7 @@ POST Change interface state task - Conflict ... Test title: POST Change interface state task - Conflict ... Test objective: The objective is to test that request to cchange the state of the NFV-MANO service interface produced by the NFV-MANO functional entity failed due to a conflict with the state of the NFV-MANO entity resource and perform the JSON schema validation of the failed operation HTTP response. ... Pre-conditions: none - ... Reference: clause 5.5.12.3.1 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.12.3.1 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -40,7 +40,7 @@ GET Change interface state task - Method not implemented ... Test title: GET Change interface state task - Method not implemented ... Test objective: The objective is to test that GET method is not allowed to retrieve the changed state of the NFV-MANO functional entity application. ... Pre-conditions: none - ... Reference: clause 5.5.12.3.2 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.12.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -52,7 +52,7 @@ PUT Change interface state task - Conflict - Method not implemented ... Test title: PUT Change interface state task - Conflict - Method not implemented ... Test objective: The objective is to test that PUT method is not allowed to update the changed state of the NFV-MANO functional entity application. ... Pre-conditions: none - ... Reference: clause 5.5.12.3.3 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.12.3.3 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -64,7 +64,7 @@ PATCH Change interface state task - Conflict - Method not implemented ... Test title: PATCH Change interface state task - Conflict - Method not implemented ... Test objective: The objective is to test that PATCH method is not allowed to update the changed state of the NFV-MANO functional entity application. ... Pre-conditions: none - ... Reference: clause 5.5.12.3.4 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.12.3.4 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -76,7 +76,7 @@ DELETE Change interface state task - Conflict - Method not implemented ... Test title: DELETE Change interface state task - Conflict - Method not implemented ... Test objective: The objective is to test that DELETE method is not allowed to delete the changed state of the NFV-MANO functional entity application. ... Pre-conditions: none - ... Reference: clause 5.5.12.3.5 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.12.3.5 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeNFVMANOEntityStateTask.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeNFVMANOEntityStateTask.robot index 23655cdcc..e6e8b9b45 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeNFVMANOEntityStateTask.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeNFVMANOEntityStateTask.robot @@ -12,7 +12,7 @@ POST NFV-MANO functional entity application state change ... Test title: POST NFV-MANO functional entity application state change ... Test objective: The objective is to request state change of the NFV-MANO functional entity application. ... Pre-conditions: none - ... Reference: clause 5.5.7.3.1 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.7.3.1 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: entity status changed @@ -26,7 +26,7 @@ POST NFV-MANO functional entity application state change - Conflict ... Test title: POST NFV-MANO functional entity application state change - Conflict ... Test objective: The objective is to test that request to change the state of the NFV-MANO functional entity application fails due to a conflict with the state of the NFV-MANO entity resource and perform the JSON schema validation of the failed operation HTTP response. ... Pre-conditions: none - ... Reference: clause 5.5.7.3.1 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.7.3.1 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -39,7 +39,7 @@ GET NFV-MANO functional entity application state change - Method not implemented ... Test title: GET NFV-MANO functional entity application state change - Method not implemented ... Test objective: The objective is to test that GET method is not allowed to retrieve the changed state of the NFV-MANO functional entity application. ... Pre-conditions: none - ... Reference: clause 5.5.7.3.2 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.7.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -51,7 +51,7 @@ PUT NFV-MANO functional entity application state change - Method not implemented ... Test title: PUT NFV-MANO functional entity application state change - Method not implemented ... Test objective: The objective is to test that PUT method is not allowed to update the changed state of the NFV-MANO functional entity application. ... Pre-conditions: none - ... Reference: clause 5.5.7.3.3 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.7.3.3 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -63,7 +63,7 @@ PATCH NFV-MANO functional entity application state change - Method not implement ... Test title: PATCH NFV-MANO functional entity application state change - Method not implemented ... Test objective: The objective is to test that PATCH method is not allowed to update the changed state of the NFV-MANO functional entity application. ... Pre-conditions: none - ... Reference: clause 5.5.7.3.4 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.7.3.4 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -75,7 +75,7 @@ DELETE NFV-MANO functional entity application state change - Method not implemen ... Test title: DELETE NFV-MANO functional entity application state change - Method not implemented ... Test objective: The objective is to test that DELETE method is not allowed to delete the changed state of the NFV-MANO functional entity application. ... Pre-conditions: none - ... Reference: clause 5.5.7.3.5 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.7.3.5 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeStateOperationOccurrences.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeStateOperationOccurrences.robot index bb0c97c00..0e29977cc 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeStateOperationOccurrences.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeStateOperationOccurrences.robot @@ -13,7 +13,7 @@ POST Change State Operation Occurrences - Method not implemented ... Test title: POST Change State Operation Occurrences - Method not implemented ... Test objective: The objective is to test that POST method is not implemeted. ... Pre-conditions: none - ... Reference: clause 5.5.8.3.1 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.8.3.1 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -25,7 +25,7 @@ GET Change State Operation Occurrences ... Test title: GET Change State Operation Occurrences ... Test objective: The objective is to query status information about multiple change state operation occurrences, and perform the JSON schema validation of the HTTP response. ... Pre-conditions: none - ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -38,7 +38,7 @@ GET Change State Operation Occurrences - invalid attribute-based filter ... Test title: GET Change State Operation Occurrences - invalid attribute-based filter ... Test objective: The objective is to test that the retrieval of Change State Operation Occurrences fails when using invalid attribute-based filter, and perform the JSON schema validation of the failed operation HTTP response. ... Pre-conditions: none - ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -51,7 +51,7 @@ GET Change State Operation Occurrences - invalid attribute selector ... Test title: GET Change State Operation Occurrences - invalid attribute selector ... Test objective: The objective is to test that the retrieval of Change State Operation Occurrences fails when using invalid attribute selector, and perform the JSON schema validation of the failed operation HTTP response. ... Pre-conditions: none - ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -64,7 +64,7 @@ GET Change State Operation Occurrences - Bad Request Response too Big ... Test title: GET Change State Operation Occurrences - Bad Request Response too Big ... Test objective: The objective is to test that the retrieval of Change State Operation Occurrences fails when response is too big, and perform the JSON schema validation of the failed operation HTTP response. ... Pre-conditions: none - ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -77,7 +77,7 @@ GET Change State Operation Occurrences with attribute-based filter ... Test title: GET Change State Operation Occurrences with attribute-based filter ... Test objective: The objective is to query status information about multiple change state operation occurrences with attribute filters, and perform the JSON schema validation of the HTTP response. ... Pre-conditions: none - ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -90,7 +90,7 @@ GET Change State Operation Occurrences with "all_fields" attribute selector ... Test title: GET Change State Operation Occurrences with "all_fields" attribute selector ... Test objective: The objective is to retrieve Change State Operation Occurrences with "all_fields" attribute selector, and perform the JSON schema validation of the HTTP response. ... Pre-conditions: none - ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -103,7 +103,7 @@ GET Change State Operation Occurrences with "exclude_default" attribute selector ... Test title: GET Change State Operation Occurrence with "exclude_default" attribute selector ... Test objective: The objective is to retrieve Change State Operation Occurrence with "exclude_default" attribute selector, and perform the JSON schema validation of the HTTP response. ... Pre-conditions: none - ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -116,7 +116,7 @@ GET Change State Operation Occurrences with "fields" attribute selector ... Test title: GET Change State Operation Occurrences with "fields" attribute selector ... Test objective: The objective is to retrieve Change State Operation Occurrences with fields attribute selector, and perform the JSON schema validation of the HTTP response. ... Pre-conditions: none - ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -129,7 +129,7 @@ GET Change State Operation Occurrences with "exclude_fields" attribute selector ... Test title: GET Change State Operation Occurrences with "exclude_fields" attribute selector ... Test objective: The objective is to retrieve Change State Operation Occurrences with "exclude_fields" attribute selector, and perform the JSON schema validation of the HTTP response. ... Pre-conditions: none - ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -142,7 +142,7 @@ GET Change State Operation Occurrences with Paged Response ... Test title: GET Change State Operation Occurrence with Paged Response ... Test objective: The objective is to query Change State Operation Occurrence to get Paged Response. ... Pre-conditions: none - ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -155,7 +155,7 @@ GET Change State Operation Occurrences with "fields" and "exclude_default" attri ... Test title: GET Change State Operation Occurrences with "fields" and "exclude_default" attribute selector ... Test objective: The objective is to retrieve Change State Operation Occurrences with fields and exclude default attribute selector, and perform the JSON schema validation of the HTTP response. ... Pre-conditions: none - ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -168,7 +168,7 @@ PUT Change State Operation Occurrences - Method not implemented ... Test title: PUT Change State Operation Occurrences - Method not implemented ... Test objective: The objective is to test that PUT method is not implemeted. ... Pre-conditions: none - ... Reference: clause 5.5.8.3.3 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.8.3.3 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -180,7 +180,7 @@ PATCH Change State Operation Occurrences - Method not implemented ... Test title: PATCH Change State Operation Occurrences - Method not implemented ... Test objective: The objective is to test that PATCH method is not implemeted. ... Pre-conditions: none - ... Reference: clause 5.5.8.3.4 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.8.3.4 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -192,7 +192,7 @@ DELETE Change State Operation Occurrences - Method not implemented ... Test title: DELETE Change State Operation Occurrences - Method not implemented ... Test objective: The objective is to test that DELETE method is not implemeted. ... Pre-conditions: none - ... Reference: clause 5.5.8.3.5 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.8.3.5 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualNFVMANOServiceInterface.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualNFVMANOServiceInterface.robot index bd06a94f9..9f41a7de9 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualNFVMANOServiceInterface.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualNFVMANOServiceInterface.robot @@ -13,7 +13,7 @@ POST Individual NFV-MANO Service Interface - Method not implemented ... Test title: POST Individual NFV-MANO Service Interface - Method not implemented ... Test objective: The objective is to test that POST method is not implemeted. ... Pre-conditions: none - ... Reference: clause 5.5.11.3.1 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.11.3.1 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -25,7 +25,7 @@ GET Individual NFV-MANO Service Interface ... Test title: GET Individual NFV-MANO Service Interface ... Test objective: The objective is to query status information about an NFV-MANO service interface of the producer NFV-MANO functional entity by reading an "Individual NFV-MANO service interface" resource, and perform the JSON schema validation of the HTTP response. ... Pre-conditions: none - ... Reference: clause 5.5.11.3.2 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.11.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -38,7 +38,7 @@ GET Individual NFV-MANO Service Interface - Not Found ... Test title: GET Individual NFV-MANO Service Interface - Not Found ... Test objective: The objective is to test the retrieval of information about an NFV-MANO service interface of the producer NFV-MANO functional entity by reading an "Individual NFV-MANO service interface" resource fails when the resource is not present. ... Pre-conditions: none - ... Reference: clause 5.5.11.3.2 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.11.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -51,7 +51,7 @@ PUT Individual NFV-MANO Service Interface - Method not implemented ... Test title: PUT Individual NFV-MANO Service Interface - Method not implemented ... Test objective: The objective is to test that PUT method is not implemeted. ... Pre-conditions: none - ... Reference: clause 5.5.11.3.3 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.11.3.3 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -63,7 +63,7 @@ PATCH Individual NFV-MANO Service Interface ... Test title: PATCH Individual NFV-MANO Service Interface ... Test objective: This method modifies the Individual NFV-MANO Service Interface resource, and perform the JSON schema validation of the HTTP response. ... Pre-conditions: Individual NFV-MANO Service Interface resource is already created. - ... Reference: clause 5.5.11.3.4 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.11.3.4 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: The Individual NFV-MANO Service Interface is modified by the operation @@ -76,7 +76,7 @@ PATCH Individual NFV-MANO Service Interface - Conflict ... Test title: PATCH Individual NFV-MANO Service Interface - Conflict ... Test objective: The objective is to test that the modification of the Individual NFV-MANO Service Interface resource failed due to a conflict with the state of the Individual NFV-MANO Service Interface resource and perform the JSON schema validation of the failed operation HTTP response. ... Pre-conditions: Individual NFV-MANO Service Interface resource is already created. - ... Reference: clause 5.5.11.3.4 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.11.3.4 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: The Individual NFV-MANO Service Interface is not modified by the operation @@ -89,7 +89,7 @@ PATCH Individual NFV-MANO Service Interface - PreCondition Failed ... Test title: PATCH Individual NFV-MANO Service Interface - PreCondition Failed ... Test objective: The objective is to test that the modification of the Individual NFV-MANO Service Interface resource failed because precondition given in an HTTP request header is not fulfilled and perform the JSON schema validation of the failed operation HTTP response. ... Pre-conditions: Individual NFV-MANO Service Interface resource is already created. - ... Reference: clause 5.5.11.3.4 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.11.3.4 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: The Individual NFV-MANO Service Interface is not modified by the operation @@ -102,7 +102,7 @@ DELETE Individual NFV-MANO Service Interface - Method not implemented ... Test title: DELETE Individual NFV-MANO Service Interface - Method not implemented ... Test objective: The objective is to test that DELETE method is not implemeted. ... Pre-conditions: none - ... Reference: clause 5.5.11.3.5 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.11.3.5 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualPeerEntity.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualPeerEntity.robot index 1e4bb41f4..035efc73f 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualPeerEntity.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualPeerEntity.robot @@ -13,7 +13,7 @@ POST Individual Peer Entity - Method not implemented ... Test title: POST Individual Peer Entity - Method not implemented ... Test objective: The objective is to test that POST method is not implemeted. ... Pre-conditions: none - ... Reference: clause 5.5.14.3.1 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.14.3.1 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -25,7 +25,7 @@ GET Individual Peer Entity ... Test title: GET Individual Peer Entity ... Test objective: The objective is to retrieves information and configuration hold in the producer NFV-MANO functional entity with regards to a peer entity by reading an individual peer entity resource ... Pre-conditions: none - ... Reference: clause 5.5.14.3.2 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.14.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -38,7 +38,7 @@ GET Individual Peer Entity - Not Found ... Test title: GET Individual Peer Entity - Not Found ... Test objective: The objective is to test the retrieval of information and configuration hold in the producer NFV-MANO functional entity with regards to a peer entity by reading an individual peer entity resource fails when the resource is not present. ... Pre-conditions: none - ... Reference: clause 5.5.14.3.2 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.14.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -50,7 +50,7 @@ PUT Individual Peer Entity - Method not implemented ... Test title: PUT Individual Peer Entity - Method not implemented ... Test objective: The objective is to test that PUT method is not implemeted. ... Pre-conditions: none - ... Reference: clause 5.5.14.3.3 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.14.3.3 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -62,7 +62,7 @@ PATCH Individual Peer Entity ... Test title: PATCH Individual Peer Entity ... Test objective: This method modifies configuration and information of the producer NFV-MANO functional entity with regards to a peer functional entity by updating the corresponding "Individual peer entity" resource. ... Pre-conditions: At least one Peer Entity resource is created - ... Reference: clause 5.5.14.3.4 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.14.3.4 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: Peer Entity Resource is modified by the operation @@ -75,7 +75,7 @@ PATCH Individual Peer Entity - Conflict ... Test title: PATCH Individual Peer Entity - Conflict ... Test objective: The objective is to test that the modification of configuration and information of the producer NFV-MANO functional entity with regards to a peer functional entity by updating the corresponding "Individual peer entity" resource failed due to a conflict with the state of the Individual Peer Entity resource and perform the JSON schema validation of the failed operation HTTP response. ... Pre-conditions: At least one Peer Entity resource is created - ... Reference: clause 5.5.14.3.4 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.14.3.4 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: Peer Entity Resource is not modified by the operation @@ -88,7 +88,7 @@ PATCH Individual Peer Entity - PreCondition Failed ... Test title: PATCH Individual Peer Entity - PreCondition Failed ... Test objective: The objective is to test that the modification of the Individual Peer Entity resource failed because precondition given in an HTTP request header is not fulfilled and perform the JSON schema validation of the failed operation HTTP response. ... Pre-conditions: At least one Peer Entity resource is created - ... Reference: clause 5.5.14.3.4 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.14.3.4 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: Peer Entity Resource is not modified by the operation @@ -101,7 +101,7 @@ DELETE Individual Peer Entity - Method not implemented ... Test title: DELETE Individual Peer Entity - Method not implemented ... Test objective: The objective is to test that DELETE method is not implemeted. ... Pre-conditions: none - ... Reference: clause 5.5.14.3.5 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.14.3.5 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualStateChangeOperationOccurrence.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualStateChangeOperationOccurrence.robot index 9939a1700..8d953e5a4 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualStateChangeOperationOccurrence.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualStateChangeOperationOccurrence.robot @@ -13,7 +13,7 @@ POST Individual Change State Operation Occurrence - Method not implemented ... Test title: POST Individual Change State Operation Occurrence - Method not implemented ... Test objective: The objective is to test that POST method is not implemeted. ... Pre-conditions: none - ... Reference: clause 5.5.9.3.1 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.9.3.1 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -25,7 +25,7 @@ GET Individual Change State Operation Occurrence ... Test title: GET Individual Change State Operation Occurrence ... Test objective: The objective is to query status information about Individual change state operation occurrence. ... Pre-conditions: none - ... Reference: clause 5.5.9.3.2 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.9.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -38,7 +38,7 @@ GET Individual Change State Operation Occurrence - Not Found ... Test title: GET Individual Change State Operation Occurrence - Not Found ... Test objective: The objective is to test the retrieval of information about individual change state operation occurence fails when the resource is not present. ... Pre-conditions: none - ... Reference: clause 5.5.9.3.2 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.9.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -50,7 +50,7 @@ PUT Individual Change State Operation Occurrence - Method not implemented ... Test title: PUT Individual Change State Operation Occurrence - Method not implemented ... Test objective: The objective is to test that PUT method is not implemeted. ... Pre-conditions: none - ... Reference: clause 5.5.9.3.3 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.9.3.3 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -62,7 +62,7 @@ PATCH Individual Change State Operation Occurrence - Method not implemented ... Test title: PATCH Individual Change State Operation Occurrence - Method not implemented ... Test objective: The objective is to test that PATCH method is not implemeted. ... Pre-conditions: none - ... Reference: clause 5.5.9.3.4 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.9.3.4 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -74,7 +74,7 @@ DELETE Individual Change State Operation Occurrence - Method not implemented ... Test title: DELETE Individual Change State Operation Occurrence - Method not implemented ... Test objective: The objective is to test that DELETE method is not implemeted. ... Pre-conditions: none - ... Reference: clause 5.5.9.3.5 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.9.3.5 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualSubscription.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualSubscription.robot index d2b46bdd3..f1e090523 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualSubscription.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualSubscription.robot @@ -12,7 +12,7 @@ GET Individual Subscription ... Test title: GET Individual Subscription ... Test objective: The objective is to test the retrieval of individual subscription and perform a JSON schema and content validation of the returned subscription data structure ... Pre-conditions: At least one subscription is available in the NFV-MANO. - ... Reference: clause 5.5.5.3.2 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.5.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -26,7 +26,7 @@ GET Individual Subscription - invalid resource identifier ... Test title: GET Individual Subscription - invalid resource identifier ... Test objective: The objective is to test that the retrieval of an individual subscription fails when using an invalid resource identifier ... Pre-conditions: At least one subscription is available in the NFV-MANO. - ... Reference: clause 5.5.5.3.2 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.5.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -38,7 +38,7 @@ DELETE Individual Subscription ... Test title: DELETE Individual Subscription ... Test objective: The objective is to test the deletion of an individual subscription ... Pre-conditions: At least one subscription is available in the NFV-MANO. - ... Reference: clause 5.5.5.3.5 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.5.3.5 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: The resource is not available anymore in the NFV-MANO @@ -51,7 +51,7 @@ DELETE Individual Subscription - invalid resource identifier ... Test title: DELETE Individual Subscription - invalid resource identifier ... Test objective: The objective is to test that the deletion of an individual subscription fails when using an invalid resource identifier ... Pre-conditions: At least one subscription is available in the NFV-MANO. - ... Reference: clause 5.5.5.3.5 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.5.3.5 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -63,7 +63,7 @@ POST Individual Subscription - Method not implemented ... Test title: POST Individual Subscription - Method not implemented ... Test objective: The objective is to test that POST method is not allowed to create a new Subscription ... Pre-conditions: none - ... Reference: clause 5.5.5.3.1 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.5.3.1 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -75,7 +75,7 @@ PUT Individual Subscription - Method not implemented ... Test title: PUT Individual Subscription - Method not implemented ... Test objective: The objective is to test that PUT method is not allowed to update an existing subscription ... Pre-conditions: none - ... Reference: clause 5.5.5.3.3 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.5.3.3 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -87,7 +87,7 @@ PATCH Individual Subscription - Method not implemented ... Test title: PATCH Individual Subscription - Method not implemented ... Test objective: The objective is to test that PATCH method is not allowed to modify an existing subscription ... Pre-conditions: none - ... Reference: clause 5.5.5.3.4 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.5.3.4 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOEntity.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOEntity.robot index 05fe34388..6113bf30f 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOEntity.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOEntity.robot @@ -13,7 +13,7 @@ POST NFV-MANO entity - Method not implemented ... Test title: POST NFV-MANO entity - Method not implemented ... Test objective: The objective is to test that POST method is not allowed to create an NFV-MANO Entity. ... Pre-conditions: none - ... Reference: clause 5.5.3.3.1 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.3.3.1 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -25,7 +25,7 @@ GET NFV-MANO entity ... Test title: Get NFV-MANO entity ... Test objective: The objective is to test the retrieval of information about an NFV-MANO functional entity by reading the NFV-MANO entity resource and perform a JSON schema and content validation of the collected job data structure. ... Pre-conditions: none - ... Reference: clause 5.5.3.3.2 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.3.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -38,7 +38,7 @@ GET NFV-MANO entity - Not Found ... Test title: Get NFV-MANO entity - Not Found ... Test objective: The objective is to test the retrieval of information about an NFV-MANO functional entity by reading the NFV-MANO entity resource fails when the resource is not present. ... Pre-conditions: none - ... Reference: clause 5.5.3.3.2 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.3.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -50,7 +50,7 @@ PUT NFV-MANO entity - Method not implemented ... Test title: PUT NFV-MANO entity - Method not implemented ... Test objective: The objective is to test that PUT method is not allowed to update an NFV-MANO Entity. ... Pre-conditions: none - ... Reference: clause 5.5.3.3.3 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.3.3.3 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -62,7 +62,7 @@ PATCH NFV-MANO entity ... Test title: PATCH NFV-MANO entity ... Test objective: The objective is to test that PATCH method modifies the NFV-MANO entity resource and perform a JSON schema and content validation of the modified response. ... Pre-conditions: NFV-MANO entity resource is already created. - ... Reference: clause 5.5.3.3.4 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.3.3.4 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: The NFV-MANO entity is modified by the operation @@ -75,7 +75,7 @@ PATCH NFV-MANO entity - Conflict ... Test title: PATCH NFV-MANO entity - Conflict ... Test objective: The objective is to test that the modification of the NFV-MANO entity resource failed due to a conflict with the state of the NFV-MANO entity resource and perform the JSON schema validation of the failed operation HTTP response. ... Pre-conditions: NFV-MANO entity resource is already created. - ... Reference: clause 5.5.3.3.4 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.3.3.4 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: The NFV-MANO entity is not modified by the operation @@ -88,7 +88,7 @@ PATCH NFV-MANO entity - PreCondition Failed ... Test title: PATCH NFV-MANO entity - PreCondition Failed ... Test objective: The objective is to test that the modification of the NFV-MANO entity resource failed because precondition given in an HTTP request header is not fulfilled and perform the JSON schema validation of the failed operation HTTP response. ... Pre-conditions: NFV-MANO entity resource is already created. - ... Reference: clause 5.5.3.3.4 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.3.3.4 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: The NFV-MANO entity is not modified by the operation @@ -101,7 +101,7 @@ DELETE NFV-MANO entity - Method not implemented ... Test title: DELETE NFV-MANO entity - Method not implemented ... Test objective: The objective is to test that DELETE method is not allowed to delete an NFV-MANO Entity. ... Pre-conditions: none - ... Reference: clause 5.5.3.3.5 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.3.3.5 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOServiceInterfaces.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOServiceInterfaces.robot index 9f4f28d15..51954ae9b 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOServiceInterfaces.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOServiceInterfaces.robot @@ -13,7 +13,7 @@ POST NFV-MANO Service Interfaces - Method not implemented ... Test title: POST NFV-MANO Service Interfaces - Method not implemented ... Test objective: The objective is to test that POST method is not implemeted. ... Pre-conditions: none - ... Reference: clause 5.5.10.3.1 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.10.3.1 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -25,7 +25,7 @@ GET NFV-MANO Service Interfaces ... Test title: GET NFV-MANO Service Interfaces ... Test objective: The objective is to query status information about multiple NFV-MANO service interfaces of the NFV-MANO functional entity, and perform the JSON schema validation of the HTTP response. ... Pre-conditions: none - ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -38,7 +38,7 @@ GET NFV-MANO Service Interfaces - invalid attribute-based filter ... Test title: GET NFV-MANO Service Interfaces - invalid attribute-based filter ... Test objective: The objective is to test that the retrieval of NFV-MANO Service Interfaces fails when using invalid attribute-based filter, and perform the JSON schema validation of the failed operation HTTP response. ... Pre-conditions: none - ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -51,7 +51,7 @@ GET NFV-MANO Service Interfaces - invalid attribute selector ... Test title: GET NFV-MANO Service Interfaces - invalid attribute selector ... Test objective: The objective is to test that the retrieval of NFV-MANO Service Interfaces fails when using invalid attribute selector, and perform the JSON schema validation of the failed operation HTTP response. ... Pre-conditions: none - ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -64,7 +64,7 @@ GET NFV-MANO Service Interfaces - Bad Request Response too Big ... Test title: GET NFV-MANO Service Interfaces - Bad Request Response too Big ... Test objective: The objective is to test that the retrieval of NFV-MANO Service Interfaces fails when response is too big, and perform the JSON schema validation of the failed operation HTTP response. ... Pre-conditions: none - ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -77,7 +77,7 @@ GET NFV-MANO Service Interfaces with attribute-based filter ... Test title: GET NFV-MANO Service Interfaces with attribute-based filter ... Test objective: The objective is to query status information about multiple NFV-MANO service interfaces of the NFV-MANO functional entities with attribute filters, and perform the JSON schema validation of the HTTP response. ... Pre-conditions: none - ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -90,7 +90,7 @@ GET NFV-MANO Service Interfaces with "all_fields" attribute selector ... Test title: GET NFV-MANO Service Interface with "all_fields" attribute selector ... Test objective: The objective is to retrieve NFV-MANO Service Interfaces with "all_fields" attribute selector, and perform the JSON schema validation of the HTTP response. ... Pre-conditions: none - ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -103,7 +103,7 @@ GET NFV-MANO Service Interfaces with "exclude_default" attribute selector ... Test title: GET NFV-MANO Service Interfaces with "exclude_default" attribute selector ... Test objective: The objective is to retrieve NFV-MANO Service Interfaces with "exclude_default" attribute selector, and perform the JSON schema validation of the HTTP response. ... Pre-conditions: none - ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -116,7 +116,7 @@ GET NFV-MANO Service Interfaces with "fields" attribute selector ... Test title: GET NFV-MANO Service Interfaces with "fields" attribute selector ... Test objective: The objective is to retrieve NFV-MANO Service Interfaces with fields attribute selector, and perform the JSON schema validation of the HTTP response. ... Pre-conditions: none - ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -129,7 +129,7 @@ GET NFV-MANO Service Interfaces with "exclude_fields" attribute selector ... Test title: GET NFV-MANO Service Interfaces with "exclude_fields" attribute selector ... Test objective: The objective is to retrieve NFV-MANO Service Interfaces with "exclude_fields" attribute selector, and perform the JSON schema validation of the HTTP response. ... Pre-conditions: none - ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -142,7 +142,7 @@ GET NFV-MANO Service Interfaces with "exclude_default" and "fields" attribute se ... Test title: GET NFV-MANO Service Interfaces with "exclude_default" and "fields" attribute selector ... Test objective: The objective is to retrieve NFV-MANO Service Interfaces with "exclude_default" and "fields" attribute selector, and perform the JSON schema validation of the HTTP response. ... Pre-conditions: none - ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -155,7 +155,7 @@ GET NFV-MANO Service Interfaces with Paged Response ... Test title: GET NFV-MANO Service Interfaces with Paged Response ... Test objective: The objective is to query NFV-MANO Service Interface to get Paged Response. ... Pre-conditions: none - ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -168,7 +168,7 @@ PUT NFV-MANO Service Interfaces - Method not implemented ... Test title: PUT NFV-MANO Service Interfaces - Method not implemented ... Test objective: The objective is to test that PUT method is not implemeted. ... Pre-conditions: none - ... Reference: clause 5.5.10.3.3 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.10.3.3 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -180,7 +180,7 @@ PATCH NFV-MANO Service Interfaces - Method not implemented ... Test title: PATCH NFV-MANO Service Interfaces - Method not implemented ... Test objective: The objective is to test that PATCH method is not implemeted. ... Pre-conditions: none - ... Reference: clause 5.5.10.3.4 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.10.3.4 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -192,7 +192,7 @@ DELETE NFV-MANO Service Interfaces - Method not implemented ... Test title: DELETE NFV-MANO Service Interfaces - Method not implemented ... Test objective: The objective is to test that DELETE method is not implemeted. ... Pre-conditions: none - ... Reference: clause 5.5.10.3.5 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.10.3.5 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/NotificationEndpoint.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/NotificationEndpoint.robot index f12d35bf0..4bab4eeb2 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/NotificationEndpoint.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/NotificationEndpoint.robot @@ -13,7 +13,7 @@ Information Changed Notification ... Test title: Information Changed Notification ... Test objective: The objective is to test that Information Changed Notification is delivered with success to the notification consumer ... Pre-conditions: A subscription for information availability notification is available in the NFV-MANO. - ... Reference: clause 5.5.6.3.1 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.6.3.1 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_Notif_Endpoint ... Applicability: none ... Post-Conditions: none @@ -25,7 +25,7 @@ Change State Notification ... Test title: Change State Notification ... Test objective: The objective is to test that Change State Notification is delivered with success to the notification consumer ... Pre-conditions: A subscription for change state notification is available in the NFV-MANO. - ... Reference: clause 5.5.6.3.1 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.6.3.1 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_Notif_Endpoint ... Applicability: none ... Post-Conditions: none diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/Notifications.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/Notifications.robot index 60541f734..758082b68 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/Notifications.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/Notifications.robot @@ -16,7 +16,7 @@ Information Changed Notification ... Test title: Information Changed Notification ... Test objective: The objective is to test the dispatch of Information Changed Notification when configuration or information is changed in the NFV-MANO, and perform a JSON schema and content validation of the delivered notification. The action that triggers the notification under test is an explicit test step, but it is not performed by the test system. ... Pre-conditions: A subscription for information availability notifications is available in the NFV-MANO. - ... Reference: clause 5.5.6.3.1 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.6.3.1 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -29,7 +29,7 @@ Change State Notification ... Test title: Change State Notification ... Test objective: The objective is to test the dispatch of Change State Notification when state changes of the NFV-MANO functional entity and its managed objects, and perform a JSON schema and content validation of the delivered notification. The action that triggers the notification under test is an explicit test step, but it is not performed by the test system. ... Pre-conditions: A performance job is created, and a state change subscription is available in the NFV-MANO. - ... Reference: clause 5.5.6.3.1 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.6.3.1 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANOz ... Applicability: none ... Post-Conditions: none diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/PeerEntities.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/PeerEntities.robot index d8f9a0f6a..d8bf5a6e1 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/PeerEntities.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/PeerEntities.robot @@ -13,7 +13,7 @@ POST Peer Entity ... Test title: POST Peer Entity ... Test objective: The objective is to creates in the producer NFV-MANO functional entity a new peer entity resource which contains configuration and information with regards to the peer functional entity and perform the JSON schema validation of the returned job data structure. ... Pre-conditions: none - ... Reference: clause 5.5.13.3.1 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.13.3.1 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: Peer Entity is created @@ -28,7 +28,7 @@ GET Peer Entities ... Test title: GET Peer Entities ... Test objective: The objective is to query information and configuration in the producer NFV-MANO functional entity with regards to multiple peer entities, and perform the JSON schema validation of the returned job data structure. ... Pre-conditions: At least one Peer Entity is already created. - ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -41,7 +41,7 @@ GET Peer Entities - invalid attribute-based filter ... Test title: GET Peer Entities - invalid attribute-based filter ... Test objective: The objective is to test that the retrieval of information and configuration in the producer NFV-MANO functional entity with regards to multiple peer entities fails when using invalid attribute-based filter, and perform the JSON schema validation of the failed operation HTTP response. ... Pre-conditions: At least one Peer Entity is already created. - ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -54,7 +54,7 @@ GET Peer Entities - invalid attribute selector ... Test title: GET Peer Entities - invalid attribute selector ... Test objective: The objective is to test that the retrieval of information and configuration in the producer NFV-MANO functional entity with regards to multiple peer entities fails when using invalid attribute selector, and perform the JSON schema validation of the failed operation HTTP response. ... Pre-conditions: At least one Peer Entity is already created. - ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -67,7 +67,7 @@ GET Peer Entities - Bad Request Response too Big ... Test title: GET Peer Entities - Bad Request Response too Big ... Test objective: The objective is to test that the retrieval of information and configuration in the producer NFV-MANO functional entity with regards to multiple peer entities fails when response is too big, and perform the JSON schema validation of the failed operation HTTP response. ... Pre-conditions: At least one Peer Entity is already created. - ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -80,7 +80,7 @@ GET Peer Entities with attribute-based filter ... Test title: GET Peer Entities with attribute-based filter ... Test objective: The objective is to query information and configuration in the producer NFV-MANO functional entity with regards to multiple peer entities with attribute filters, and perform the JSON schema validation of the returned job data structure. ... Pre-conditions: At least one Peer Entity is already created. - ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -93,7 +93,7 @@ GET Peer Entities with "all_fields" attribute selector ... Test title: GET Peer Entities with "all_fields" attribute selector ... Test objective: The objective is to retrieve information and configuration in the producer NFV-MANO functional entity with regards to multiple peer entities with "all_fields" attribute selector, and perform the JSON schema validation of the returned job data structure. ... Pre-conditions: At least one Peer Entity is already created. - ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -106,7 +106,7 @@ GET Peer Entities with "exclude_default" attribute selector ... Test title: GET Peer Entities with "exclude_default" attribute selector ... Test objective: The objective is to retrieve information and configuration in the producer NFV-MANO functional entity with regards to multiple peer entities with "exclude_default" attribute selector, and perform the JSON schema validation of the returned job data structure. ... Pre-conditions: At least one Peer Entity is already created. - ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -119,7 +119,7 @@ GET Peer Entities with "fields" attribute selector ... Test title: GET Peer Entities with "fields" attribute selector ... Test objective: The objective is to retrieve information and configuration in the producer NFV-MANO functional entity with regards to multiple peer entities with fields attribute selector, and perform the JSON schema validation of the returned job data structure. ... Pre-conditions: At least one Peer Entity is already created. - ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -132,7 +132,7 @@ GET Peer Entities with "exclude_fields" attribute selector ... Test title: GET Peer Entities with "exclude_fields" attribute selector ... Test objective: The objective is to retrieve information and configuration in the producer NFV-MANO functional entity with regards to multiple peer entities with "exclude_fields" attribute selector, and perform the JSON schema validation of the returned job data structure. ... Pre-conditions: At least one Peer Entity is already created. - ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -145,7 +145,7 @@ GET Peer Entities with "exclude_default" and "fields" attribute selector ... Test title: GET Peer Entities with "exclude_default" and "fields" attribute selector ... Test objective: The objective is to retrieve information and configuration in the producer NFV-MANO functional entity with regards to multiple peer entities with "exclude_default" and "fields" attribute selector, and perform the JSON schema validation of the returned job data structure. ... Pre-conditions: At least one Peer Entity is already created. - ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -158,7 +158,7 @@ GET Peer Entity with Paged Response ... Test title: GET Peer Entity with Paged Response ... Test objective: The objective is to query information and configuration in the producer NFV-MANO functional entity with regards to multiple peer entities to get Paged Response. ... Pre-conditions: At least one Peer Entity is already created. - ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -171,7 +171,7 @@ Get Peer Entity with malformed authorization token ... Test title: Get Peer Entity with malformed authorization token ... Test objective: The objective is to test that the retrieval of information and configuration in the producer NFV-MANO functional entity with regards to multiple peer entities fails when using malformed authorization token. ... Pre-conditions: none - ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: The Peer Entity requires the usage of access tokens for authorizing the API requests. ... Post-Conditions: none @@ -183,7 +183,7 @@ Get Peer Entity without authorization token ... Test title: Get Peer Entity without authorization token ... Test objective: The objective is to test that the retrieval of information and configuration in the producer NFV-MANO functional entity with regards to multiple peer entities fails when omitting the authorization token. ... Pre-conditions: none - ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: The Peer Entity requires the usage of access tokens for authorizing the API requests. ... Post-Conditions: none @@ -195,7 +195,7 @@ GET information about multiple alarms with expired or revoked authorization toke ... Test title: GET information about multiple alarms with expired or revoked authorization token ... Test objective: The objective is to test that the retrieval of information and configuration in the producer NFV-MANO functional entity with regards to multiple peer entities fails when using expired or revoked authorization token. ... Pre-conditions: none - ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.13.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: The Peer Entity requires the usage of access tokens for authorizing the API requests. ... Post-Conditions: none @@ -207,7 +207,7 @@ PUT Peer Entities - Method not implemented ... Test title: PUT Peer Entities - Method not implemented ... Test objective: The objective is to test that PUT method is not implemeted. ... Pre-conditions: none - ... Reference: clause 5.5.13.3.3 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.13.3.3 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -219,7 +219,7 @@ PATCH Peer Entities - Method not implemented ... Test title: PATCH Peer Entities - Method not implemented ... Test objective: The objective is to test that PATCH method is not implemeted. ... Pre-conditions: none - ... Reference: clause 5.5.13.3.4 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.13.3.4 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -231,7 +231,7 @@ DELETE Peer Entities - Method not implemented ... Test title: DELETE Peer Entities - Method not implemented ... Test objective: The objective is to test that DELETE method is not implemeted. ... Pre-conditions: none - ... Reference: clause 5.5.13.3.5 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.13.3.5 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/Subscriptions.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/Subscriptions.robot index dc69dd1f4..cb3112859 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/Subscriptions.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/Subscriptions.robot @@ -16,7 +16,7 @@ GET all Subscriptions ... Test title: GET all Subscriptions ... Test objective: The objective is to test the retrieval list of active subscriptions of API consumer and perform a JSON schema validation of the returned subscriptions data structure. ... Pre-conditions: At least one subscription is available in the NFV-MANO. - ... Reference: clause 5.5.4.3.2 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.4.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -29,7 +29,7 @@ GET Subscriptions with attribute-based filter ... Test title: GET Subscriptions with attribute-based filter ... Test objective: The objective is to test the retrieval of active subscriptions list of API consumer using attribute-based filter and perform a JSON schema validation of the collected indicators data structure. ... Pre-conditions: At least one subscription is available in the NFV-MANO. - ... Reference: clause 5.5.4.3.2 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.4.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -42,7 +42,7 @@ GET Subscriptions with Paged Response ... Test title: GET Subscriptions with Paged Response ... Test objective: The objective is to query information of active subscriptions list to of API consumer to get Paged Response. ... Pre-conditions: At least one subscription is available in the NFV-MANO. - ... Reference: clause 5.5.4.3.2 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.4.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: ... Post-Conditions: @@ -55,7 +55,7 @@ GET Subscriptions - invalid attribute-based filter ... Test title: GET Subscriptions - invalid attribute-based filter ... Test objective: The objective is to test that the retrieval of active subscriptions list of API consumer fails when using invalid attribute-based filters, and perform the JSON schema validation of the failed operation HTTP response. ... Pre-conditions: At least one subscription is available in the NFV-MANO. - ... Reference: clause 5.5.4.3.2 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.4.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -69,7 +69,7 @@ GET Subscriptions - Bad Request Response too Big ... Test title: GET Subscriptions - Bad Request Response too Big ... Test objective: The objective is to test that the retrieval of active subscriptions list of API consumer fails when response is too big, and perform the JSON schema validation of the failed operation HTTP response. ... Pre-conditions: At least one subscription is available in the NFV-MANO. - ... Reference: clause 5.5.4.3.2 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.4.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -82,7 +82,7 @@ GET Subscriptions - invalid resource endpoint ... Test title: GET Subscriptions - invalid resource endpoint ... Test objective: The objective is to test that the retrieval of active subscriptions list of API consumer fails when using invalid resource endpoint. ... Pre-conditions: At least one subscription is available in the NFV-MANO. - ... Reference: clause 5.5.4.3.2 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.4.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -94,7 +94,7 @@ POST Create new Subscription ... Test title: Create new Subscription ... Test objective: The objective is to test the creation of a new subscription and perform a JSON schema and content validation of the returned subscription data structure ... Pre-conditions: none - ... Reference: clause 5.5.4.3.1 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.4.3.1 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: The subscription is successfully set and it matches the issued subscription @@ -111,7 +111,7 @@ POST Create request for duplicated Subscription not creating duplicated subscrip ... Test title: Create request for duplicated Subscription not creating duplicated subscriptions ... Test objective: The objective is to test the attempt of a creation of a duplicated subscription failed and check that no new subscription is created and a link to the original subscription is returned ... Pre-conditions: At least one subscription is available in the NFV-MANO. - ... Reference: clause 5.5.4.3.1 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.4.3.1 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: The NFV-MANO does not support the creation of duplicated subscriptions ... Post-Conditions: The existing Subscription returned is available in the NFV-MANO @@ -127,7 +127,7 @@ POST Create request for duplicated Subscription creating duplicated subscription ... Test title: Create request for duplicated Subscription creating duplicated subscriptions ... Test objective: The objective is to test the creation of a duplicated subscription and perform a JSON schema and content validation of the returned duplicated subscription data structure ... Pre-conditions: At least one subscription is available in the NFV-MANO. - ... Reference: clause 5.5.4.3.1 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.4.3.1 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: The NFV-MANO supports the creation of duplicated subscriptions ... Post-Conditions: The duplicated subscription is successfully set and it matches the issued subscription @@ -142,7 +142,7 @@ PUT Subscriptions - Method not implemented ... Test title: PUT Subscriptions - Method not implemented ... Test objective: The objective is to test that PUT method is not allowed to modify subscriptions ... Pre-conditions: none - ... Reference: clause 5.5.4.3.3 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.4.3.3 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -154,7 +154,7 @@ PATCH Subscriptions - Method not implemented ... Test title: PATCH Subscriptions - Method not implemented ... Test objective: The objective is to test that PATCH method is not allowed to update subscriptions ... Pre-conditions: none - ... Reference: clause 5.5.4.3.4 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.4.3.4 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -166,7 +166,7 @@ DELETE Subscriptions - Method not implemented ... Test title: DELETE Subscriptions - Method not implemented ... Test objective: The objective is to test that DELETE method is not allowed to delete subscriptions ... Pre-conditions: none - ... Reference: clause 5.5.4.3.5 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.4.3.5 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -178,7 +178,7 @@ POST Create a new subscription - Unprocessable Content ... Test title: POST Create a new Subscription - Unprocessable Content ... Test objective: The objective is to test that a new subscription is not created if the notification endpoint is unreachable by the NFV-MANO. ... Pre-conditions: none - ... Reference: clause 5.5.4.3.1 - ETSI GS NFV-SOL 009 [7] v4.4.1 + ... Reference: clause 5.5.4.3.1 - ETSI GS NFV-SOL 009 [7] v4.5.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: Notification endpoint is unreachable by the NFV-MANO ... Post-Conditions: none -- GitLab From 40c799ad35b7d08efc318d71468c74b5e1d5f862 Mon Sep 17 00:00:00 2001 From: "g.bernini" Date: Thu, 12 Sep 2024 09:38:35 +0200 Subject: [PATCH 02/18] updated data model: mano entity clause 5.6.2.2 --- .../schemas/ManoEntity.schema.json | 1330 +++++++++-------- 1 file changed, 687 insertions(+), 643 deletions(-) diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/ManoEntity.schema.json b/SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/ManoEntity.schema.json index 233330f75..65b389260 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/ManoEntity.schema.json +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/ManoEntity.schema.json @@ -1,645 +1,689 @@ { - "description": "This type represents an NFV-MANO functional entity. * NOTE 1:\tIt shall be present when \"type\" attribute is \"NFVO\", and it shall be absent in any other case. * NOTE 2:\tIt shall be present when \"type\" attribute is \"VNFM\", and it shall be absent in any other case. * NOTE 3:\tIt shall be present when \"type\" attribute is \"VIM\", and it shall be absent in any other case. * NOTE 4:\tThe information about the NFV-MANO services offered by a specific type of NFV-MANO functional\n entity is specified by the manoServices attribute.\n* NOTE 5:\tIt is optional for the API producer to support the \"manoEntityComponents\" attribute. * NOTE 6:\tIt shall be present when \"type\" attribute is \"WIM\", and it shall be absent in any other case. * NOTE 7:\tIt shall be present when \"type\" attribute is \"CISM\", and it shall be absent in any other case. * NOTE 8:\tIt shall be present when \"type\" attribute is \"CIR\", and it shall be absent in any other case. * NOTE 9:\tIt shall be present when \"type\" attribute is \"CCM\", and it shall be absent in any other case. \n", - "type": "object", - "required": [ - "id", - "type", - "name", - "description", - "provider", - "softwareVersion", - "manoConfigurableParams", - "manoApplicationState", - "_links" - ], - "properties": { - "id": { - "description": "An identifier with the intention of being globally unique.\n", - "type": "string" - }, - "type": { - "description": "The enumeration ManoEntityEnumType defines the permitted values to represent NFV-MANO functional entities. It shall comply with the provisions :\n - NFVO\tThe NFV-MANO functional entity is an NFVO.\n - VNFM\tThe NFV-MANO functional entity is a VNFM.\n - VIM\t The NFV-MANO functional entity is a VIM.\n - WIM The NFV-MANO functional entity is a WIM.\n - CISM The NFV-MANO functional entity is a CISM. \n - CIR The NFV-MANO functional entity is a CIR.\n - CCM The NFV-MANO functional entity is a CCM.\n", - "type": "string", - "enum": [ - "NFVO", - "VNFM", - "VIM", - "WIM", - "CISM", - "CIR", - "CCM" - ] - }, - "name": { - "description": "Human-readable name of the NFV-MANO functional entity.\nThis attribute can be modified with the PATCH method.\n", - "type": "string" - }, - "description": { - "description": "Human-readable description of the NFV-MANO functional entity.\nThis attribute can be modified with the PATCH method.\n", - "type": "string" - }, - "provider": { - "description": "Information about the provider of the NFV-MANO functional entity. It typically includes the name of the provider.\n", - "type": "string" - }, - "softwareVersion": { - "description": "A version.\n", - "type": "string" - }, - "softwareInfo": { - "description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of keyvalue pairs is represented as an object. It shall comply with the provisions defined in clause 4 of IETF RFC 8259. In the following example, a list of key-value pairs with four keys (\"aString\", \"aNumber\", \"anArray\" and \"anObject\") is provided to illustrate that the values associated with different keys can be of different type.\n", - "type": "object" - }, - "manoEntityComponents": { - "description": "The deployed NFV-MANO functional entity components which realize the NFV-MANO functional entity. See note 5.\n", - "type": "array", - "items": { - "description": "This type represents information of a deployed component realizing part of an NFV-MANO functional entity. It is optional for the API producer to support this type.\n", - "type": "object", - "required": [ - "id" - ], - "properties": { - "id": { - "description": "An identifier that is unique for the respective type within a NFV-MANO functional entity, but that need not be globally unique. Representation: string of variable length..\n", - "type": "string" - }, - "manoServiceIds": { - "description": "References to the NFV-MANO services that depend on the NFV-MANO functional entity component. The identifier of the ManoService is referred. A service may depend on multiple components. Multiple services may depend on the same component.\n", - "type": "array", - "items": { - "description": "An identifier that is unique for the respective type within a NFV-MANO functional entity, but that need not be globally unique. Representation: string of variable length..\n", - "type": "string" - } - } - } - } - }, - "manoServices": { - "description": "Information about the NFV-MANO services provided by the NFV-MANO functional entity.\n", - "type": "array", - "items": { - "description": "This type represents information about an NFV-MANO service provided by the NFV-MANO functional entity. * NOTE:\tA cardinality greater than one supports having different interface versions or api Endpoints\n to be used for accessing the same instance of an NFV-MANO service.\n", - "type": "object", - "required": [ - "id", - "name", - "description", - "manoServiceInterfaceIds", - "_links" - ], - "properties": { - "id": { - "description": "An identifier that is unique for the respective type within a NFV-MANO functional entity, but that need not be globally unique. Representation: string of variable length..\n", - "type": "string" - }, - "name": { - "description": "Human-readable name of the NFV-MANO service.\nThis attribute can be modified with the PATCH method.\n", - "type": "string" - }, - "description": { - "description": "Human-readable description of the NFV-MANO service.\nThis attribute can be modified with the PATCH method.\n", - "type": "string" - }, - "manoServiceInterfaceIds": { - "description": "Reference to the NFV-MANO interfaces associated to the NFV-MANO service. If cardinality is greater than one, the type of ManoServiceInterface (see clause 5.6.3.3) shall be the same. The identifier of the ManoServiceInterface is referred. See note\n", - "type": "array", - "items": { - "description": "An identifier that is unique for the respective type within a NFV-MANO functional entity, but that need not be globally unique. Representation: string of variable length..\n", - "type": "string" - }, - "minItems": 1 - }, - "_links": { - "description": "Links to resources related to this resource.\n", - "type": "object", - "properties": { - "manoServiceInterfaces": { - "description": "Link to the \"individual NFV-MANO service interface\" resources with information about the associated interfaces to the NFV-MANO service.\n", - "type": "array", - "items": { - "description": "This type represents a link to a resource using an absolute URI.\n", - "type": "object", - "required": [ - "href" - ], - "properties": { - "href": { - "description": "String formatted according to IETF RFC 3986.\n", - "type": "string" - } - } - }, - "minItems": 1 - } - }, - "required": [ - "manoServiceInterfaces" - ] - } - } - } - }, - "manoConfigurableParams": { - "description": "ManoConfigurableParams\n" - }, - "manoApplicationState": { - "description": "Information and current values of the NFV-MANO functional entity’s application state.\n", - "type": "object", - "required": [ - "operationalState", - "administrativeState", - "usageState" - ], - "properties": { - "operationalState": { - "description": "The enumeration OperationalStateEnumType defines values representing the operational state of an NFV-MANO functional application type of managed entity. The OperationalStateEnumType shall comply with the provisions:\n - STARTED\tThe managed entity is operational.\n - STOPPED\tThe managed entity is not operational.\n - STOPPING\tThe managed entity is in the transition to stop.\n - STARTING\tThe managed entity is in the transition to start and become operational.\n - RESTARTING\tThe managed entity is in the transition to stop and start again.\n", - "type": "string", - "enum": [ - "STARTED", - "STOPPED", - "STOPPING", - "STARTING", - "RESTARTING" - ] - }, - "administrativeState": { - "description": "The enumeration AdministrativeStateEnumType defines values representing the administrative state of a managed entity. The AdministrativeStateEnumType shall comply with the provisions:\n - LOCKED\tThe managed entity is administratively prohibited to be used.\n - UNLOCKED\tThe managed entity is administratively allowed to be used.\n - LOCKING\tThe managed entity is in the transition to be locked.\n", - "type": "string", - "enum": [ - "LOCKED", - "UNLOCKED", - "LOCKING" - ] - }, - "usageState": { - "description": "The enumeration UsageStateEnumType defines values representing the usage state of a managed entity. The UsageStateEnumType shall comply with the provisions:\n - IN_USE\tThe managed entity is currently being used.\n - NOT_IN_USE\tThe managed entity is currently not being used.\n", - "type": "string", - "enum": [ - "IN_USE", - "NOT_IN_USE" - ] - } - } - }, - "nfvoSpecificInfo": { - "description": "This type represents information attributes specific to an NFVO entity, and that can be relevant to more than one NFV-MANO service offered by an NFVO entity. * NOTE 1:\tThe information to be provided in this attribute shall relate to the specification and version\n of the specification. For instance, \"ETSI GS NFV-SOL 001 (V2.5.1)\".\n NOTE 2:\tIf this attribute is not present, the value of this parameter is undefined.\n", - "type": "object", - "required": [ - "supportedVnfdFormats", - "supportedNsdFormats" - ], - "properties": { - "maxOnboardedNsdNum": { - "description": "Maximum number of NSDs that can be on-boarded on the NFVO. See note 2.\n", - "type": "integer" - }, - "maxOnboardedVnfPkgNum": { - "description": "Maximum number of VNF Packages that can be on-boarded on the NFVO. See note 2.\n", - "type": "integer" - }, - "supportedVnfdFormats": { - "description": "Supported VNFD data formats.\n", - "type": "object", - "properties": { - "vnfdFormat": { - "description": "Name of the VNFD format.\nPermitted values:\n - TOSCA: The VNFD follows TOSCA definition, according to ETSI\n GS NFV-SOL 001 standard.\n - YANG: The VNFD follows YANG definition according to ETSI\n GS NFV-SOL 006 standard.\n", - "type": "string", - "enum": [ - "TOSCA", - "YANG" - ] - }, - "standardVersion": { - "description": "A version.\n", - "type": "string" - } - }, - "required": [ - "vnfdFormat", - "standardVersion" - ] - }, - "supportedNsdFormats": { - "description": "Supported NSD data formats.\n", - "type": "object", - "properties": { - "nsdFormat": { - "description": "Name of the NSD format.\nPermitted values:\n - TOSCA: The VNFD follows TOSCA definition, according to ETSI\n GS NFV-SOL 001 standard.\n - YANG: The VNFD follows YANG definition according to ETSI\n GS NFV-SOL 006 standard.\n", - "type": "string", - "enum": [ - "TOSCA", - "YANG" - ] - }, - "standardVersion": { - "description": "A version.\n", - "type": "string" - } - }, - "required": [ - "nsdFormat", - "standardVersion" - ] - } - } - }, - "vnfmSpecificInfo": { - "description": "This type represents information attributes specific to a VNFM entity, and that can be relevant to more than one NFV-MANO service offered by a VNFM entity. * NOTE:\tThe information to be provided in this attribute shall relate to the specification and version\n of the specification. For instance, \"ETSI GS NFV-SOL 001 (V2.5.1)\".\n", - "type": "object", - "required": [ - "resoruceMgmtModeSupport", - "managedVnfInstanceInfos", - "supportedVnfdFormats" - ], - "properties": { - "resoruceMgmtModeSupport": { - "description": "The supported resource management modes of the VNFM.\nPermitted values:\n - DIRECT: The VNFM supports direct mode only.\n - INDIRECT: The VNFM supports indirect mode only.\n - BOTH: The VNFM supports both direct and indirect mode.\n", - "type": "string", - "enum": [ - "DIRECT", - "INDIRECT", - "BOTH" - ] - }, - "managedVnfInstanceInfos": { - "description": "The kinds of VNF instances that can be managed, e.g. to determine the compatibility of a VNF with certain VNFM according to the vnfmInfo attribute in the VNFD (see table 7.1.2.2-1 in ETSI GS NFV-IFA 011).\n", - "type": "array", - "items": { - "type": "string" - }, - "minItems": 1 - }, - "supportedVnfdFormats": { - "description": "Supported VNFD data formats.\n", - "type": "array", - "items": { - "type": "object", - "properties": { - "vnfdFormat": { - "description": "Name of the VNFD format.\nPermitted values:\n - TOSCA: The VNFD follows TOSCA definition, according to ETSI\n GS NFV-SOL 001 standard.\n - YANG: The VNFD follows YANG definition according to ETSI\n GS NFV-SOL 006 standard.\n", - "type": "string", - "enum": [ - "TOSCA", - "YANG" - ] - }, - "standardVersion": { - "description": "A version.\n", - "type": "string" - } - }, - "required": [ - "vnfdFormat", - "standardVersion" - ] - }, - "minItems": 1 - } - } - }, - "vimSpecificInfo": { - "description": "This type represents information attributes specific to a VIM entity, and that can be relevant to more than one NFV MANO service offered by a VIM entity. It shall comply with the provisions defined in table 5.6.3.6-1. The present document version does not specify the support for \"maximum number of virtualised resources (attribute \"maxVirtualResourceNum\")\" as specified in clause 7.2.9.2 of ETSI GS NFV IFA 031 [1].\nNOTE:\tRecommendations on appropriate algorithms and key lengths are given e.g., in NIST Special Publication 800-57 Part 3 Revision 1 [i.26] or in documents related to local legislation.\n", - "type": "object", - "required": [ - "imageContainerFormats", - "imageDiskFormats", - "imageSignatureVerification", - "imageDigestAlgorithms" - ], - "properties": { - "imageContainerFormats": { - "description": "List of supported image container formats. Container format indicates whether a software image is in a file that also contains metadata about the actual software. Valid values are all values for \"container_format\" as defined in ETSI GS NFV-SOL 001 [16] and all values for \"container-format\" as defined in ETSI GS NFV-SOL 006 [i.17].\n", - "type": "array", - "items": { - "type": "string" - } - }, - "imageDiskFormats": { - "description": "List of supported image disk formats. The Disk format of a software image is the format of the underlying disk image. Valid values are all values for \"disk_format\" as defined in ETSI GS NFV-SOL 001 [16] and all values of \"disk-format\" as defined in ETSI GS NFV-SOL 006 [i.17].\n", - "type": "array", - "items": { - "type": "string" - } - }, - "imageSignatureVerification": { - "description": "Information about the supported mechanisms, algorithms, and protocols for verifying the signature of software images.\n", - "type": "object", - "required": [ - "signatureVerificationAlgorithms" - ], - "properties": { - "additionalVerificationCapabilities": { - "description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of keyvalue pairs is represented as an object. It shall comply with the provisions defined in clause 4 of IETF RFC 8259. In the following example, a list of key-value pairs with four keys (\"aString\", \"aNumber\", \"anArray\" and \"anObject\") is provided to illustrate that the values associated with different keys can be of different type.\n", - "type": "object" - }, - "signatureVerificationAlgorithms": { - "description": "List of algorithms for verifying the signature of software images that are supported by the VIM.\n", - "type": "array", - "items": { - "type": "object", - "required": [ - "algorithm", - "keyLengths" - ], - "properties": { - "algorithm": { - "description": "The name of the algorithm. Permitted values are: \"RSA\", \"DSA\", \"ECDSA\".\n", - "type": "string" - }, - "keyLengths": { - "description": "List of supported key lengths of the algorithm. The key length indicates the number of bits, such as “256”, “512”, etc. See note.\n", - "type": "array", - "items": { - "type": "string" - } - }, - "additionalAlgParams": { - "description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of keyvalue pairs is represented as an object. It shall comply with the provisions defined in clause 4 of IETF RFC 8259. In the following example, a list of key-value pairs with four keys (\"aString\", \"aNumber\", \"anArray\" and \"anObject\") is provided to illustrate that the values associated with different keys can be of different type.\n", - "type": "object" - } - } - } - } - } - }, - "imageDigestAlgorithms": { - "description": "List of supported digest algorithms that can be used for digital signatures.\n", - "type": "array", - "items": { - "type": "object", - "required": [ - "algorithm", - "keyLengths" - ], - "properties": { - "algorithm": { - "description": "The name of the algorithm. Permitted values are: “SHA2“,“SHA3“.\n", - "type": "string" - }, - "keyLengths": { - "description": "List of supported key lengths of the algorithm. The key length indicates the number of bits, such as “256”, “512”, etc. See note.\n", - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - } - }, - "wimSpecificInfo": { - "description": "This type represents information attributes specific to a WIM entity, and that can be relevant to more than one NFV MANO service offered by a WIM entity.\n", - "type": "object", - "required": [ - "maxMscsNums", - "maxMsncNum", - "mscsLayerProtocolSupport" - ], - "properties": { - "maxMscsNums": { - "description": "Maximum number of MSCS that the WIM can manage.\n", - "type": "object", - "required": [ - "numMscs" - ], - "properties": { - "numMscs": { - "description": "Maximum number of MSCS.\n", - "type": "integer" - }, - "criteriaNumMscs": { - "description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of keyvalue pairs is represented as an object. It shall comply with the provisions defined in clause 4 of IETF RFC 8259. In the following example, a list of key-value pairs with four keys (\"aString\", \"aNumber\", \"anArray\" and \"anObject\") is provided to illustrate that the values associated with different keys can be of different type.\n", - "type": "object" - } - } - }, - "maxMsncNum": { - "description": "Maximum number of MSNC that the WIM can manage\n", - "type": "object", - "required": [ - "numMsnc" - ], - "properties": { - "numMsnc": { - "description": "Maximum number of MSNC..\n", - "type": "integer" - }, - "criteriaNumMsnc": { - "description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of keyvalue pairs is represented as an object. It shall comply with the provisions defined in clause 4 of IETF RFC 8259. In the following example, a list of key-value pairs with four keys (\"aString\", \"aNumber\", \"anArray\" and \"anObject\") is provided to illustrate that the values associated with different keys can be of different type.\n", - "type": "object" - } - } - }, - "mscsLayerProtocolSupport": { - "description": "List of protocols of particular layers used to realize an MSCS that are supported by the WIM.\nPermitted values:\n - EVPN_BGP_MPLS: L2 MSCS realized by BGP MPLS-based Ethernet VPN (EVPN) as specified in IETF RFC 7432.\n - EVPN_VPWS: L2 MSCS realized by EVPN Virtual Private Wire Service (VPWS) as specified in IETF RFC 8214.\n - VPLS_BGP: L2 MSCS realized by Virtual Private LAN Service (VPLS) using BGP as specified\n in IETF RFC 4761 and IETF RFC.\n - VPLS_LDP_L2TP: L2 MSCS realized by VPLS using Label Distribution Protocol (LDP) Layer 2\n Tunnelling Protocol (L2TP) as specified in IETF RFC 4762 and IETF RFC 6074.\n - VPWS_LDP_L2TP: L2 MSCS realized by VPWS using LDP L2TP as specified in IETF RFC 6074.\n - BGP_IP_VPN: L3 MSCS realized by BGP/MPLS based IP VPN as specified in IETF RFC 4364.\n", - "type": "string", - "enum": [ - "EVPN_BGP_MPLS", - "EVPN_VPWS", - "VPLS_BGP", - "VPLS_LDP_L2TP", - "VPWS_LDP_L2TP", - "BGP_IP_VPN" - ] - } - } - }, - "cismSpecificInfo": { - "description": "This type represents information attributes specific to a CISM entity, and that can be relevant to more than one NFV-MANO service offered by a CISM entity. It shall comply with the provisions defined in table 5.6.3.14-1. NOTE:\tNo attributes are specified in the present document version. The definition of attributes is left for future specification. \n", - "type": "object", - "properties": { - "none": { - "type": "object" - } - } - }, - "cirSpecificInfo": { - "description": "This type represents information attributes specific to a CIR entity, and that can be relevant to more than one NFV- MANO service offered by a CIR entity. It shall comply with the provisions defined in table 5.6.3.15-1. NOTE: Recommendations on appropriate algorithms and key lengths are given e.g. in NIST Special Publication 800-57 \n Part 3 Revision 1 or in documents related to local legislation.\n", - "type": "object", - "required": [ - "osContainerImageFormats", - "imageSignatureVerification", - "imageDigestAlgorithms" - ], - "properties": { - "osContainerImageFormats": { - "description": "List of supported OS container image formats. Valid values are all values for \"container_format\" as defined in ETSI GS NFV-SOL 001 and all values for \"container-format\" as defined in ETSI GS NFV-SOL 006.\n", - "type": "array", - "minItems": 1, - "items": { - "type": "string" - } - }, - "imageSignatureVerification": { - "description": "Information about the supported mechanisms, algorithms, and protocols for verifying the of software images.\n", - "type": "object", - "required": [ - "signatureVerificationAlgorithms" - ], - "properties": { - "signatureVerificationAlgorithms": { - "description": "List of algorithms for verifying the signature of software images that are supported by the CIR.\n", - "type": "array", - "items": { - "description": "List of algorithms for verifying the signature of software images that are supported by the CIR.\n", - "type": "object", - "required": [ - "algorithm", - "keyLengths" - ], - "properties": { - "algorithm": { - "description": "The name of the algorithm. Permitted values are: \"RSA\", \"DSA\", \"ECDSA\".\n", - "type": "string" - }, - "keyLengths": { - "description": "List of supported key lengths of the algorithm. The key length indicates the number of bits, such as \"256\", \"512\", etc. See note\n", - "type": "array", - "minItems": 1, - "items": { - "type": "string" - } - }, - "additionalAlgParams": { - "description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of keyvalue pairs is represented as an object. It shall comply with the provisions defined in clause 4 of IETF RFC 8259. In the following example, a list of key-value pairs with four keys (\"aString\", \"aNumber\", \"anArray\" and \"anObject\") is provided to illustrate that the values associated with different keys can be of different type.\n", - "type": "object" - } - } - } - } - } - }, - "imageDigestAlgorithms": { - "type": "array", - "items": { - "description": "List of supported digest algorithms that can be used for digital signatures.\n", - "type": "object", - "required": [ - "algorithm", - "keyLengths" - ], - "properties": { - "algorithm": { - "description": "The name of the algorithm. Permitted values are: \"SHA2\", \"SHA3\".\n", - "type": "string", - "enum": [ - "SHA2", - "SHA3" - ] - }, - "keyLengths": { - "description": "List of supported key lengths of the algorithm. The key length indicates the number of bits, such as \"256\", \"512\", etc. See note.\n", - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - } - }, - "ccmSpecificInfo": { - "description": "The supported cluster resource management modes. Available modes include: virtual and bare-metal resources, and for both types, on-demand (i.e., CCM requests to corresponding infrastructure managers to build necessary pools of resources) or pooled (i.e., CCM manages resources from pre-allocated resource pools). Multiple values can be specified. See note. Permitted values: - VIRTUAL-ON-DEMAND: virtual resourceson demand. - VIRTUAL-POOLED: virtual resources from a pre-allocated resource pool. - BARE-METAL-ON-DEMAND: bare-metal resources on demand. - BARE-METAL-POOLED: bare-metal resources from a pre-allocated resource pool.\nNOTE: Hybrid CIS clusters include both physical and virtual CIS cluster nodes and can be supported by a\n combination of relevant \"clusterResourceMgmtModes\".\n", - "type": "object", - "required": [ - "clusterResourceMgmtModes" - ], - "properties": { - "clusterResourceMgmtModes": { - "type": "array", - "minItems": 1, - "items": { - "type": "string", - "enum": [ - "VIRTUAL-ON-DEMAND", - "VIRTUAL-POOLED", - "BARE-METAL-ON-DEMAND", - "BARE-METAL-POOLED" - ] - } - } - } - }, - "_links": { - "description": "Links to resources related to this resource.\n", - "type": "object", - "required": [ - "self", - "manoServiceInterfaces", - "peerEntities", - "changeState", - "changeStateOpOccs" - ], - "properties": { - "self": { - "description": "This type represents a link to a resource using an absolute URI.\n", - "type": "object", - "required": [ - "href" - ], - "properties": { - "href": { - "description": "String formatted according to IETF RFC 3986.\n", - "type": "string" - } - } - }, - "manoServiceInterfaces": { - "description": "This type represents a link to a resource using an absolute URI.\n", - "type": "object", - "required": [ - "href" - ], - "properties": { - "href": { - "description": "String formatted according to IETF RFC 3986.\n", - "type": "string" - } - } - }, - "peerEntities": { - "description": "This type represents a link to a resource using an absolute URI.\n", - "type": "object", - "required": [ - "href" - ], - "properties": { - "href": { - "description": "String formatted according to IETF RFC 3986.\n", - "type": "string" - } - } - }, - "changeState": { - "description": "This type represents a link to a resource using an absolute URI.\n", - "type": "object", - "required": [ - "href" - ], - "properties": { - "href": { - "description": "String formatted according to IETF RFC 3986.\n", - "type": "string" - } - } - }, - "changeStateOpOccs": { - "description": "This type represents a link to a resource using an absolute URI.\n", - "type": "object", - "required": [ - "href" - ], - "properties": { - "href": { - "description": "String formatted according to IETF RFC 3986.\n", - "type": "string" - } - } - } - } - } - } + "description": "This type represents an NFV-MANO functional entity. * NOTE 1:\tIt shall be present when \"type\" attribute is \"NFVO\", and it shall be absent in any other case. * NOTE 2:\tIt shall be present when \"type\" attribute is \"VNFM\", and it shall be absent in any other case. * NOTE 3:\tIt shall be present when \"type\" attribute is \"VIM\", and it shall be absent in any other case. * NOTE 4:\tThe information about the NFV-MANO services offered by a specific type of NFV-MANO functional\n entity is specified by the manoServices attribute.\n* NOTE 5:\tIt is optional for the API producer to support the \"manoEntityComponents\" attribute. * NOTE 6:\tIt shall be present when \"type\" attribute is \"WIM\", and it shall be absent in any other case. * NOTE 7:\tIt shall be present when \"type\" attribute is \"CISM\", and it shall be absent in any other case. * NOTE 8:\tIt shall be present when \"type\" attribute is \"CIR\", and it shall be absent in any other case. * NOTE 9:\tIt shall be present when \"type\" attribute is \"CCM\", and it shall be absent in any other case. * NOTE 10: It shall be present when \"type\" attribute is \"MDAF\", and it shall be absent in any other case. * NOTE 11: It shall be present when \"type\" attribute is \"CMF\", and it shall be absent in any other case.\n", + "type": "object", + "required": [ + "id", + "type", + "name", + "description", + "provider", + "softwareVersion", + "manoConfigurableParams", + "manoApplicationState", + "_links" + ], + "properties": { + "id": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "type": { + "description": "The enumeration ManoEntityEnumType defines the permitted values to represent NFV-MANO functional entities. It shall comply with the provisions :\n - NFVO\tThe NFV-MANO functional entity is an NFVO.\n - VNFM\tThe NFV-MANO functional entity is a VNFM.\n - VIM\t The NFV-MANO functional entity is a VIM.\n - WIM The NFV-MANO functional entity is a WIM.\n - CISM The NFV-MANO functional entity is a CISM. \n - CIR The NFV-MANO functional entity is a CIR.\n - CCM The NFV-MANO functional entity is a CCM.\n - MDAF The NFV-MANO functional entity is a MDAF.\n - CMF The NFV-MANO functional entity is a CMF.\n", + "type": "string", + "enum": [ + "NFVO", + "VNFM", + "VIM", + "WIM", + "CISM", + "CIR", + "CCM", + "MDAF", + "CMF" + ] + }, + "name": { + "description": "Human-readable name of the NFV-MANO functional entity.\nThis attribute can be modified with the PATCH method.\n", + "type": "string" + }, + "description": { + "description": "Human-readable description of the NFV-MANO functional entity.\nThis attribute can be modified with the PATCH method.\n", + "type": "string" + }, + "provider": { + "description": "Information about the provider of the NFV-MANO functional entity. It typically includes the name of the provider.\n", + "type": "string" + }, + "softwareVersion": { + "description": "A version.\n", + "type": "string" + }, + "softwareInfo": { + "description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of keyvalue pairs is represented as an object. It shall comply with the provisions defined in clause 4 of IETF RFC 8259. In the following example, a list of key-value pairs with four keys (\"aString\", \"aNumber\", \"anArray\" and \"anObject\") is provided to illustrate that the values associated with different keys can be of different type.\n", + "type": "object" + }, + "manoEntityComponents": { + "description": "The deployed NFV-MANO functional entity components which realize the NFV-MANO functional entity. See note 5.\n", + "type": "array", + "items": { + "description": "This type represents information of a deployed component realizing part of an NFV-MANO functional entity. It is optional for the API producer to support this type.\n", + "type": "object", + "required": [ + "id" + ], + "properties": { + "id": { + "description": "An identifier that is unique for the respective type within a NFV-MANO functional entity, but that need not be globally unique. Representation: string of variable length..\n", + "type": "string" + }, + "manoServiceIds": { + "description": "References to the NFV-MANO services that depend on the NFV-MANO functional entity component. The identifier of the ManoService is referred. A service may depend on multiple components. Multiple services may depend on the same component.\n", + "type": "array", + "items": { + "description": "An identifier that is unique for the respective type within a NFV-MANO functional entity, but that need not be globally unique. Representation: string of variable length..\n", + "type": "string" + } + } + } + } + }, + "manoServices": { + "description": "Information about the NFV-MANO services provided by the NFV-MANO functional entity.\n", + "type": "array", + "items": { + "description": "This type represents information about an NFV-MANO service provided by the NFV-MANO functional entity. * NOTE:\tA cardinality greater than one supports having different interface versions or api Endpoints\n to be used for accessing the same instance of an NFV-MANO service.\n", + "type": "object", + "required": [ + "id", + "name", + "description", + "manoServiceInterfaceIds", + "_links" + ], + "properties": { + "id": { + "description": "An identifier that is unique for the respective type within a NFV-MANO functional entity, but that need not be globally unique. Representation: string of variable length..\n", + "type": "string" + }, + "name": { + "description": "Human-readable name of the NFV-MANO service.\nThis attribute can be modified with the PATCH method.\n", + "type": "string" + }, + "description": { + "description": "Human-readable description of the NFV-MANO service.\nThis attribute can be modified with the PATCH method.\n", + "type": "string" + }, + "manoServiceInterfaceIds": { + "description": "Reference to the NFV-MANO interfaces associated to the NFV-MANO service. If cardinality is greater than one, the type of ManoServiceInterface (see clause 5.6.3.3) shall be the same. The identifier of the ManoServiceInterface is referred. See note\n", + "type": "array", + "items": { + "description": "An identifier that is unique for the respective type within a NFV-MANO functional entity, but that need not be globally unique. Representation: string of variable length..\n", + "type": "string" + }, + "minItems": 1 + }, + "_links": { + "description": "Links to resources related to this resource.\n", + "type": "object", + "properties": { + "manoServiceInterfaces": { + "description": "Link to the \"individual NFV-MANO service interface\" resources with information about the associated interfaces to the NFV-MANO service.\n", + "type": "array", + "items": { + "description": "This type represents a link to a resource using an absolute URI.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + }, + "minItems": 1 + } + }, + "required": [ + "manoServiceInterfaces" + ] + } + } + } + }, + "manoConfigurableParams": { + "description": "# Warning: No definition found in the document ManoConfigurableParams\n" + }, + "manoApplicationState": { + "description": "Information and current values of the NFV-MANO functional entity’s application state.\n", + "type": "object", + "required": [ + "operationalState", + "administrativeState", + "usageState" + ], + "properties": { + "operationalState": { + "description": "The enumeration OperationalStateEnumType defines values representing the operational state of an NFV-MANO functional application type of managed entity. The OperationalStateEnumType shall comply with the provisions:\n - STARTED\tThe managed entity is operational.\n - STOPPED\tThe managed entity is not operational.\n - STOPPING\tThe managed entity is in the transition to stop.\n - STARTING\tThe managed entity is in the transition to start and become operational.\n - RESTARTING\tThe managed entity is in the transition to stop and start again.\n", + "type": "string", + "enum": [ + "STARTED", + "STOPPED", + "STOPPING", + "STARTING", + "RESTARTING" + ] + }, + "administrativeState": { + "description": "The enumeration AdministrativeStateEnumType defines values representing the administrative state of a managed entity. The AdministrativeStateEnumType shall comply with the provisions:\n - LOCKED\tThe managed entity is administratively prohibited to be used.\n - UNLOCKED\tThe managed entity is administratively allowed to be used.\n - LOCKING\tThe managed entity is in the transition to be locked.\n", + "type": "string", + "enum": [ + "LOCKED", + "UNLOCKED", + "LOCKING" + ] + }, + "usageState": { + "description": "The enumeration UsageStateEnumType defines values representing the usage state of a managed entity. The UsageStateEnumType shall comply with the provisions:\n - IN_USE\tThe managed entity is currently being used.\n - NOT_IN_USE\tThe managed entity is currently not being used.\n", + "type": "string", + "enum": [ + "IN_USE", + "NOT_IN_USE" + ] + } + } + }, + "nfvoSpecificInfo": { + "description": "This type represents information attributes specific to an NFVO entity, and that can be relevant to more than one NFV-MANO service offered by an NFVO entity. * NOTE 1:\tThe information to be provided in this attribute shall relate to the specification and version\n of the specification. For instance, \"ETSI GS NFV-SOL 001 (V2.5.1)\".\n NOTE 2:\tIf this attribute is not present, the value of this parameter is undefined.\n", + "type": "object", + "required": [ + "supportedVnfdFormats", + "supportedNsdFormats", + "certificateManagementMode" + ], + "properties": { + "maxOnboardedNsdNum": { + "description": "Maximum number of NSDs that can be on-boarded on the NFVO. See note 2.\n", + "type": "integer" + }, + "maxOnboardedVnfPkgNum": { + "description": "Maximum number of VNF Packages that can be on-boarded on the NFVO. See note 2.\n", + "type": "integer" + }, + "supportedVnfdFormats": { + "description": "Supported VNFD data formats.\n", + "type": "object", + "properties": { + "vnfdFormat": { + "description": "Name of the VNFD format.\nPermitted values:\n - TOSCA: The VNFD follows TOSCA definition, according to ETSI\n GS NFV-SOL 001 standard.\n - YANG: The VNFD follows YANG definition according to ETSI\n GS NFV-SOL 006 standard.\n", + "type": "string", + "enum": [ + "TOSCA", + "YANG" + ] + }, + "standardVersion": { + "description": "A version.\n", + "type": "string" + } + }, + "required": [ + "vnfdFormat", + "standardVersion" + ] + }, + "supportedNsdFormats": { + "description": "Supported NSD data formats.\n", + "type": "object", + "properties": { + "nsdFormat": { + "description": "Name of the NSD format.\nPermitted values:\n - TOSCA: The VNFD follows TOSCA definition, according to ETSI\n GS NFV-SOL 001 standard.\n - YANG: The VNFD follows YANG definition according to ETSI\n GS NFV-SOL 006 standard.\n", + "type": "string", + "enum": [ + "TOSCA", + "YANG" + ] + }, + "standardVersion": { + "description": "A version.\n", + "type": "string" + } + }, + "required": [ + "nsdFormat", + "standardVersion" + ] + }, + "certificateManagementMode": { + "description": "The supported list of VNF certificate management mode. Permitted Values: - DELEGATION-MODE: the CMF supports delegation-mode. - DIRECT-MODE: the CMF supports direct-mode.\n", + "type": "array", + "items": { + "type": "string", + "minItems": 1, + "enum": [ + "DELEGATION-MODE", + "DIRECT-MODE" + ] + } + } + } + }, + "vnfmSpecificInfo": { + "description": "This type represents information attributes specific to a VNFM entity, and that can be relevant to more than one NFV-MANO service offered by a VNFM entity. * NOTE:\tThe information to be provided in this attribute shall relate to the specification and version\n of the specification. For instance, \"ETSI GS NFV-SOL 001 (V2.5.1)\".\n", + "type": "object", + "required": [ + "resoruceMgmtModeSupport", + "managedVnfInstanceInfos", + "supportedVnfdFormats", + "certificateManagementMode" + ], + "properties": { + "resoruceMgmtModeSupport": { + "description": "The supported resource management modes of the VNFM.\nPermitted values:\n - DIRECT: The VNFM supports direct mode only.\n - INDIRECT: The VNFM supports indirect mode only.\n - BOTH: The VNFM supports both direct and indirect mode.\n", + "type": "string", + "enum": [ + "DIRECT", + "INDIRECT", + "BOTH" + ] + }, + "managedVnfInstanceInfos": { + "description": "The kinds of VNF instances that can be managed, e.g. to determine the compatibility of a VNF with certain VNFM according to the vnfmInfo attribute in the VNFD (see table 7.1.2.2-1 in ETSI GS NFV-IFA 011).\n", + "type": "array", + "items": { + "type": "string" + }, + "minItems": 1 + }, + "supportedVnfdFormats": { + "description": "Supported VNFD data formats.\n", + "type": "array", + "items": { + "type": "object", + "properties": { + "vnfdFormat": { + "description": "Name of the VNFD format.\nPermitted values:\n - TOSCA: The VNFD follows TOSCA definition, according to ETSI\n GS NFV-SOL 001 standard.\n - YANG: The VNFD follows YANG definition according to ETSI\n GS NFV-SOL 006 standard.\n", + "type": "string", + "enum": [ + "TOSCA", + "YANG" + ] + }, + "standardVersion": { + "description": "A version.\n", + "type": "string" + } + }, + "required": [ + "vnfdFormat", + "standardVersion" + ] + }, + "minItems": 1 + }, + "certificateManagementMode": { + "description": "The supported list of VNF certificate management mode. Permitted Values: - DELEGATION-MODE: the CMF supports delegation-mode. - DIRECT-MODE: the CMF supports direct-mode.\n", + "type": "array", + "items": { + "type": "string", + "minItems": 1, + "enum": [ + "DELEGATION-MODE", + "DIRECT-MODE" + ] + } + } + } + }, + "vimSpecificInfo": { + "description": "This type represents information attributes specific to a VIM entity, and that can be relevant to more than one NFV MANO service offered by a VIM entity. It shall comply with the provisions defined in table 5.6.3.6-1. The present document version does not specify the support for \"maximum number of virtualised resources (attribute \"maxVirtualResourceNum\")\" as specified in clause 7.2.9.2 of ETSI GS NFV IFA 031 [1].\nNOTE:\tRecommendations on appropriate algorithms and key lengths are given e.g., in NIST Special Publication 800-57 Part 3 Revision 1 [i.26] or in documents related to local legislation.\n", + "type": "object", + "required": [ + "imageContainerFormats", + "imageDiskFormats", + "imageSignatureVerification", + "imageDigestAlgorithms" + ], + "properties": { + "imageContainerFormats": { + "description": "List of supported image container formats. Container format indicates whether a software image is in a file that also contains metadata about the actual software. Valid values are all values for \"container_format\" as defined in ETSI GS NFV-SOL 001 [16] and all values for \"container-format\" as defined in ETSI GS NFV-SOL 006 [i.17].\n", + "type": "array", + "items": { + "type": "string" + } + }, + "imageDiskFormats": { + "description": "List of supported image disk formats. The Disk format of a software image is the format of the underlying disk image. Valid values are all values for \"disk_format\" as defined in ETSI GS NFV-SOL 001 [16] and all values of \"disk-format\" as defined in ETSI GS NFV-SOL 006 [i.17].\n", + "type": "array", + "items": { + "type": "string" + } + }, + "imageSignatureVerification": { + "description": "Information about the supported mechanisms, algorithms, and protocols for verifying the signature of software images.\n", + "type": "object", + "required": [ + "signatureVerificationAlgorithms" + ], + "properties": { + "additionalVerificationCapabilities": { + "description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of keyvalue pairs is represented as an object. It shall comply with the provisions defined in clause 4 of IETF RFC 8259. In the following example, a list of key-value pairs with four keys (\"aString\", \"aNumber\", \"anArray\" and \"anObject\") is provided to illustrate that the values associated with different keys can be of different type.\n", + "type": "object" + }, + "signatureVerificationAlgorithms": { + "description": "List of algorithms for verifying the signature of software images that are supported by the VIM.\n", + "type": "array", + "items": { + "type": "object", + "required": [ + "algorithm", + "keyLengths" + ], + "properties": { + "algorithm": { + "description": "The name of the algorithm. Permitted values are: \"RSA\", \"DSA\", \"ECDSA\".\n", + "type": "string" + }, + "keyLengths": { + "description": "List of supported key lengths of the algorithm. The key length indicates the number of bits, such as “256”, “512”, etc. See note.\n", + "type": "array", + "items": { + "type": "string" + } + }, + "additionalAlgParams": { + "description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of keyvalue pairs is represented as an object. It shall comply with the provisions defined in clause 4 of IETF RFC 8259. In the following example, a list of key-value pairs with four keys (\"aString\", \"aNumber\", \"anArray\" and \"anObject\") is provided to illustrate that the values associated with different keys can be of different type.\n", + "type": "object" + } + } + } + } + } + }, + "imageDigestAlgorithms": { + "description": "List of supported digest algorithms that can be used for digital signatures.\n", + "type": "array", + "items": { + "type": "object", + "required": [ + "algorithm", + "keyLengths" + ], + "properties": { + "algorithm": { + "description": "The name of the algorithm. Permitted values are: “SHA2“,“SHA3“.\n", + "type": "string" + }, + "keyLengths": { + "description": "List of supported key lengths of the algorithm. The key length indicates the number of bits, such as “256”, “512”, etc. See note.\n", + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + }, + "wimSpecificInfo": { + "description": "This type represents information attributes specific to a WIM entity, and that can be relevant to more than one NFV MANO service offered by a WIM entity.\n", + "type": "object", + "required": [ + "maxMscsNums", + "maxMsncNum", + "mscsLayerProtocolSupport" + ], + "properties": { + "maxMscsNums": { + "description": "Maximum number of MSCS that the WIM can manage.\n", + "type": "object", + "required": [ + "numMscs" + ], + "properties": { + "numMscs": { + "description": "Maximum number of MSCS.\n", + "type": "integer" + }, + "criteriaNumMscs": { + "description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of keyvalue pairs is represented as an object. It shall comply with the provisions defined in clause 4 of IETF RFC 8259. In the following example, a list of key-value pairs with four keys (\"aString\", \"aNumber\", \"anArray\" and \"anObject\") is provided to illustrate that the values associated with different keys can be of different type.\n", + "type": "object" + } + } + }, + "maxMsncNum": { + "description": "Maximum number of MSNC that the WIM can manage\n", + "type": "object", + "required": [ + "numMsnc" + ], + "properties": { + "numMsnc": { + "description": "Maximum number of MSNC..\n", + "type": "integer" + }, + "criteriaNumMsnc": { + "description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of keyvalue pairs is represented as an object. It shall comply with the provisions defined in clause 4 of IETF RFC 8259. In the following example, a list of key-value pairs with four keys (\"aString\", \"aNumber\", \"anArray\" and \"anObject\") is provided to illustrate that the values associated with different keys can be of different type.\n", + "type": "object" + } + } + }, + "mscsLayerProtocolSupport": { + "description": "List of protocols of particular layers used to realize an MSCS that are supported by the WIM.\nPermitted values:\n - EVPN_BGP_MPLS: L2 MSCS realized by BGP MPLS-based Ethernet VPN (EVPN) as specified in IETF RFC 7432.\n - EVPN_VPWS: L2 MSCS realized by EVPN Virtual Private Wire Service (VPWS) as specified in IETF RFC 8214.\n - VPLS_BGP: L2 MSCS realized by Virtual Private LAN Service (VPLS) using BGP as specified\n in IETF RFC 4761 and IETF RFC.\n - VPLS_LDP_L2TP: L2 MSCS realized by VPLS using Label Distribution Protocol (LDP) Layer 2\n Tunnelling Protocol (L2TP) as specified in IETF RFC 4762 and IETF RFC 6074.\n - VPWS_LDP_L2TP: L2 MSCS realized by VPWS using LDP L2TP as specified in IETF RFC 6074.\n - BGP_IP_VPN: L3 MSCS realized by BGP/MPLS based IP VPN as specified in IETF RFC 4364.\n", + "type": "string", + "enum": [ + "EVPN_BGP_MPLS", + "EVPN_VPWS", + "VPLS_BGP", + "VPLS_LDP_L2TP", + "VPWS_LDP_L2TP", + "BGP_IP_VPN" + ] + } + } + }, + "cismSpecificInfo": { + "description": "This type represents information attributes specific to a CISM entity, and that can be relevant to more than one NFV-MANO service offered by a CISM entity. It shall comply with the provisions defined in table 5.6.3.14-1. NOTE:\tNo attributes are specified in the present document version. The definition of attributes is left for future specification. \n", + "type": "object", + "properties": { + "none": { + "type": "object" + } + } + }, + "cirSpecificInfo": { + "description": "This type represents information attributes specific to a CIR entity, and that can be relevant to more than one NFV- MANO service offered by a CIR entity. It shall comply with the provisions defined in table 5.6.3.15-1. NOTE: Recommendations on appropriate algorithms and key lengths are given e.g. in NIST Special Publication 800-57 \n Part 3 Revision 1 or in documents related to local legislation.\n", + "type": "object", + "required": [ + "osContainerImageFormats", + "imageSignatureVerification", + "imageDigestAlgorithms" + ], + "properties": { + "osContainerImageFormats": { + "description": "List of supported OS container image formats. Valid values are all values for \"container_format\" as defined in ETSI GS NFV-SOL 001 and all values for \"container-format\" as defined in ETSI GS NFV-SOL 006.\n", + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + }, + "imageSignatureVerification": { + "description": "Information about the supported mechanisms, algorithms, and protocols for verifying the of software images.\n", + "type": "object", + "required": [ + "signatureVerificationAlgorithms" + ], + "properties": { + "signatureVerificationAlgorithms": { + "description": "List of algorithms for verifying the signature of software images that are supported by the CIR.\n", + "type": "array", + "items": { + "description": "List of algorithms for verifying the signature of software images that are supported by the CIR.\n", + "type": "object", + "required": [ + "algorithm", + "keyLengths" + ], + "properties": { + "algorithm": { + "description": "The name of the algorithm. Permitted values are: \"RSA\", \"DSA\", \"ECDSA\".\n", + "type": "string" + }, + "keyLengths": { + "description": "List of supported key lengths of the algorithm. The key length indicates the number of bits, such as \"256\", \"512\", etc. See note\n", + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + }, + "additionalAlgParams": { + "description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of keyvalue pairs is represented as an object. It shall comply with the provisions defined in clause 4 of IETF RFC 8259. In the following example, a list of key-value pairs with four keys (\"aString\", \"aNumber\", \"anArray\" and \"anObject\") is provided to illustrate that the values associated with different keys can be of different type.\n", + "type": "object" + } + } + } + } + } + }, + "imageDigestAlgorithms": { + "type": "array", + "items": { + "description": "List of supported digest algorithms that can be used for digital signatures.\n", + "type": "object", + "required": [ + "algorithm", + "keyLengths" + ], + "properties": { + "algorithm": { + "description": "The name of the algorithm. Permitted values are: \"SHA2\", \"SHA3\".\n", + "type": "string", + "enum": [ + "SHA2", + "SHA3" + ] + }, + "keyLengths": { + "description": "List of supported key lengths of the algorithm. The key length indicates the number of bits, such as \"256\", \"512\", etc. See note.\n", + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + }, + "ccmSpecificInfo": { + "description": "The supported cluster resource management modes. Available modes include: virtual and bare-metal resources, and for both types, on-demand (i.e., CCM requests to corresponding infrastructure managers to build necessary pools of resources) or pooled (i.e., CCM manages resources from pre-allocated resource pools). Multiple values can be specified. See note. Permitted values: - VIRTUAL-ON-DEMAND: virtual resourceson demand. - VIRTUAL-POOLED: virtual resources from a pre-allocated resource pool. - BARE-METAL-ON-DEMAND: bare-metal resources on demand. - BARE-METAL-POOLED: bare-metal resources from a pre-allocated resource pool.\nNOTE: Hybrid CIS clusters include both physical and virtual CIS cluster nodes and can be supported by a\n combination of relevant \"clusterResourceMgmtModes\".\n", + "type": "object", + "required": [ + "clusterResourceMgmtModes" + ], + "properties": { + "clusterResourceMgmtModes": { + "type": "array", + "minItems": 1, + "items": { + "type": "string", + "enum": [ + "VIRTUAL-ON-DEMAND", + "VIRTUAL-POOLED", + "BARE-METAL-ON-DEMAND", + "BARE-METAL-POOLED" + ] + } + } + } + }, + "mdafSpecificInfo": { + "description": "The supported list of data analytics types. Examples include \"Network service alarm incident analysis\" and others specified in ETSI GS NFV-IFA 047 [i.30]).\n", + "type": "object", + "required": [ + "dataAnalyticsTypes" + ], + "properties": { + "dataAnalyticsTypes": { + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + } + } + }, + "_links": { + "description": "Links to resources related to this resource.\n", + "type": "object", + "required": [ + "self", + "manoServiceInterfaces", + "peerEntities", + "changeState", + "changeStateOpOccs" + ], + "properties": { + "self": { + "description": "This type represents a link to a resource using an absolute URI.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + }, + "manoServiceInterfaces": { + "description": "This type represents a link to a resource using an absolute URI.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + }, + "peerEntities": { + "description": "This type represents a link to a resource using an absolute URI.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + }, + "changeState": { + "description": "This type represents a link to a resource using an absolute URI.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + }, + "changeStateOpOccs": { + "description": "This type represents a link to a resource using an absolute URI.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + } + } + } + } } \ No newline at end of file -- GitLab From fa02dfaf25ba0b8af9cfde9d4333982620480e8d Mon Sep 17 00:00:00 2001 From: "g.bernini" Date: Thu, 12 Sep 2024 09:39:19 +0200 Subject: [PATCH 03/18] updated data model: peer entity clause 5.6.2.15 --- .../schemas/PeerEntities.schema.json | 460 +++++++++--------- .../schemas/PeerEntity.schema.json | 452 ++++++++--------- 2 files changed, 458 insertions(+), 454 deletions(-) diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/PeerEntities.schema.json b/SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/PeerEntities.schema.json index 12b4645ba..dc9cc2e44 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/PeerEntities.schema.json +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/PeerEntities.schema.json @@ -1,230 +1,232 @@ { - "type": "array", - "items": { - "description": "This type represents an individual peer entity. * NOTE 1:\tThe value of the \"peerEntityId\" attribute is the same as the value of the \"id\" attribute in the\n \"ManoEntity\" of the corresponding NFV-MANO functional entity that acts as peer entity, and shall\n follow the uniqueness requirements set out in clause 5.6.2.2 for the \"id\" attribute.\n* NOTE 2: With this information, the NFVO has available information about the set of VIMs and associated VIM\n connection information that have been configured into the VNFM.\n", - "type": "object", - "required": [ - "id", - "peerEntityId", - "name", - "type", - "peerEntityState" - ], - "properties": { - "id": { - "description": "An identifier with the intention of being globally unique.\n", - "type": "string" - }, - "peerEntityId": { - "description": "An identifier with the intention of being globally unique.\n", - "type": "string" - }, - "name": { - "description": "Human-readable name of the peer functional entity.\nThis attribute can be modified with the PATCH method.\n", - "type": "string" - }, - "type": { - "description": "The enumeration PeerEntityEnumType defines the permitted values to represent peer functional entities. it shall complains with the provisions : - NFVO\tThe peer functional entity is an NFVO. - VNFM\tThe peer functional entity is a VNFM. - VIM\t The peer functional entity is a VIM. - WIM\t The peer functional entity is a WIM. - CISM The peer functional entity is a CISM. - CIR The NFV-MANO functional entity is a CIR. - CCM The NFV-MANO functional entity is a CCM. - EM\t The peer functional entity is an EM. - OSS\t The peer functional entity is an OSS/BSS.\n", - "type": "string", - "enum": [ - "NFVO", - "VNFM", - "VIM", - "WIM", - "CISM", - "CIR", - "CCM", - "EM", - "OSS" - ] - }, - "description": { - "description": "Human-readable description of the peer functional entity.\nThis attribute can be modified with the PATCH method.\n", - "type": "string" - }, - "consumedManoInterfaces": { - "description": "Information of the interface consumed by the NFV-MANO functional entity from the peer functional entity.\nThis attribute can be modified with the PATCH method.\nThe keys of the map, each of which identifies information about a particular consumed NFV-MANO interface, are managed by the API consumer and referenced from other data structures via the \"consumedManoInterfaceIds\" attribute.\n", - "type": "object" - }, - "vimConnectionInfos": { - "description": "Map of VIM connection information. The VimConnectionInfo is specified in clause 4.4.1.6 of ETSI GS NFV-SOL 003. This attribute can be modified with the PATCH method. May be present only if the \"type\" attribute in the \"PeerEntity” is either a \"VIM\", a \"CISM\" or a \"CIR\", and the NFV-MANO entity being configured is a \"VNFM\" or \"NFVO\" as indicated by the \"type\" attribute in the \"ManoEntity\". In case it is present, the value of the \"vimId\" in the \"VimConnectionInfo\" shall be equal to the value of \"peerEntityId\". In addition, the content of \"interfaceInfo\", \"accessInfo” and \"extra\" (if applicable) of the “VimConnectionInfo\" shall be provided by means in scope of the present document.\n", - "type": "array", - "items": { - "type": "object" - } - }, - "vnfmConfiguredVimConnectionInfoIds": { - "description": "List of VIM connection information identifiers that identify the set of VIMs and associated VIM connection information that have been configured into the VNFM whose identifier is equal to the “peerEntityId“. See note 2. Only applicable if the \"type” attribute in the \"ManoEntity\" is \"NFVO\" and the \"type” attribute in the \"PeerEntity\" is a \"VNFM\".\n", - "type": "array", - "items": { - "description": "An identifier with the intention of being globally unique.\n", - "type": "string" - }, - "additionalProperties": { - "description": "This type represents an interface consumed by the producer NFV MANO functional entity from another peer functional entity. * NOTE 1:\tThe information to be provided in this attribute shall relate to the specification and its version.\n For instance, \"ETSI GS NFV-SOL 003 (V2.4.1)\".\n* NOTE 2:\tDue to the security sensitive information associated to the attribute, based on access control\n policies, the API consumer might have read only, write only, read/write, or no access at all to\n the attribute's value. In case the API consumer is not allowed to read the value of the security\n sensitive attribute, the attribute shall be omitted when the information is to be provided in a\n response message, and shall be provided otherwise. In case the API consumer is not allowed to\n modify the value of the security sensitive attribute, and the modification request includes new\n attribute values, the whole modification request shall be rejected, and proper error information returned.\n", - "type": "object", - "required": [ - "id", - "name", - "type", - "standardVersion", - "apiVersion", - "apiEndpoint" - ], - "properties": { - "name": { - "description": "Human-readable name of the NFV-MANO interface.\n", - "type": "string" - }, - "type": { - "description": "Type of the NFV-MANO service interface consumed by the NFV-MANO functional entity. Valid values are defined in clause 5.6.4.3.\n", - "type": "string" - }, - "standardVersion": { - "description": "A version.\n", - "type": "string" - }, - "apiVersion": { - "description": "A version.\n", - "type": "string" - }, - "apiEndpoint": { - "description": "Consumable API endpoint of the interface. It provides the information relevant about the protocol, host and port, and path where the interface API can be accessed.\n", - "type": "object", - "properties": { - "apiRoot": { - "description": "String formatted according to IETF RFC 3986.\n", - "type": "string" - }, - "apiName": { - "description": "Indicates the interface name in an abbreviated form. Shall be present for ETSI NFV specified RESTful NFV-MANO APIs. The {apiName} of each interface is defined in the standard the interface is compliant to (see also clause 4.1 of ETSI GS NFV-SOL 013). May be present otherwise.\n", - "type": "string" - }, - "apiMajorVersion": { - "description": "Indicates the current major version of the API. Shall be present for ETSI NFV specified RESTful NFV-MANO APIs. The major version is defined in the standard the interface is compliant to (see also clause 4.1 of ETSI GS NFV-SOL 013). May be present otherwise.\n", - "type": "string" - }, - "apiUri": { - "description": "String formatted according to IETF RFC 3986.\n", - "type": "string" - } - }, - "required": [ - "apiUri" - ] - }, - "securityInfo": { - "description": "This type represents security related information for accessing an NFV-MANO service interface produced by an NFV-MANO functional entity. * NOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration\n shall be supported, and dynamic configuration may be supported.\n", - "type": "object", - "required": [ - "authType", - "oauthServerInfo" - ], - "properties": { - "authType": { - "description": "Type of API request authorization to be used by the API consumer accessing the API.\nThe support of authorization methods for the API consumer is specified in clause 8.3.6 of ETSI GS NFV-SOL 013.\nPermitted values: - TLS_TUNNEL: Using TLS tunnel, as defined by TLS 1.2 in IETF RFC 5246. - TLS_TUNNEL_13: Using TLS tunnel, as defined by TLS 1.3 in IETF RFC 8446. - OAUTH2: Using access token, as defined by the OAuth 2.0 specification in IETF RFC 6749.\n", - "type": "array", - "items": { - "type": "string", - "enum": [ - "TLS_TUNNEL", - "TLS_TUNNEL_13", - "OAUTH2" - ] - }, - "minItems": 1 - }, - "oauthServerInfo": { - "description": "OAuth 2.0 authorization server information and configuration.\n", - "type": "object", - "properties": { - "dynamicDiscovery": { - "description": "Configuration data used when performing dynamic discovery of the authorization server identifier. See note.\n", - "type": "object", - "required": [ - "webFingerHost" - ], - "properties": { - "webFingerHost": { - "description": "Server where the WebFinger service is hosted. When used, the request to the WebFinger resource shall conform as specified in clause 5.1.3 of ETSI GS NFV-SEC 022.\n", - "type": "string", - "format": "uri" - } - } - }, - "providedConfiguration": { - "description": "Configuration data used to setup the authorization server identifier. See note.\n", - "type": "object", - "required": [ - "authServerId" - ], - "properties": { - "authServerId": { - "description": "Authorization server identifier as defined in ETSI GS NFV-SEC 022.\n", - "type": "string", - "format": "uri" - } - } - }, - "tlsCipherSuites": { - "description": "List of cipher suites that shall be declared as supported by the API consumer when performing the SSL or TLS negotiation with the authorization server. Valid values of cipher suites are defined in IETF RFC 8447.\n", - "type": "array", - "items": { - "type": "string", - "minItems": 1 - } - } - } - }, - "tlsTunnelInfo": { - "description": "Information and configuration related to the use of TLS tunnel. Shall be present if authType contains \"TLS_TUNNEL\".\n", - "type": "object", - "properties": { - "tlsTunnelCipherSuites": { - "description": "List of cipher suites that shall be declared as supported by the API consumer when performing the SSL or TLS negotiation with the API producer. Valid values of cipher suites are defined in IETF RFC 8447.\n", - "type": "array", - "items": { - "type": "string", - "minItems": 1 - } - } - } - } - } - } - } - } - }, - "peerEntityState": { - "description": "State of the peer functional entity as provided by the API consumer when creating the resource or when updating it with the PATCH method.\n", - "type": "object", - "properties": { - "operationalState": { - "description": "The enumeration OperationalStateEnumType defines values representing the operational state of an NFV-MANO functional application type of managed entity. The OperationalStateEnumType shall comply with the provisions:\n - STARTED\tThe managed entity is operational.\n - STOPPED\tThe managed entity is not operational.\n - STOPPING\tThe managed entity is in the transition to stop.\n - STARTING\tThe managed entity is in the transition to start and become operational.\n - RESTARTING\tThe managed entity is in the transition to stop and start again.\n", - "type": "string", - "enum": [ - "STARTED", - "STOPPED", - "STOPPING", - "STARTING", - "RESTARTING" - ] - }, - "administrativeState": { - "description": "The enumeration AdministrativeStateEnumType defines values representing the administrative state of a managed entity. The AdministrativeStateEnumType shall comply with the provisions:\n - LOCKED\tThe managed entity is administratively prohibited to be used.\n - UNLOCKED\tThe managed entity is administratively allowed to be used.\n - LOCKING\tThe managed entity is in the transition to be locked.\n", - "type": "string", - "enum": [ - "LOCKED", - "UNLOCKED", - "LOCKING" - ] - } - }, - "required": [ - "operationalState", - "administrativeState" - ] - } - } - } - } \ No newline at end of file + "type": "array", + "items": { + "description": "This type represents an individual peer entity. * NOTE 1:\tThe value of the \"peerEntityId\" attribute is the same as the value of the \"id\" attribute in the\n \"ManoEntity\" of the corresponding NFV-MANO functional entity that acts as peer entity, and shall\n follow the uniqueness requirements set out in clause 5.6.2.2 for the \"id\" attribute.\n* NOTE 2: With this information, the NFVO has available information about the set of VIMs and associated VIM\n connection information that have been configured into the VNFM.\n", + "type": "object", + "required": [ + "id", + "peerEntityId", + "name", + "type", + "peerEntityState" + ], + "properties": { + "id": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "peerEntityId": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "name": { + "description": "Human-readable name of the peer functional entity.\nThis attribute can be modified with the PATCH method.\n", + "type": "string" + }, + "type": { + "description": "The enumeration PeerEntityEnumType defines the permitted values to represent peer functional entities. it shall complains with the provisions : - NFVO\tThe peer functional entity is an NFVO. - VNFM\tThe peer functional entity is a VNFM. - VIM\t The peer functional entity is a VIM. - WIM\t The peer functional entity is a WIM. - CISM The peer functional entity is a CISM. - CIR The NFV-MANO functional entity is a CIR. - CCM The NFV-MANO functional entity is a CCM. - MDAF The peer functional entity is a MDAF. - CMF The peer functional entity is a CMF. - EM\t The peer functional entity is an EM. - OSS\t The peer functional entity is an OSS/BSS.\n", + "type": "string", + "enum": [ + "NFVO", + "VNFM", + "VIM", + "WIM", + "CISM", + "CIR", + "CCM", + "MDAF", + "CMF", + "EM", + "OSS" + ] + }, + "description": { + "description": "Human-readable description of the peer functional entity.\nThis attribute can be modified with the PATCH method.\n", + "type": "string" + }, + "consumedManoInterfaces": { + "description": "Information of the interface consumed by the NFV-MANO functional entity from the peer functional entity.\nThis attribute can be modified with the PATCH method.\nThe keys of the map, each of which identifies information about a particular consumed NFV-MANO interface, are managed by the API consumer and referenced from other data structures via the \"consumedManoInterfaceIds\" attribute.\n", + "type": "object" + }, + "vimConnectionInfos": { + "description": "Map of VIM connection information. The VimConnectionInfo is specified in clause 4.4.1.6 of ETSI GS NFV-SOL 003. This attribute can be modified with the PATCH method. May be present only if the \"type\" attribute in the \"PeerEntity” is either a \"VIM\", a \"CISM\" or a \"CIR\", and the NFV-MANO entity being configured is a \"VNFM\" or \"NFVO\" as indicated by the \"type\" attribute in the \"ManoEntity\". In case it is present, the value of the \"vimId\" in the \"VimConnectionInfo\" shall be equal to the value of \"peerEntityId\". In addition, the content of \"interfaceInfo\", \"accessInfo” and \"extra\" (if applicable) of the “VimConnectionInfo\" shall be provided by means in scope of the present document.\n", + "type": "array", + "items": { + "type": "object" + } + }, + "vnfmConfiguredVimConnectionInfoIds": { + "description": "List of VIM connection information identifiers that identify the set of VIMs and associated VIM connection information that have been configured into the VNFM whose identifier is equal to the “peerEntityId“. See note 2. Only applicable if the \"type” attribute in the \"ManoEntity\" is \"NFVO\" and the \"type” attribute in the \"PeerEntity\" is a \"VNFM\".\n", + "type": "array", + "items": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "additionalProperties": { + "description": "This type represents an interface consumed by the producer NFV MANO functional entity from another peer functional entity. * NOTE 1:\tThe information to be provided in this attribute shall relate to the specification and its version.\n For instance, \"ETSI GS NFV-SOL 003 (V2.4.1)\".\n* NOTE 2:\tDue to the security sensitive information associated to the attribute, based on access control\n policies, the API consumer might have read only, write only, read/write, or no access at all to\n the attribute's value. In case the API consumer is not allowed to read the value of the security\n sensitive attribute, the attribute shall be omitted when the information is to be provided in a\n response message, and shall be provided otherwise. In case the API consumer is not allowed to\n modify the value of the security sensitive attribute, and the modification request includes new\n attribute values, the whole modification request shall be rejected, and proper error information returned.\n", + "type": "object", + "required": [ + "id", + "name", + "type", + "standardVersion", + "apiVersion", + "apiEndpoint" + ], + "properties": { + "name": { + "description": "Human-readable name of the NFV-MANO interface.\n", + "type": "string" + }, + "type": { + "description": "Type of the NFV-MANO service interface consumed by the NFV-MANO functional entity. Valid values are defined in clause 5.6.4.3.\n", + "type": "string" + }, + "standardVersion": { + "description": "A version.\n", + "type": "string" + }, + "apiVersion": { + "description": "A version.\n", + "type": "string" + }, + "apiEndpoint": { + "description": "Consumable API endpoint of the interface. It provides the information relevant about the protocol, host and port, and path where the interface API can be accessed.\n", + "type": "object", + "properties": { + "apiRoot": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + }, + "apiName": { + "description": "Indicates the interface name in an abbreviated form. Shall be present for ETSI NFV specified RESTful NFV-MANO APIs. The {apiName} of each interface is defined in the standard the interface is compliant to (see also clause 4.1 of ETSI GS NFV-SOL 013). May be present otherwise.\n", + "type": "string" + }, + "apiMajorVersion": { + "description": "Indicates the current major version of the API. Shall be present for ETSI NFV specified RESTful NFV-MANO APIs. The major version is defined in the standard the interface is compliant to (see also clause 4.1 of ETSI GS NFV-SOL 013). May be present otherwise.\n", + "type": "string" + }, + "apiUri": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + }, + "required": [ + "apiUri" + ] + }, + "securityInfo": { + "description": "This type represents security related information for accessing an NFV-MANO service interface produced by an NFV-MANO functional entity. * NOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration\n shall be supported, and dynamic configuration may be supported.\n", + "type": "object", + "required": [ + "authType", + "oauthServerInfo" + ], + "properties": { + "authType": { + "description": "Type of API request authorization to be used by the API consumer accessing the API.\nThe support of authorization methods for the API consumer is specified in clause 8.3.6 of ETSI GS NFV-SOL 013.\nPermitted values: - TLS_TUNNEL: Using TLS tunnel, as defined by TLS 1.2 in IETF RFC 5246. - TLS_TUNNEL_13: Using TLS tunnel, as defined by TLS 1.3 in IETF RFC 8446. - OAUTH2: Using access token, as defined by the OAuth 2.0 specification in IETF RFC 6749.\n", + "type": "array", + "items": { + "type": "string", + "enum": [ + "TLS_TUNNEL", + "TLS_TUNNEL_13", + "OAUTH2" + ] + }, + "minItems": 1 + }, + "oauthServerInfo": { + "description": "OAuth 2.0 authorization server information and configuration.\n", + "type": "object", + "properties": { + "dynamicDiscovery": { + "description": "Configuration data used when performing dynamic discovery of the authorization server identifier. See note.\n", + "type": "object", + "required": [ + "webFingerHost" + ], + "properties": { + "webFingerHost": { + "description": "Server where the WebFinger service is hosted. When used, the request to the WebFinger resource shall conform as specified in clause 5.1.3 of ETSI GS NFV-SEC 022.\n", + "type": "string", + "format": "uri" + } + } + }, + "providedConfiguration": { + "description": "Configuration data used to setup the authorization server identifier. See note.\n", + "type": "object", + "required": [ + "authServerId" + ], + "properties": { + "authServerId": { + "description": "Authorization server identifier as defined in ETSI GS NFV-SEC 022.\n", + "type": "string", + "format": "uri" + } + } + }, + "tlsCipherSuites": { + "description": "List of cipher suites that shall be declared as supported by the API consumer when performing the SSL or TLS negotiation with the authorization server. Valid values of cipher suites are defined in IETF RFC 8447.\n", + "type": "array", + "items": { + "type": "string", + "minItems": 1 + } + } + } + }, + "tlsTunnelInfo": { + "description": "Information and configuration related to the use of TLS tunnel. Shall be present if authType contains \"TLS_TUNNEL\".\n", + "type": "object", + "properties": { + "tlsTunnelCipherSuites": { + "description": "List of cipher suites that shall be declared as supported by the API consumer when performing the SSL or TLS negotiation with the API producer. Valid values of cipher suites are defined in IETF RFC 8447.\n", + "type": "array", + "items": { + "type": "string", + "minItems": 1 + } + } + } + } + } + } + } + } + }, + "peerEntityState": { + "description": "State of the peer functional entity as provided by the API consumer when creating the resource or when updating it with the PATCH method.\n", + "type": "object", + "properties": { + "operationalState": { + "description": "The enumeration OperationalStateEnumType defines values representing the operational state of an NFV-MANO functional application type of managed entity. The OperationalStateEnumType shall comply with the provisions:\n - STARTED\tThe managed entity is operational.\n - STOPPED\tThe managed entity is not operational.\n - STOPPING\tThe managed entity is in the transition to stop.\n - STARTING\tThe managed entity is in the transition to start and become operational.\n - RESTARTING\tThe managed entity is in the transition to stop and start again.\n", + "type": "string", + "enum": [ + "STARTED", + "STOPPED", + "STOPPING", + "STARTING", + "RESTARTING" + ] + }, + "administrativeState": { + "description": "The enumeration AdministrativeStateEnumType defines values representing the administrative state of a managed entity. The AdministrativeStateEnumType shall comply with the provisions:\n - LOCKED\tThe managed entity is administratively prohibited to be used.\n - UNLOCKED\tThe managed entity is administratively allowed to be used.\n - LOCKING\tThe managed entity is in the transition to be locked.\n", + "type": "string", + "enum": [ + "LOCKED", + "UNLOCKED", + "LOCKING" + ] + } + }, + "required": [ + "operationalState", + "administrativeState" + ] + } + } + } +} \ No newline at end of file diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/PeerEntity.schema.json b/SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/PeerEntity.schema.json index 24ae54299..70f8cc29b 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/PeerEntity.schema.json +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/schemas/PeerEntity.schema.json @@ -1,227 +1,229 @@ { - "description": "This type represents an individual peer entity. * NOTE 1:\tThe value of the \"peerEntityId\" attribute is the same as the value of the \"id\" attribute in the\n \"ManoEntity\" of the corresponding NFV-MANO functional entity that acts as peer entity, and shall\n follow the uniqueness requirements set out in clause 5.6.2.2 for the \"id\" attribute.\n* NOTE 2: With this information, the NFVO has available information about the set of VIMs and associated VIM\n connection information that have been configured into the VNFM.\n", - "type": "object", - "required": [ - "id", - "peerEntityId", - "name", - "type", - "peerEntityState" - ], - "properties": { - "id": { - "description": "An identifier with the intention of being globally unique.\n", - "type": "string" - }, - "peerEntityId": { - "description": "An identifier with the intention of being globally unique.\n", - "type": "string" - }, - "name": { - "description": "Human-readable name of the peer functional entity.\nThis attribute can be modified with the PATCH method.\n", - "type": "string" - }, - "type": { - "description": "The enumeration PeerEntityEnumType defines the permitted values to represent peer functional entities. it shall complains with the provisions : - NFVO\tThe peer functional entity is an NFVO. - VNFM\tThe peer functional entity is a VNFM. - VIM\t The peer functional entity is a VIM. - WIM\t The peer functional entity is a WIM. - CISM The peer functional entity is a CISM. - CIR The NFV-MANO functional entity is a CIR. - CCM The NFV-MANO functional entity is a CCM. - EM\t The peer functional entity is an EM. - OSS\t The peer functional entity is an OSS/BSS.\n", - "type": "string", - "enum": [ - "NFVO", - "VNFM", - "VIM", - "WIM", - "CISM", - "CIR", - "CCM", - "EM", - "OSS" - ] - }, - "description": { - "description": "Human-readable description of the peer functional entity.\nThis attribute can be modified with the PATCH method.\n", - "type": "string" - }, - "consumedManoInterfaces": { - "description": "Information of the interface consumed by the NFV-MANO functional entity from the peer functional entity.\nThis attribute can be modified with the PATCH method.\nThe keys of the map, each of which identifies information about a particular consumed NFV-MANO interface, are managed by the API consumer and referenced from other data structures via the \"consumedManoInterfaceIds\" attribute.\n", - "type": "object" - }, - "vimConnectionInfos": { - "description": "Map of VIM connection information. The VimConnectionInfo is specified in clause 4.4.1.6 of ETSI GS NFV-SOL 003. This attribute can be modified with the PATCH method. May be present only if the \"type\" attribute in the \"PeerEntity” is either a \"VIM\", a \"CISM\" or a \"CIR\", and the NFV-MANO entity being configured is a \"VNFM\" or \"NFVO\" as indicated by the \"type\" attribute in the \"ManoEntity\". In case it is present, the value of the \"vimId\" in the \"VimConnectionInfo\" shall be equal to the value of \"peerEntityId\". In addition, the content of \"interfaceInfo\", \"accessInfo” and \"extra\" (if applicable) of the “VimConnectionInfo\" shall be provided by means in scope of the present document.\n", - "type": "array", - "items": { - "type": "object" - } - }, - "vnfmConfiguredVimConnectionInfoIds": { - "description": "List of VIM connection information identifiers that identify the set of VIMs and associated VIM connection information that have been configured into the VNFM whose identifier is equal to the “peerEntityId“. See note 2. Only applicable if the \"type” attribute in the \"ManoEntity\" is \"NFVO\" and the \"type” attribute in the \"PeerEntity\" is a \"VNFM\".\n", - "type": "array", - "items": { - "description": "An identifier with the intention of being globally unique.\n", - "type": "string" - }, - "additionalProperties": { - "description": "This type represents an interface consumed by the producer NFV MANO functional entity from another peer functional entity. * NOTE 1:\tThe information to be provided in this attribute shall relate to the specification and its version.\n For instance, \"ETSI GS NFV-SOL 003 (V2.4.1)\".\n* NOTE 2:\tDue to the security sensitive information associated to the attribute, based on access control\n policies, the API consumer might have read only, write only, read/write, or no access at all to\n the attribute's value. In case the API consumer is not allowed to read the value of the security\n sensitive attribute, the attribute shall be omitted when the information is to be provided in a\n response message, and shall be provided otherwise. In case the API consumer is not allowed to\n modify the value of the security sensitive attribute, and the modification request includes new\n attribute values, the whole modification request shall be rejected, and proper error information returned.\n", - "type": "object", - "required": [ - "id", - "name", - "type", - "standardVersion", - "apiVersion", - "apiEndpoint" - ], - "properties": { - "name": { - "description": "Human-readable name of the NFV-MANO interface.\n", - "type": "string" - }, - "type": { - "description": "Type of the NFV-MANO service interface consumed by the NFV-MANO functional entity. Valid values are defined in clause 5.6.4.3.\n", - "type": "string" - }, - "standardVersion": { - "description": "A version.\n", - "type": "string" - }, - "apiVersion": { - "description": "A version.\n", - "type": "string" - }, - "apiEndpoint": { - "description": "Consumable API endpoint of the interface. It provides the information relevant about the protocol, host and port, and path where the interface API can be accessed.\n", - "type": "object", - "properties": { - "apiRoot": { - "description": "String formatted according to IETF RFC 3986.\n", - "type": "string" - }, - "apiName": { - "description": "Indicates the interface name in an abbreviated form. Shall be present for ETSI NFV specified RESTful NFV-MANO APIs. The {apiName} of each interface is defined in the standard the interface is compliant to (see also clause 4.1 of ETSI GS NFV-SOL 013). May be present otherwise.\n", - "type": "string" - }, - "apiMajorVersion": { - "description": "Indicates the current major version of the API. Shall be present for ETSI NFV specified RESTful NFV-MANO APIs. The major version is defined in the standard the interface is compliant to (see also clause 4.1 of ETSI GS NFV-SOL 013). May be present otherwise.\n", - "type": "string" - }, - "apiUri": { - "description": "String formatted according to IETF RFC 3986.\n", - "type": "string" - } - }, - "required": [ - "apiUri" - ] - }, - "securityInfo": { - "description": "This type represents security related information for accessing an NFV-MANO service interface produced by an NFV-MANO functional entity. * NOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration\n shall be supported, and dynamic configuration may be supported.\n", - "type": "object", - "required": [ - "authType", - "oauthServerInfo" - ], - "properties": { - "authType": { - "description": "Type of API request authorization to be used by the API consumer accessing the API.\nThe support of authorization methods for the API consumer is specified in clause 8.3.6 of ETSI GS NFV-SOL 013.\nPermitted values: - TLS_TUNNEL: Using TLS tunnel, as defined by TLS 1.2 in IETF RFC 5246. - TLS_TUNNEL_13: Using TLS tunnel, as defined by TLS 1.3 in IETF RFC 8446. - OAUTH2: Using access token, as defined by the OAuth 2.0 specification in IETF RFC 6749.\n", - "type": "array", - "items": { - "type": "string", - "enum": [ - "TLS_TUNNEL", - "TLS_TUNNEL_13", - "OAUTH2" - ] - }, - "minItems": 1 - }, - "oauthServerInfo": { - "description": "OAuth 2.0 authorization server information and configuration.\n", - "type": "object", - "properties": { - "dynamicDiscovery": { - "description": "Configuration data used when performing dynamic discovery of the authorization server identifier. See note.\n", - "type": "object", - "required": [ - "webFingerHost" - ], - "properties": { - "webFingerHost": { - "description": "Server where the WebFinger service is hosted. When used, the request to the WebFinger resource shall conform as specified in clause 5.1.3 of ETSI GS NFV-SEC 022.\n", - "type": "string", - "format": "uri" - } - } - }, - "providedConfiguration": { - "description": "Configuration data used to setup the authorization server identifier. See note.\n", - "type": "object", - "required": [ - "authServerId" - ], - "properties": { - "authServerId": { - "description": "Authorization server identifier as defined in ETSI GS NFV-SEC 022.\n", - "type": "string", - "format": "uri" - } - } - }, - "tlsCipherSuites": { - "description": "List of cipher suites that shall be declared as supported by the API consumer when performing the SSL or TLS negotiation with the authorization server. Valid values of cipher suites are defined in IETF RFC 8447.\n", - "type": "array", - "items": { - "type": "string", - "minItems": 1 - } - } - } - }, - "tlsTunnelInfo": { - "description": "Information and configuration related to the use of TLS tunnel. Shall be present if authType contains \"TLS_TUNNEL\".\n", - "type": "object", - "properties": { - "tlsTunnelCipherSuites": { - "description": "List of cipher suites that shall be declared as supported by the API consumer when performing the SSL or TLS negotiation with the API producer. Valid values of cipher suites are defined in IETF RFC 8447.\n", - "type": "array", - "items": { - "type": "string", - "minItems": 1 - } - } - } - } - } - } - } - } - }, - "peerEntityState": { - "description": "State of the peer functional entity as provided by the API consumer when creating the resource or when updating it with the PATCH method.\n", - "type": "object", - "properties": { - "operationalState": { - "description": "The enumeration OperationalStateEnumType defines values representing the operational state of an NFV-MANO functional application type of managed entity. The OperationalStateEnumType shall comply with the provisions:\n - STARTED\tThe managed entity is operational.\n - STOPPED\tThe managed entity is not operational.\n - STOPPING\tThe managed entity is in the transition to stop.\n - STARTING\tThe managed entity is in the transition to start and become operational.\n - RESTARTING\tThe managed entity is in the transition to stop and start again.\n", - "type": "string", - "enum": [ - "STARTED", - "STOPPED", - "STOPPING", - "STARTING", - "RESTARTING" - ] - }, - "administrativeState": { - "description": "The enumeration AdministrativeStateEnumType defines values representing the administrative state of a managed entity. The AdministrativeStateEnumType shall comply with the provisions:\n - LOCKED\tThe managed entity is administratively prohibited to be used.\n - UNLOCKED\tThe managed entity is administratively allowed to be used.\n - LOCKING\tThe managed entity is in the transition to be locked.\n", - "type": "string", - "enum": [ - "LOCKED", - "UNLOCKED", - "LOCKING" - ] - } - }, - "required": [ - "operationalState", - "administrativeState" - ] - } - } + "description": "This type represents an individual peer entity. * NOTE 1:\tThe value of the \"peerEntityId\" attribute is the same as the value of the \"id\" attribute in the\n \"ManoEntity\" of the corresponding NFV-MANO functional entity that acts as peer entity, and shall\n follow the uniqueness requirements set out in clause 5.6.2.2 for the \"id\" attribute.\n* NOTE 2: With this information, the NFVO has available information about the set of VIMs and associated VIM\n connection information that have been configured into the VNFM.\n", + "type": "object", + "required": [ + "id", + "peerEntityId", + "name", + "type", + "peerEntityState" + ], + "properties": { + "id": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "peerEntityId": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "name": { + "description": "Human-readable name of the peer functional entity.\nThis attribute can be modified with the PATCH method.\n", + "type": "string" + }, + "type": { + "description": "The enumeration PeerEntityEnumType defines the permitted values to represent peer functional entities. it shall complains with the provisions : - NFVO\tThe peer functional entity is an NFVO. - VNFM\tThe peer functional entity is a VNFM. - VIM\t The peer functional entity is a VIM. - WIM\t The peer functional entity is a WIM. - CISM The peer functional entity is a CISM. - CIR The NFV-MANO functional entity is a CIR. - CCM The NFV-MANO functional entity is a CCM. - MDAF The peer functional entity is a MDAF. - CMF The peer functional entity is a CMF. - EM\t The peer functional entity is an EM. - OSS\t The peer functional entity is an OSS/BSS.\n", + "type": "string", + "enum": [ + "NFVO", + "VNFM", + "VIM", + "WIM", + "CISM", + "CIR", + "CCM", + "MDAF", + "CMF", + "EM", + "OSS" + ] + }, + "description": { + "description": "Human-readable description of the peer functional entity.\nThis attribute can be modified with the PATCH method.\n", + "type": "string" + }, + "consumedManoInterfaces": { + "description": "Information of the interface consumed by the NFV-MANO functional entity from the peer functional entity.\nThis attribute can be modified with the PATCH method.\nThe keys of the map, each of which identifies information about a particular consumed NFV-MANO interface, are managed by the API consumer and referenced from other data structures via the \"consumedManoInterfaceIds\" attribute.\n", + "type": "object" + }, + "vimConnectionInfos": { + "description": "Map of VIM connection information. The VimConnectionInfo is specified in clause 4.4.1.6 of ETSI GS NFV-SOL 003. This attribute can be modified with the PATCH method. May be present only if the \"type\" attribute in the \"PeerEntity” is either a \"VIM\", a \"CISM\" or a \"CIR\", and the NFV-MANO entity being configured is a \"VNFM\" or \"NFVO\" as indicated by the \"type\" attribute in the \"ManoEntity\". In case it is present, the value of the \"vimId\" in the \"VimConnectionInfo\" shall be equal to the value of \"peerEntityId\". In addition, the content of \"interfaceInfo\", \"accessInfo” and \"extra\" (if applicable) of the “VimConnectionInfo\" shall be provided by means in scope of the present document.\n", + "type": "array", + "items": { + "type": "object" + } + }, + "vnfmConfiguredVimConnectionInfoIds": { + "description": "List of VIM connection information identifiers that identify the set of VIMs and associated VIM connection information that have been configured into the VNFM whose identifier is equal to the “peerEntityId“. See note 2. Only applicable if the \"type” attribute in the \"ManoEntity\" is \"NFVO\" and the \"type” attribute in the \"PeerEntity\" is a \"VNFM\".\n", + "type": "array", + "items": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "additionalProperties": { + "description": "This type represents an interface consumed by the producer NFV MANO functional entity from another peer functional entity. * NOTE 1:\tThe information to be provided in this attribute shall relate to the specification and its version.\n For instance, \"ETSI GS NFV-SOL 003 (V2.4.1)\".\n* NOTE 2:\tDue to the security sensitive information associated to the attribute, based on access control\n policies, the API consumer might have read only, write only, read/write, or no access at all to\n the attribute's value. In case the API consumer is not allowed to read the value of the security\n sensitive attribute, the attribute shall be omitted when the information is to be provided in a\n response message, and shall be provided otherwise. In case the API consumer is not allowed to\n modify the value of the security sensitive attribute, and the modification request includes new\n attribute values, the whole modification request shall be rejected, and proper error information returned.\n", + "type": "object", + "required": [ + "id", + "name", + "type", + "standardVersion", + "apiVersion", + "apiEndpoint" + ], + "properties": { + "name": { + "description": "Human-readable name of the NFV-MANO interface.\n", + "type": "string" + }, + "type": { + "description": "Type of the NFV-MANO service interface consumed by the NFV-MANO functional entity. Valid values are defined in clause 5.6.4.3.\n", + "type": "string" + }, + "standardVersion": { + "description": "A version.\n", + "type": "string" + }, + "apiVersion": { + "description": "A version.\n", + "type": "string" + }, + "apiEndpoint": { + "description": "Consumable API endpoint of the interface. It provides the information relevant about the protocol, host and port, and path where the interface API can be accessed.\n", + "type": "object", + "properties": { + "apiRoot": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + }, + "apiName": { + "description": "Indicates the interface name in an abbreviated form. Shall be present for ETSI NFV specified RESTful NFV-MANO APIs. The {apiName} of each interface is defined in the standard the interface is compliant to (see also clause 4.1 of ETSI GS NFV-SOL 013). May be present otherwise.\n", + "type": "string" + }, + "apiMajorVersion": { + "description": "Indicates the current major version of the API. Shall be present for ETSI NFV specified RESTful NFV-MANO APIs. The major version is defined in the standard the interface is compliant to (see also clause 4.1 of ETSI GS NFV-SOL 013). May be present otherwise.\n", + "type": "string" + }, + "apiUri": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + }, + "required": [ + "apiUri" + ] + }, + "securityInfo": { + "description": "This type represents security related information for accessing an NFV-MANO service interface produced by an NFV-MANO functional entity. * NOTE:\tProvided configuration of the OAuth 2.0 authorization server information and configuration\n shall be supported, and dynamic configuration may be supported.\n", + "type": "object", + "required": [ + "authType", + "oauthServerInfo" + ], + "properties": { + "authType": { + "description": "Type of API request authorization to be used by the API consumer accessing the API.\nThe support of authorization methods for the API consumer is specified in clause 8.3.6 of ETSI GS NFV-SOL 013.\nPermitted values: - TLS_TUNNEL: Using TLS tunnel, as defined by TLS 1.2 in IETF RFC 5246. - TLS_TUNNEL_13: Using TLS tunnel, as defined by TLS 1.3 in IETF RFC 8446. - OAUTH2: Using access token, as defined by the OAuth 2.0 specification in IETF RFC 6749.\n", + "type": "array", + "items": { + "type": "string", + "enum": [ + "TLS_TUNNEL", + "TLS_TUNNEL_13", + "OAUTH2" + ] + }, + "minItems": 1 + }, + "oauthServerInfo": { + "description": "OAuth 2.0 authorization server information and configuration.\n", + "type": "object", + "properties": { + "dynamicDiscovery": { + "description": "Configuration data used when performing dynamic discovery of the authorization server identifier. See note.\n", + "type": "object", + "required": [ + "webFingerHost" + ], + "properties": { + "webFingerHost": { + "description": "Server where the WebFinger service is hosted. When used, the request to the WebFinger resource shall conform as specified in clause 5.1.3 of ETSI GS NFV-SEC 022.\n", + "type": "string", + "format": "uri" + } + } + }, + "providedConfiguration": { + "description": "Configuration data used to setup the authorization server identifier. See note.\n", + "type": "object", + "required": [ + "authServerId" + ], + "properties": { + "authServerId": { + "description": "Authorization server identifier as defined in ETSI GS NFV-SEC 022.\n", + "type": "string", + "format": "uri" + } + } + }, + "tlsCipherSuites": { + "description": "List of cipher suites that shall be declared as supported by the API consumer when performing the SSL or TLS negotiation with the authorization server. Valid values of cipher suites are defined in IETF RFC 8447.\n", + "type": "array", + "items": { + "type": "string", + "minItems": 1 + } + } + } + }, + "tlsTunnelInfo": { + "description": "Information and configuration related to the use of TLS tunnel. Shall be present if authType contains \"TLS_TUNNEL\".\n", + "type": "object", + "properties": { + "tlsTunnelCipherSuites": { + "description": "List of cipher suites that shall be declared as supported by the API consumer when performing the SSL or TLS negotiation with the API producer. Valid values of cipher suites are defined in IETF RFC 8447.\n", + "type": "array", + "items": { + "type": "string", + "minItems": 1 + } + } + } + } + } + } + } + } + }, + "peerEntityState": { + "description": "State of the peer functional entity as provided by the API consumer when creating the resource or when updating it with the PATCH method.\n", + "type": "object", + "properties": { + "operationalState": { + "description": "The enumeration OperationalStateEnumType defines values representing the operational state of an NFV-MANO functional application type of managed entity. The OperationalStateEnumType shall comply with the provisions:\n - STARTED\tThe managed entity is operational.\n - STOPPED\tThe managed entity is not operational.\n - STOPPING\tThe managed entity is in the transition to stop.\n - STARTING\tThe managed entity is in the transition to start and become operational.\n - RESTARTING\tThe managed entity is in the transition to stop and start again.\n", + "type": "string", + "enum": [ + "STARTED", + "STOPPED", + "STOPPING", + "STARTING", + "RESTARTING" + ] + }, + "administrativeState": { + "description": "The enumeration AdministrativeStateEnumType defines values representing the administrative state of a managed entity. The AdministrativeStateEnumType shall comply with the provisions:\n - LOCKED\tThe managed entity is administratively prohibited to be used.\n - UNLOCKED\tThe managed entity is administratively allowed to be used.\n - LOCKING\tThe managed entity is in the transition to be locked.\n", + "type": "string", + "enum": [ + "LOCKED", + "UNLOCKED", + "LOCKING" + ] + } + }, + "required": [ + "operationalState", + "administrativeState" + ] + } + } } \ No newline at end of file -- GitLab From 322ab7fd8d6c9d2149970a54ef6994b4fa1a485f Mon Sep 17 00:00:00 2001 From: "g.bernini" Date: Thu, 12 Sep 2024 09:58:51 +0200 Subject: [PATCH 04/18] added oauth scope tests for nfv mano entity --- .../NFVMANOCimKeywords.robot | 29 +++++++++++++++++++ .../NFVMANOEntity.robot | 28 +++++++++++++++++- .../environment/variables.txt | 8 +++++ 3 files changed, 64 insertions(+), 1 deletion(-) diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot index c77617894..536ff0948 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot @@ -9,6 +9,7 @@ Library JSONLibrary Library Collections Library JSONSchemaLibrary schemas/ Library Process +Library jwt *** Keywords *** Check HTTP Response Status Code Is @@ -46,6 +47,28 @@ GET NFV-MANO entity resource ${output}= Output response Set Suite Variable ${response} ${output} +GET NFV-MANO entity resource with permitted authorization scope + Log Trying to get a NFV-MANO entity resource + Set Headers {"Accept": "${ACCEPT_JSON}"} + ${scopeValue}= Create Dictionary scope=${ENTITY_PERMITTED_SCOPE} + ${authorizationToken}= JWT Encode payload=${scopeValue} key='' algorithm=${OAUTH_ENCRIPTION_ALGORITHM} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${authorizationToken}"} + Log Authorization Token: ${authorizationToken} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/mano_entity + ${output}= Output response + Set Suite Variable ${response} ${output} + +GET NFV-MANO entity resource with not permitted authorization scope + Log Trying to get a NFV-MANO entity resource + Set Headers {"Accept": "${ACCEPT_JSON}"} + ${scopeValue}= Create Dictionary scope=${ENTITY_PERMITTED_SCOPE} + ${authorizationToken}= JWT Encode payload=${scopeValue} key='' algorithm=${OAUTH_ENCRIPTION_ALGORITHM} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${authorizationToken}"} + Log Authorization Token: ${authorizationToken} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/mano_entity + ${output}= Output response + Set Suite Variable ${response} ${output} + Send Put request for NFV-MANO Entity Log Trying to perform a PUT (method should not be implemented) Set Headers {"Accept": "${ACCEPT_JSON}"} @@ -858,3 +881,9 @@ GET Peer Entities with expired or revoked authorization token Get ${apiRoot}/${apiName}/${apiMajorVersion}/peer_entities ${output}= Output response Set Suite Variable ${response} ${output} + +JWT Encode + [Arguments] ${payload} ${key} ${algorithm} + ${encoded}= Evaluate jwt.encode(${payload}, ${key}, ${algorithm}) + [Return] ${encoded} + diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOEntity.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOEntity.robot index 6113bf30f..6fdabfbf7 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOEntity.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOEntity.robot @@ -106,4 +106,30 @@ DELETE NFV-MANO entity - Method not implemented ... Applicability: none ... Post-Conditions: none Send Delete request for NFV-MANO Entity - Check HTTP Response Status Code Is 405 \ No newline at end of file + Check HTTP Response Status Code Is 405 + +GET NFV-MANO entity with permitted authorization scope + [Documentation] Test ID: 8.3.1.1.9 + ... Test title: Get NFV-MANO entity with permitted authorization scope + ... Test objective: The objective is to test the retrieval of information about an NFV-MANO functional entity by reading the NFV-MANO entity resource when a permitted authorization scope is used. + ... Pre-conditions: none + ... Reference: clause 5.5.3.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + GET NFV-MANO entity resource with permitted authorization scope + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is ManoEntity + +GET NFV-MANO entity with not permitted authorization scope + [Documentation] Test ID: 8.3.1.1.10 + ... Test title: Get NFV-MANO entity with not permitted authorization scope + ... Test objective: The objective is to test the retrieval of information about an NFV-MANO functional entity fails when a not permitted authorization scope is used. + ... Pre-conditions: none + ... Reference: clause 5.5.3.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + GET NFV-MANO entity resource with not permitted authorization scope + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is ManoEntity \ No newline at end of file diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt b/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt index 1a2939584..683cf6f2a 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt @@ -5,9 +5,17 @@ ${NFVMANO_SCHEMA} https ${AUTHORIZATION_TOKEN} Bearer 0b79bab50daca910b000d4f1a2b675d604257e42 ${NEG_AUTHORIZATION_TOKEN} Bearer negativetoken +${AUTHORIZATION_HEADER} Authorization ${BAD_AUTHORIZATION_TOKEN} Bear sometoken +${OAUTH_ENCRIPTION_ALGORITHM} HS256 +${ENTITY_PERMITTED_SCOPE} nfvpolicy:v2:mano_entity_info +${ENTITY_NOT_PERMITTED_SCOPE} nfvpolicy:v2:mano_entity_info:readonly +${PEER_PERMITTED_SCOPE} nfvpolicy:v2:peer_entity_info +${PEER_NOT_PERMITTED_SCOPE} nfvpolicy:v2:peer_entity_info:readonly +${NOT_PERMITTED_SCOPE} nfvpolicy:v2:policies:invalid + ${CONTENT_TYPE_JSON} application/json ${ACCEPT_JSON} application/json ${CONTENT_TYPE_PATCH} application/merge-patch+json -- GitLab From 05df9c207079656ab9a0572f8f86033fc4c739a4 Mon Sep 17 00:00:00 2001 From: "g.bernini" Date: Thu, 12 Sep 2024 10:00:54 +0200 Subject: [PATCH 05/18] updated oauth scope tests for nfv mano entity --- .../NFVMANOEntity.robot | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOEntity.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOEntity.robot index 6fdabfbf7..1d32a2804 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOEntity.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOEntity.robot @@ -131,5 +131,4 @@ GET NFV-MANO entity with not permitted authorization scope ... Applicability: none ... Post-Conditions: none GET NFV-MANO entity resource with not permitted authorization scope - Check HTTP Response Status Code Is 200 - Check HTTP Response Body Json Schema Is ManoEntity \ No newline at end of file + Check HTTP Response Status Code Is 401 \ No newline at end of file -- GitLab From bc699707e036cc7a7c326006591a2528944a4df9 Mon Sep 17 00:00:00 2001 From: "g.bernini" Date: Thu, 12 Sep 2024 10:05:51 +0200 Subject: [PATCH 06/18] updated oauth scope tests for subscriptions --- .../NFVMANOCimKeywords.robot | 26 ++++++++++++++++++- .../Subscriptions.robot | 25 ++++++++++++++++++ .../environment/variables.txt | 1 + 3 files changed, 51 insertions(+), 1 deletion(-) diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot index 536ff0948..f804ebac5 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot @@ -669,7 +669,31 @@ Get all Subscriptions GET ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions ${output}= Output response Set Suite Variable ${response} ${output} - + +Get all Subscriptions with permitted authorization scope + [Documentation] The api consumer can use this method to query the list of active subscriptions to log management notifications + Set headers {"Accept": "application/json"} + Set headers {"Content-Type": "application/json"} + ${scopeValue}= Create Dictionary scope=${SUBSCRIPTIONS_PERMITTED_SCOPE} + ${authorizationToken}= JWT Encode payload=${scopeValue} key='' algorithm=${OAUTH_ENCRIPTION_ALGORITHM} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${authorizationToken}"} + Log Authorization Token: ${authorizationToken} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions + ${output}= Output response + Set Suite Variable ${response} ${output} + +Get all Subscriptions with not permitted authorization scope + [Documentation] The api consumer can use this method to query the list of active subscriptions to log management notifications + Set headers {"Accept": "application/json"} + Set headers {"Content-Type": "application/json"} + ${scopeValue}= Create Dictionary scope=${NOT_PERMITTED_SCOPE} + ${authorizationToken}= JWT Encode payload=${scopeValue} key='' algorithm=${OAUTH_ENCRIPTION_ALGORITHM} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${authorizationToken}"} + Log Authorization Token: ${authorizationToken} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions + ${output}= Output response + Set Suite Variable ${response} ${output} + Get Subscriptions with attribute-based filters [Documentation] The api consumer can use this method to query the list of active subscriptions to log management notifications Set headers {"Accept": "${ACCEPT_JSON}"} diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/Subscriptions.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/Subscriptions.robot index cb3112859..11e52620a 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/Subscriptions.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/Subscriptions.robot @@ -185,3 +185,28 @@ POST Create a new subscription - Unprocessable Content Send Post Request for Subscription with Unreachable callbackUri Check HTTP Response Status Code Is 422 Check HTTP Response Body Json Schema Is ProblemDetails + +GET all Subscriptions with permitted authorization scope + [Documentation] Test ID: 8.3.1.10.14 + ... Test title: GET all Subscriptions with permitted authorization scope + ... Test objective: The objective is to test the retrieval list of active subscriptions of API consumer when a permitted authorization scope is used. + ... Pre-conditions: At least one subscription is available in the NFV-MANO. + ... Reference: clause 5.5.4.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Get all Subscriptions with permitted authorization scope + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is CimSubscriptions + +GET all Subscriptions with not permitted authorization scope + [Documentation] Test ID: 8.3.1.10.15 + ... Test title: GET all Subscriptions with not permitted authorization scope + ... Test objective: The objective is to test the retrieval list of active subscriptions of API consumer ffails when a not permitted authorization scope is used. + ... Pre-conditions: At least one subscription is available in the NFV-MANO. + ... Reference: clause 5.5.4.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Get all Subscriptions with not permitted authorization scope + Check HTTP Response Status Code Is 401 diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt b/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt index 683cf6f2a..88ddb23a6 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt @@ -14,6 +14,7 @@ ${ENTITY_PERMITTED_SCOPE} nfvpolicy:v2:mano_entity_info ${ENTITY_NOT_PERMITTED_SCOPE} nfvpolicy:v2:mano_entity_info:readonly ${PEER_PERMITTED_SCOPE} nfvpolicy:v2:peer_entity_info ${PEER_NOT_PERMITTED_SCOPE} nfvpolicy:v2:peer_entity_info:readonly +${SUBSCRIPTIONS_PERMITTED_SCOPE} nfvpolicy:v2:subscriptions ${NOT_PERMITTED_SCOPE} nfvpolicy:v2:policies:invalid ${CONTENT_TYPE_JSON} application/json -- GitLab From 8d8a749323a4c153cfcfeb07ae5a7ace038e69f1 Mon Sep 17 00:00:00 2001 From: "g.bernini" Date: Thu, 12 Sep 2024 10:09:02 +0200 Subject: [PATCH 07/18] updated oauth scope tests for individual subscriptions --- .../IndividualSubscription.robot | 28 +++++++++++++++++++ .../NFVMANOCimKeywords.robot | 20 +++++++++++++ 2 files changed, 48 insertions(+) diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualSubscription.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualSubscription.robot index f1e090523..906529464 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualSubscription.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualSubscription.robot @@ -93,3 +93,31 @@ PATCH Individual Subscription - Method not implemented ... Post-Conditions: none Send Patch request for individual Subscription Check HTTP Response Status Code Is 405 + +GET Individual Subscription with permitted authorization scope + [Documentation] Test ID: 8.3.1.11.8 + ... Test title: GET Individual Subscription with permitted authorization scope + ... Test objective: The objective is to test the retrieval of individual subscription when a permitted authorization scope is used. + ... Pre-conditions: At least one subscription is available in the NFV-MANO. + ... Reference: clause 5.5.5.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Get Individual Subscription with permitted authorization scope + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is CimSubscription + Check HTTP Response Body Subscription Identifier matches the requested Subscription + +GET Individual Subscription with not permitted authorization scope + [Documentation] Test ID: 8.3.1.11.9 + ... Test title: GET Individual Subscription with not permitted authorization scope + ... Test objective: The objective is to test the retrieval of individual subscription fails when a not permitted authorization scope is used. + ... Pre-conditions: At least one subscription is available in the NFV-MANO. + ... Reference: clause 5.5.5.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Get Individual Subscription with not permitted authorization scope + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is CimSubscription + Check HTTP Response Body Subscription Identifier matches the requested Subscription \ No newline at end of file diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot index f804ebac5..cd6b62062 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot @@ -809,6 +809,26 @@ Get Individual Subscription GET ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions/${subscriptionId} ${output}= Output response Set Suite Variable ${response} ${output} + +Get Individual Subscription with permitted authorization scope + Set headers {"Accept": "${ACCEPT_JSON}"} + ${scopeValue}= Create Dictionary scope=${SUBSCRIPTIONS_PERMITTED_SCOPE} + ${authorizationToken}= JWT Encode payload=${scopeValue} key='' algorithm=${OAUTH_ENCRIPTION_ALGORITHM} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${authorizationToken}"} + Log Authorization Token: ${authorizationToken} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions/${subscriptionId} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Get Individual Subscription with not permitted authorization scope + Set headers {"Accept": "${ACCEPT_JSON}"} + ${scopeValue}= Create Dictionary scope=${NOT_PERMITTED_SCOPE} + ${authorizationToken}= JWT Encode payload=${scopeValue} key='' algorithm=${OAUTH_ENCRIPTION_ALGORITHM} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${authorizationToken}"} + Log Authorization Token: ${authorizationToken} + GET ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions/${subscriptionId} + ${output}= Output response + Set Suite Variable ${response} ${output} Check HTTP Response Body Subscription Identifier matches the requested Subscription Log Trying to check response ID -- GitLab From c7d47c34667935851858a91f84717a9b42f00f7c Mon Sep 17 00:00:00 2001 From: "g.bernini" Date: Thu, 12 Sep 2024 10:19:57 +0200 Subject: [PATCH 08/18] added oauth scope tests for change nfv mano entity state task --- .../ChangeNFVMANOEntityStateTask.robot | 30 ++++++++++++++++++- .../NFVMANOCimKeywords.robot | 26 ++++++++++++++++ .../environment/variables.txt | 1 + 3 files changed, 56 insertions(+), 1 deletion(-) diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeNFVMANOEntityStateTask.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeNFVMANOEntityStateTask.robot index e6e8b9b45..97e60466d 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeNFVMANOEntityStateTask.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeNFVMANOEntityStateTask.robot @@ -80,4 +80,32 @@ DELETE NFV-MANO functional entity application state change - Method not implemen ... Applicability: none ... Post-Conditions: none Send Delete request for NFV-MANO functional entity application state change - Check HTTP Response Status Code Is 405 \ No newline at end of file + Check HTTP Response Status Code Is 405 + +POST NFV-MANO functional entity application state change with permitted authorization scope + [Documentation] Test ID: 8.3.1.2.7 + ... Test title: POST NFV-MANO functional entity application state change with permitted authorization scope + ... Test objective: The objective is to test a state change of the NFV-MANO functional entity application with permitted authorization scope. + ... Pre-conditions: none + ... Reference: clause 5.5.7.3.1 - ETSI GS NFV-SOL 009 [7] v4.5.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: entity status changed + Send Post request for NFV-MANO functional entity application state change with permitted authorization scope + Check HTTP Response Status Code Is 202 + Check HTTP Response Header Contains Location + Wait for entity state change success notification and validate status + +POST NFV-MANO functional entity application state change with not permitted authorization scope + [Documentation] Test ID: 8.3.1.2.8 + ... Test title: POST NFV-MANO functional entity application state change with not permitted authorization scope + ... Test objective: The objective is to test that state change of the NFV-MANO functional entity application fails with not permitted authorization scope. + ... Pre-conditions: none + ... Reference: clause 5.5.7.3.1 - ETSI GS NFV-SOL 009 [7] v4.5.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: entity status changed + Send Post request for NFV-MANO functional entity application state change with not permitted authorization scope + Check HTTP Response Status Code Is 202 + Check HTTP Response Header Contains Location + Wait for entity state change success notification and validate status \ No newline at end of file diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot index cd6b62062..cd8c9b10d 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot @@ -107,6 +107,32 @@ Send Post request for NFV-MANO functional entity application state change POST ${apiRoot}/${apiName}/${apiMajorVersion}/mano_entity/change_state ${output}= Output response Set Suite Variable ${response} ${output} + +Send Post request for NFV-MANO functional entity application state change with permitted authorization scope + Log Trying to perform a POST for NFV-MANO functional entity application state change + Set Headers {"Accept": "${ACCEPT_JSON}"} + ${scopeValue}= Create Dictionary scope=${CHANGE_STATE_PERMITTED_SCOPE} + ${authorizationToken}= JWT Encode payload=${scopeValue} key='' algorithm=${OAUTH_ENCRIPTION_ALGORITHM} + Log Authorization Token: ${authorizationToken} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${authorizationToken}"} + ${template}= Get File jsons/ChangeStateRequest.json + ${body}= Format String ${template} state=${state} stateAction=${stateAction} + POST ${apiRoot}/${apiName}/${apiMajorVersion}/mano_entity/change_state + ${output}= Output response + Set Suite Variable ${response} ${output} + +Send Post request for NFV-MANO functional entity application state change with not permitted authorization scope + Log Trying to perform a POST for NFV-MANO functional entity application state change + Set Headers {"Accept": "${ACCEPT_JSON}"} + ${scopeValue}= Create Dictionary scope=${NOT_PERMITTED_SCOPE} + ${authorizationToken}= JWT Encode payload=${scopeValue} key='' algorithm=${OAUTH_ENCRIPTION_ALGORITHM} + Log Authorization Token: ${authorizationToken} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${authorizationToken}"} + ${template}= Get File jsons/ChangeStateRequest.json + ${body}= Format String ${template} state=${state} stateAction=${stateAction} + POST ${apiRoot}/${apiName}/${apiMajorVersion}/mano_entity/change_state + ${output}= Output response + Set Suite Variable ${response} ${output} Wait for entity state change success notification and validate status Wait Until Keyword Succeeds ${retry} ${polling} Check entity state diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt b/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt index 88ddb23a6..5452d0d80 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt @@ -15,6 +15,7 @@ ${ENTITY_NOT_PERMITTED_SCOPE} nfvpolicy:v2:mano_entity_info:readonly ${PEER_PERMITTED_SCOPE} nfvpolicy:v2:peer_entity_info ${PEER_NOT_PERMITTED_SCOPE} nfvpolicy:v2:peer_entity_info:readonly ${SUBSCRIPTIONS_PERMITTED_SCOPE} nfvpolicy:v2:subscriptions +${CHANGE_STATE_PERMITTED_SCOPE} nfvpolicy:v2:change_state ${NOT_PERMITTED_SCOPE} nfvpolicy:v2:policies:invalid ${CONTENT_TYPE_JSON} application/json -- GitLab From 6d44ccb4e5356919867dcb41355553028858e60b Mon Sep 17 00:00:00 2001 From: "g.bernini" Date: Thu, 12 Sep 2024 10:23:43 +0200 Subject: [PATCH 09/18] updated test change nfv mano entity state task --- .../ChangeNFVMANOEntityStateTask.robot | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeNFVMANOEntityStateTask.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeNFVMANOEntityStateTask.robot index 97e60466d..450faa092 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeNFVMANOEntityStateTask.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeNFVMANOEntityStateTask.robot @@ -106,6 +106,4 @@ POST NFV-MANO functional entity application state change with not permitted auth ... Applicability: none ... Post-Conditions: entity status changed Send Post request for NFV-MANO functional entity application state change with not permitted authorization scope - Check HTTP Response Status Code Is 202 - Check HTTP Response Header Contains Location - Wait for entity state change success notification and validate status \ No newline at end of file + Check HTTP Response Status Code Is 401 \ No newline at end of file -- GitLab From bc29bb1adb2fd7f2c7d2f7846ca7c02dabd6763b Mon Sep 17 00:00:00 2001 From: "g.bernini" Date: Thu, 12 Sep 2024 10:26:45 +0200 Subject: [PATCH 10/18] added oauth scope tests for change state op occ state task --- .../ChangeStateOperationOccurrences.robot | 25 +++++++++++++++++++ .../NFVMANOCimKeywords.robot | 24 ++++++++++++++++++ .../environment/variables.txt | 1 + 3 files changed, 50 insertions(+) diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeStateOperationOccurrences.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeStateOperationOccurrences.robot index 0e29977cc..c2a19e674 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeStateOperationOccurrences.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeStateOperationOccurrences.robot @@ -198,3 +198,28 @@ DELETE Change State Operation Occurrences - Method not implemented ... Post-Conditions: none Send Delete request for Change State Operation Occurrences Check HTTP Response Status Code Is 405 + +GET Change State Operation Occurrences with permitted authorization scope + [Documentation] Test ID: 8.3.1.3.2 + ... Test title: GET Change State Operation Occurrences with permitted authorization scope + ... Test objective: The objective is to query status information about multiple change state operation occurrences with permitted authorization scope. + ... Pre-conditions: none + ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Get Change State Operation Occurrences with permitted authorization scope + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is ChangeStateOpOccs + +GET Change State Operation Occurrences with not permitted authorization scope + [Documentation] Test ID: 8.3.1.3.2 + ... Test title: GET Change State Operation Occurrences with not permitted authorization scope + ... Test objective: The objective is to query status information about multiple change state operation occurrences and verify the failure when using a not permitted authorization scope. + ... Pre-conditions: none + ... Reference: clause 5.5.8.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Get Change State Operation Occurrences with not permitted authorization scope + Check HTTP Response Status Code Is 401 diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot index cd8c9b10d..62c3d9e50 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot @@ -198,6 +198,30 @@ Get Change State Operation Occurrences Get ${apiRoot}/${apiName}/${apiMajorVersion}/change_state_ops ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} + +Get Change State Operation Occurrences with permitted authorization scope + Log Query to GET information about multiple change state operation occurrences. + Set Headers {"Accept":"${ACCEPT_JSON}"} + ${scopeValue}= Create Dictionary scope=${CHANGE_STATE_OPS_PERMITTED_SCOPE} + ${authorizationToken}= JWT Encode payload=${scopeValue} key='' algorithm=${OAUTH_ENCRIPTION_ALGORITHM} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${authorizationToken}"} + Log Authorization Token: ${authorizationToken} + Log Execute Query and validate response + Get ${apiRoot}/${apiName}/${apiMajorVersion}/change_state_ops + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Get Change State Operation Occurrences with not permitted authorization scope + Log Query to GET information about multiple change state operation occurrences. + Set Headers {"Accept":"${ACCEPT_JSON}"} + ${scopeValue}= Create Dictionary scope=${NOT_PERMITTED_SCOPE} + ${authorizationToken}= JWT Encode payload=${scopeValue} key='' algorithm=${OAUTH_ENCRIPTION_ALGORITHM} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${authorizationToken}"} + Log Authorization Token: ${authorizationToken} + Log Execute Query and validate response + Get ${apiRoot}/${apiName}/${apiMajorVersion}/change_state_ops + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} Get Change State Operation Occurrences with invalid filter Set Headers {"Accept":"${ACCEPT_JSON}"} diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt b/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt index 5452d0d80..eb21556a0 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt @@ -16,6 +16,7 @@ ${PEER_PERMITTED_SCOPE} nfvpolicy:v2:peer_entity_info ${PEER_NOT_PERMITTED_SCOPE} nfvpolicy:v2:peer_entity_info:readonly ${SUBSCRIPTIONS_PERMITTED_SCOPE} nfvpolicy:v2:subscriptions ${CHANGE_STATE_PERMITTED_SCOPE} nfvpolicy:v2:change_state +${CHANGE_STATE_OPS_PERMITTED_SCOPE} nfvpolicy:v2:change_state_ops ${NOT_PERMITTED_SCOPE} nfvpolicy:v2:policies:invalid ${CONTENT_TYPE_JSON} application/json -- GitLab From 620891e2f732559dc6e785160f0b4b652bc5f6e8 Mon Sep 17 00:00:00 2001 From: "g.bernini" Date: Thu, 12 Sep 2024 10:31:14 +0200 Subject: [PATCH 11/18] fix --- .../ChangeStateOperationOccurrences.robot | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeStateOperationOccurrences.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeStateOperationOccurrences.robot index c2a19e674..03058d004 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeStateOperationOccurrences.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeStateOperationOccurrences.robot @@ -200,7 +200,7 @@ DELETE Change State Operation Occurrences - Method not implemented Check HTTP Response Status Code Is 405 GET Change State Operation Occurrences with permitted authorization scope - [Documentation] Test ID: 8.3.1.3.2 + [Documentation] Test ID: 8.3.1.3.16 ... Test title: GET Change State Operation Occurrences with permitted authorization scope ... Test objective: The objective is to query status information about multiple change state operation occurrences with permitted authorization scope. ... Pre-conditions: none @@ -213,7 +213,7 @@ GET Change State Operation Occurrences with permitted authorization scope Check HTTP Response Body Json Schema Is ChangeStateOpOccs GET Change State Operation Occurrences with not permitted authorization scope - [Documentation] Test ID: 8.3.1.3.2 + [Documentation] Test ID: 8.3.1.3.17 ... Test title: GET Change State Operation Occurrences with not permitted authorization scope ... Test objective: The objective is to query status information about multiple change state operation occurrences and verify the failure when using a not permitted authorization scope. ... Pre-conditions: none -- GitLab From caff35feb935316b3c662cbb3266c8e2d3f8917b Mon Sep 17 00:00:00 2001 From: "g.bernini" Date: Thu, 12 Sep 2024 10:35:38 +0200 Subject: [PATCH 12/18] added oauth scope tests for individual change state op occ state task --- ...vidualStateChangeOperationOccurrence.robot | 28 ++++++++++++++++++- .../NFVMANOCimKeywords.robot | 27 ++++++++++++++++-- 2 files changed, 52 insertions(+), 3 deletions(-) diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualStateChangeOperationOccurrence.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualStateChangeOperationOccurrence.robot index 8d953e5a4..0227dd086 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualStateChangeOperationOccurrence.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualStateChangeOperationOccurrence.robot @@ -79,4 +79,30 @@ DELETE Individual Change State Operation Occurrence - Method not implemented ... Applicability: none ... Post-Conditions: none Send Delete request for Individual Change State Operation Occurrence - Check HTTP Response Status Code Is 405 \ No newline at end of file + Check HTTP Response Status Code Is 405 + +GET Individual Change State Operation Occurrence with permitted authorization scope + [Documentation] Test ID: 8.3.1.4.7 + ... Test title: GET Individual Change State Operation Occurrence with permitted authorization scope + ... Test objective: The objective is to query status information about Individual change state operation occurrence with permitted authorization scope. + ... Pre-conditions: none + ... Reference: clause 5.5.9.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Get Individual Change State Operation Occurrence with permitted authorization scope + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is ChangeStateOpOcc + +GET Individual Change State Operation Occurrence with not permitted authorization scope + [Documentation] Test ID: 8.3.1.4.8 + ... Test title: GET Individual Change State Operation Occurrence with not permitted authorization scope + ... Test objective: The objective is test that the query status information about Individual change state operation occurrence fails with not permitted authorization scope. + ... Pre-conditions: none + ... Reference: clause 5.5.9.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Get Individual Change State Operation Occurrence with not permitted authorization scope + Check HTTP Response Status Code Is 401 + diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot index 62c3d9e50..176380ca9 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot @@ -332,11 +332,34 @@ Get Individual Change State Operation Occurrence Get ${apiRoot}/${apiName}/${apiMajorVersion}/change_state_ops/${changeStateOpOccId} ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} - + + +Get Individual Change State Operation Occurrence with permitted authorization scope + Log Query to GET information about individual change state operation occurrences. + Set Headers {"Accept":"${ACCEPT_JSON}"} + ${scopeValue}= Create Dictionary scope=${CHANGE_STATE_OPS_PERMITTED_SCOPE} + ${authorizationToken}= JWT Encode payload=${scopeValue} key='' algorithm=${OAUTH_ENCRIPTION_ALGORITHM} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${authorizationToken}"} + Log Execute Query and validate response + Get ${apiRoot}/${apiName}/${apiMajorVersion}/change_state_ops/${changeStateOpOccId} + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Get Individual Change State Operation Occurrence with not permitted authorization scope + Log Query to GET information about individual change state operation occurrences. + Set Headers {"Accept":"${ACCEPT_JSON}"} + ${scopeValue}= Create Dictionary scope=${NOT_PERMITTED_SCOPE} + ${authorizationToken}= JWT Encode payload=${scopeValue} key='' algorithm=${OAUTH_ENCRIPTION_ALGORITHM} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${authorizationToken}"} + Log Execute Query and validate response + Get ${apiRoot}/${apiName}/${apiMajorVersion}/change_state_ops/${changeStateOpOccId} + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + Send Put request for Individual Change State Operation Occurrence log Trying to perform a PUT. This method should not be implemented Set Headers {"Accept":"${ACCEPT_JSON}"} - Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Put ${apiRoot}/${apiName}/${apiMajorVersion}/change_state_ops/${changeStateOpOccId} ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -- GitLab From 9fa790f5c6a3ea3b37eacabeeb1e8656d26b78c4 Mon Sep 17 00:00:00 2001 From: "g.bernini" Date: Thu, 12 Sep 2024 10:40:52 +0200 Subject: [PATCH 13/18] added oauth scope tests for mano service interfaces --- .../NFVMANOCimKeywords.robot | 24 +++++++++++++++++ .../NFVMANOServiceInterfaces.robot | 27 ++++++++++++++++++- 2 files changed, 50 insertions(+), 1 deletion(-) diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot index 176380ca9..f68611fc9 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot @@ -396,6 +396,30 @@ Get NFV-MANO Service Interfaces Get ${apiRoot}/${apiName}/${apiMajorVersion}/mano_entity/mano_interfaces ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} + +Get NFV-MANO Service Interfaces with permitted authorization scope + Log Query to GET information about multiple NFV-MANO service interfaces of the NFV-MANO functional entity. + Set Headers {"Accept":"${ACCEPT_JSON}"} + ${scopeValue}= Create Dictionary scope=${ENTITY_PERMITTED_SCOPE} + ${authorizationToken}= JWT Encode payload=${scopeValue} key='' algorithm=${OAUTH_ENCRIPTION_ALGORITHM} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${authorizationToken}"} + Log Authorization Token: ${authorizationToken} + Log Execute Query and validate response + Get ${apiRoot}/${apiName}/${apiMajorVersion}/mano_entity/mano_interfaces + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Get NFV-MANO Service Interfaces with not permitted authorization scope + Log Query to GET information about multiple NFV-MANO service interfaces of the NFV-MANO functional entity. + Set Headers {"Accept":"${ACCEPT_JSON}"} + ${scopeValue}= Create Dictionary scope=${NOT_PERMITTED_SCOPE} + ${authorizationToken}= JWT Encode payload=${scopeValue} key='' algorithm=${OAUTH_ENCRIPTION_ALGORITHM} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${authorizationToken}"} + Log Authorization Token: ${authorizationToken} + Log Execute Query and validate response + Get ${apiRoot}/${apiName}/${apiMajorVersion}/mano_entity/mano_interfaces + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} Get NFV-MANO Service Interfaces with invalid filter Set Headers {"Accept":"${ACCEPT_JSON}"} diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOServiceInterfaces.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOServiceInterfaces.robot index 51954ae9b..f9fd44d8c 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOServiceInterfaces.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOServiceInterfaces.robot @@ -197,4 +197,29 @@ DELETE NFV-MANO Service Interfaces - Method not implemented ... Applicability: none ... Post-Conditions: none Send Delete request for NFV-MANO Service Interfaces - Check HTTP Response Status Code Is 405 \ No newline at end of file + Check HTTP Response Status Code Is 405 + +GET NFV-MANO Service Interfaces with permitted authorization scope + [Documentation] Test ID: 8.3.1.5.16 + ... Test title: GET NFV-MANO Service Interfaces with permitted authorization scope + ... Test objective: The objective is to query status information about multiple NFV-MANO service interfaces of the NFV-MANO functional entity with permitted authorization scope. + ... Pre-conditions: none + ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Get NFV-MANO Service Interfaces with permitted authorization scope + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is ManoServiceInterfaces + +GET NFV-MANO Service Interfaces with not permitted authorization scope + [Documentation] Test ID: 8.3.1.5.17 + ... Test title: GET NFV-MANO Service Interfaces with not permitted authorization scope + ... Test objective: The objective is test that the query status information about multiple NFV-MANO service interfaces of the NFV-MANO functional entity fails when using not permitted authorization scope. + ... Pre-conditions: none + ... Reference: clause 5.5.10.3.2 - ETSI GS NFV-SOL 009 [7] v4.5.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: none + Get NFV-MANO Service Interfaces with not permitted authorization scope + Check HTTP Response Status Code Is 401 \ No newline at end of file -- GitLab From 93e3627b9dabe3affe3bb274789a542c2e3f95ce Mon Sep 17 00:00:00 2001 From: "g.bernini" Date: Thu, 12 Sep 2024 10:45:34 +0200 Subject: [PATCH 14/18] added oauth scope tests for individual mano service interfaces --- .../IndividualNFVMANOServiceInterface.robot | 26 +++++++++++++++++ .../NFVMANOCimKeywords.robot | 28 ++++++++++++++++++- 2 files changed, 53 insertions(+), 1 deletion(-) diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualNFVMANOServiceInterface.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualNFVMANOServiceInterface.robot index 9f41a7de9..c4aee2ba1 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualNFVMANOServiceInterface.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualNFVMANOServiceInterface.robot @@ -108,3 +108,29 @@ DELETE Individual NFV-MANO Service Interface - Method not implemented ... Post-Conditions: none Send Delete request for Individual NFV-MANO Service Interface Check HTTP Response Status Code Is 405 + +PATCH Individual NFV-MANO Service Interface with permitted authorization scope + [Documentation] Test ID: 8.3.1.6.9 + ... Test title: PATCH Individual NFV-MANO Service Interface with permitted authorization scope + ... Test objective: This method modifies the Individual NFV-MANO Service Interface resource with permitted authorization scope. + ... Pre-conditions: Individual NFV-MANO Service Interface resource is already created. + ... Reference: clause 5.5.11.3.4 - ETSI GS NFV-SOL 009 [7] v4.5.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: The Individual NFV-MANO Service Interface is modified by the operation + Send Patch request for Individual NFV-MANO Service Interface with permitted authorization scope + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is ManoServiceInterfaceModifications + +PATCH Individual NFV-MANO Service Interface with not permitted authorization scope + [Documentation] Test ID: 8.3.1.6.10 + ... Test title: PATCH Individual NFV-MANO Service Interface with not permitted authorization scope + ... Test objective: The objective is to test that modification of Individual NFV-MANO Service Interface resource fails with not permitted authorization scope. + ... Pre-conditions: Individual NFV-MANO Service Interface resource is already created. + ... Reference: clause 5.5.11.3.4 - ETSI GS NFV-SOL 009 [7] v4.5.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: The Individual NFV-MANO Service Interface is modified by the operation + Send Patch request for Individual NFV-MANO Service Interface with not permitted authorization scope + Check HTTP Response Status Code Is 401 + diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot index f68611fc9..f4ff581c5 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot @@ -526,7 +526,7 @@ Send Put request for Individual NFV-MANO Service Interface ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} -Send Patch request for Individual NFV-MANO Service Interface +Send Patch request for Individual NFV-MANO Service Interface log Trying to modify an NFV-MANO Entity Set Headers {"Accept":"${ACCEPT_JSON}"} Set Headers {"Content-Type": "${CONTENT_TYPE_PATCH}"} @@ -535,6 +535,32 @@ Send Patch request for Individual NFV-MANO Service Interface Patch ${apiRoot}/${apiName}/${apiMajorVersion}/mano_entity/mano_interfaces/${manoServiceInterfaceId} ${body} ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} + +Send Patch request for Individual NFV-MANO Service Interface with permitted authorization scope + log Trying to modify an NFV-MANO Entity + Set Headers {"Accept":"${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_PATCH}"} + ${scopeValue}= Create Dictionary scope=${ENTITY_PERMITTED_SCOPE} + ${authorizationToken}= JWT Encode payload=${scopeValue} key='' algorithm=${OAUTH_ENCRIPTION_ALGORITHM} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${authorizationToken}"} + Log Authorization Token: ${authorizationToken} + ${body}= Get File jsons/ManoServiceInterfaceModificationRequest.json + Patch ${apiRoot}/${apiName}/${apiMajorVersion}/mano_entity/mano_interfaces/${manoServiceInterfaceId} ${body} + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Send Patch request for Individual NFV-MANO Service Interface with not permitted authorization scope + log Trying to modify an NFV-MANO Entity + Set Headers {"Accept":"${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_PATCH}"} + ${scopeValue}= Create Dictionary scope=${ENTITY_NOT_PERMITTED_SCOPE} + ${authorizationToken}= JWT Encode payload=${scopeValue} key='' algorithm=${OAUTH_ENCRIPTION_ALGORITHM} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${authorizationToken}"} + Log Authorization Token: ${authorizationToken} + ${body}= Get File jsons/ManoServiceInterfaceModificationRequest.json + Patch ${apiRoot}/${apiName}/${apiMajorVersion}/mano_entity/mano_interfaces/${manoServiceInterfaceId} ${body} + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} Send Delete request for Individual NFV-MANO Service Interface log Trying to perform a DELETE. This method should not be implemented -- GitLab From 634e51c21d0e660cec97a26ce80e5d4b39bd5491 Mon Sep 17 00:00:00 2001 From: "g.bernini" Date: Thu, 12 Sep 2024 10:50:02 +0200 Subject: [PATCH 15/18] added oauth scope tests for change interface state task --- .../ChangeInterfaceStateTask.robot | 28 ++++++++++++++++++- .../NFVMANOCimKeywords.robot | 26 +++++++++++++++++ 2 files changed, 53 insertions(+), 1 deletion(-) diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeInterfaceStateTask.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeInterfaceStateTask.robot index eaa7da09c..256dc2157 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeInterfaceStateTask.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/ChangeInterfaceStateTask.robot @@ -81,4 +81,30 @@ DELETE Change interface state task - Conflict - Method not implemented ... Applicability: none ... Post-Conditions: none Send Delete request for Change interface state task - Check HTTP Response Status Code Is 405 \ No newline at end of file + Check HTTP Response Status Code Is 405 + +POST Change interface state task with permitted authorization scope + [Documentation] Test ID: 8.3.1.7.7 + ... Test title: POST Change interface state task with permitted authorization scope + ... Test objective: The objective is send put request to change the state of the NFV-MANO service interface with permitted authorization scope + ... Pre-conditions: none + ... Reference: clause 5.5.12.3.1 - ETSI GS NFV-SOL 009 [7] v4.5.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: interface status changed + Send Post request for Change interface state task with permitted authorization scope + Check HTTP Response Status Code Is 202 + Check HTTP Response Header Contains Location + Check PostCondition NFV-MANO service interface state matches the requested state + +POST Change interface state task with not permitted authorization scope + [Documentation] Test ID: 8.3.1.7.8 + ... Test title: POST Change interface state task with permitted authorization scope + ... Test objective: The objective is to verify that put request to change the state of the NFV-MANO service interface fails with not permitted authorization scope + ... Pre-conditions: none + ... Reference: clause 5.5.12.3.1 - ETSI GS NFV-SOL 009 [7] v4.5.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: interface status changed + Send Post request for Change interface state task with not permitted authorization scope + Check HTTP Response Status Code Is 401 \ No newline at end of file diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot index f4ff581c5..91ae676cf 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot @@ -579,6 +579,32 @@ Send Post request for Change interface state task POST ${apiRoot}/${apiName}/${apiMajorVersion}/mano_entity/mano_interfaces/${manoServiceInterfaceId}/change_state ${body} ${output}= Output response Set Suite Variable ${response} ${output} + +Send Post request for Change interface state task with permitted authorization scope + Log Trying to perform a POST for Change interface state task + Set Headers {"Accept": "${ACCEPT_JSON}"} + ${scopeValue}= Create Dictionary scope=${CHANGE_STATE_PERMITTED_SCOPE} + ${authorizationToken}= JWT Encode payload=${scopeValue} key='' algorithm=${OAUTH_ENCRIPTION_ALGORITHM} + Log Authorization Token: ${authorizationToken} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${authorizationToken}"} + ${template}= Get File jsons/ChangeStateRequest.json + ${body}= Format String ${template} state=${state} stateAction=${stateAction} + POST ${apiRoot}/${apiName}/${apiMajorVersion}/mano_entity/mano_interfaces/${manoServiceInterfaceId}/change_state ${body} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Send Post request for Change interface state task with not permitted authorization scope + Log Trying to perform a POST for Change interface state task + Set Headers {"Accept": "${ACCEPT_JSON}"} + ${scopeValue}= Create Dictionary scope=${NOT_PERMITTED_SCOPE} + ${authorizationToken}= JWT Encode payload=${scopeValue} key='' algorithm=${OAUTH_ENCRIPTION_ALGORITHM} + Log Authorization Token: ${authorizationToken} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${authorizationToken}"} + ${template}= Get File jsons/ChangeStateRequest.json + ${body}= Format String ${template} state=${state} stateAction=${stateAction} + POST ${apiRoot}/${apiName}/${apiMajorVersion}/mano_entity/mano_interfaces/${manoServiceInterfaceId}/change_state ${body} + ${output}= Output response + Set Suite Variable ${response} ${output} Check PostCondition NFV-MANO service interface state matches the requested state Wait Until Keyword Succeeds ${retry} ${polling} Check interface state -- GitLab From d52b68ec6a96e2ad81763a465af18d17a69e819a Mon Sep 17 00:00:00 2001 From: "g.bernini" Date: Thu, 12 Sep 2024 10:55:00 +0200 Subject: [PATCH 16/18] added oauth scope tests for peer entities --- .../NFVMANOCimKeywords.robot | 28 ++++++++++++++++- .../PeerEntities.robot | 30 +++++++++++++++++++ 2 files changed, 57 insertions(+), 1 deletion(-) diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot index 91ae676cf..cbf207729 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot @@ -663,7 +663,33 @@ Send Post request for Peer Entity POST ${apiRoot}/${apiName}/${apiMajorVersion}/peer_entities ${body} ${output}= Output response Set Suite Variable ${response} ${output} - + +Send Post request for Peer Entity with permitted authorization scope + Log Trying to perform a POST for Peer Entity + Set Headers {"Accept": "${ACCEPT_JSON}"} + ${scopeValue}= Create Dictionary scope=${PEER_PERMITTED_SCOPE} + ${authorizationToken}= JWT Encode payload=${scopeValue} key='' algorithm=${OAUTH_ENCRIPTION_ALGORITHM} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${authorizationToken}"} + Log Authorization Token: ${authorizationToken} + ${template}= Get File jsons/CreatePeerEntityRequest.json + ${body}= Format String ${template} peerEntityId=${peerEntityId} name=${name} type=${type} + POST ${apiRoot}/${apiName}/${apiMajorVersion}/peer_entities ${body} + ${output}= Output response + Set Suite Variable ${response} ${output} + +Send Post request for Peer Entity with not permitted authorization scope + Log Trying to perform a POST for Peer Entity + Set Headers {"Accept": "${ACCEPT_JSON}"} + ${scopeValue}= Create Dictionary scope=${PEER_NOT_PERMITTED_SCOPE} + ${authorizationToken}= JWT Encode payload=${scopeValue} key='' algorithm=${OAUTH_ENCRIPTION_ALGORITHM} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${authorizationToken}"} + Log Authorization Token: ${authorizationToken} + ${template}= Get File jsons/CreatePeerEntityRequest.json + ${body}= Format String ${template} peerEntityId=${peerEntityId} name=${name} type=${type} + POST ${apiRoot}/${apiName}/${apiMajorVersion}/peer_entities ${body} + ${output}= Output response + Set Suite Variable ${response} ${output} + Get Peer Entities Log Query to GET information about multiple peer entities. Set Headers {"Accept":"${ACCEPT_JSON}"} diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/PeerEntities.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/PeerEntities.robot index d8bf5a6e1..dac2d78fd 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/PeerEntities.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/PeerEntities.robot @@ -237,3 +237,33 @@ DELETE Peer Entities - Method not implemented ... Post-Conditions: none Send Delete request for Peer Entities Check HTTP Response Status Code Is 405 + +POST Peer Entity with permitted authorization scope + [Documentation] Test ID: 8.3.1.8.19 + ... Test title: POST Peer Entity with permitted authorization scope + ... Test objective: The objective is to create in the producer NFV-MANO functional entity a new peer entity resource with permitted authorization scope. + ... Pre-conditions: none + ... Reference: clause 5.5.13.3.1 - ETSI GS NFV-SOL 009 [7] v4.5.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: Peer Entity is created + Send Post request for Peer Entity with permitted authorization scope + Check HTTP Response Status Code Is 201 + Check HTTP Response Body Json Schema Is PeerEntity + Check HTTP Response Header Contains Location + Check Postcondition Peer Entity Resource is created + +POST Peer Entity with not permitted authorization scope + [Documentation] Test ID: 8.3.1.8.20 + ... Test title: POST Peer Entity with not permitted authorization scope + ... Test objective: The objective is to test that creation in the producer NFV-MANO functional entity of a new peer entity resource fails with not permitted authorization scope. + ... Pre-conditions: none + ... Reference: clause 5.5.13.3.1 - ETSI GS NFV-SOL 009 [7] v4.5.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: Peer Entity is created + Send Post request for Peer Entity with not permitted authorization scope + Check HTTP Response Status Code Is 201 + Check HTTP Response Body Json Schema Is PeerEntity + Check HTTP Response Header Contains Location + Check Postcondition Peer Entity Resource is created \ No newline at end of file -- GitLab From d89261c9cc45e0906a2165c98a683fe6dc8e3676 Mon Sep 17 00:00:00 2001 From: "g.bernini" Date: Thu, 12 Sep 2024 11:00:48 +0200 Subject: [PATCH 17/18] added oauth scope tests for individual peer entities --- .../IndividualPeerEntity.robot | 27 ++++++++++++++++++- .../NFVMANOCimKeywords.robot | 26 ++++++++++++++++++ 2 files changed, 52 insertions(+), 1 deletion(-) diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualPeerEntity.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualPeerEntity.robot index 035efc73f..fa7ed065a 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualPeerEntity.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/IndividualPeerEntity.robot @@ -106,4 +106,29 @@ DELETE Individual Peer Entity - Method not implemented ... Applicability: none ... Post-Conditions: none Send Delete request for Individual Peer Entity - Check HTTP Response Status Code Is 405 \ No newline at end of file + Check HTTP Response Status Code Is 405 + +PATCH Individual Peer Entity with permitted authorization scope + [Documentation] Test ID: 8.3.1.9.9 + ... Test title: PATCH Individual Peer Entity with permitted authorization scope + ... Test objective: This method modifies configuration and information of the producer NFV-MANO functional entity with permitted authorization scope. + ... Pre-conditions: At least one Peer Entity resource is created + ... Reference: clause 5.5.14.3.4 - ETSI GS NFV-SOL 009 [7] v4.5.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: Peer Entity Resource is modified by the operation + Send Patch request for Individual Peer Entity with permitted authorization scope + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is PeerEntityConfigModifications + +PATCH Individual Peer Entity with not permitted authorization scope + [Documentation] Test ID: 8.3.1.9.10 + ... Test title: PATCH Individual Peer Entity with not permitted authorization scope + ... Test objective: This method tests that modification of configuration and information of the producer NFV-MANO functional entity fails with not permitted authorization scope. + ... Pre-conditions: At least one Peer Entity resource is created + ... Reference: clause 5.5.14.3.4 - ETSI GS NFV-SOL 009 [7] v4.5.1 + ... Config ID: Config_prod_NFV-MANO + ... Applicability: none + ... Post-Conditions: Peer Entity Resource is modified by the operation + Send Patch request for Individual Peer Entity with not permitted authorization scope + Check HTTP Response Status Code Is 401 \ No newline at end of file diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot index cbf207729..a14ce3a30 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/NFVMANOCimKeywords.robot @@ -813,6 +813,32 @@ Send Patch request for Individual Peer Entity Patch ${apiRoot}/${apiName}/${apiMajorVersion}/peer_entities/${peerEntityId} ${body} ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} + +Send Patch request for Individual Peer Entity with permitted authorization scope + log Trying to modify an NFV-MANO Entity + Set Headers {"Accept":"${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_PATCH}"} + ${scopeValue}= Create Dictionary scope=${PEER_NOT_PERMITTED_SCOPE} + ${authorizationToken}= JWT Encode payload=${scopeValue} key='' algorithm=${OAUTH_ENCRIPTION_ALGORITHM} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${authorizationToken}"} + Log Authorization Token: ${authorizationToken} + ${body}= Get File jsons/PeerEntityConfigModificationRequest.json + Patch ${apiRoot}/${apiName}/${apiMajorVersion}/peer_entities/${peerEntityId} ${body} + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Send Patch request for Individual Peer Entity with not permitted authorization scope + log Trying to modify an NFV-MANO Entity + Set Headers {"Accept":"${ACCEPT_JSON}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_PATCH}"} + ${scopeValue}= Create Dictionary scope=${PEER_NOT_PERMITTED_SCOPE} + ${authorizationToken}= JWT Encode payload=${scopeValue} key='' algorithm=${OAUTH_ENCRIPTION_ALGORITHM} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${authorizationToken}"} + Log Authorization Token: ${authorizationToken} + ${body}= Get File jsons/PeerEntityConfigModificationRequest.json + Patch ${apiRoot}/${apiName}/${apiMajorVersion}/peer_entities/${peerEntityId} ${body} + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} Send Delete request for Individual Peer Entity log Trying to perform a DELETE. This method should not be implemented -- GitLab From 864e67c010fe0041a320d599f97c9e7ff8ef7603 Mon Sep 17 00:00:00 2001 From: "g.bernini" Date: Thu, 12 Sep 2024 11:14:50 +0200 Subject: [PATCH 18/18] fixed scope attribute variables --- .../environment/variables.txt | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt b/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt index eb21556a0..843004f34 100644 --- a/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt +++ b/SOL009/NFVManoConfigurationAndInformationManagement-API/environment/variables.txt @@ -10,14 +10,14 @@ ${AUTHORIZATION_HEADER} Authorization ${BAD_AUTHORIZATION_TOKEN} Bear sometoken ${OAUTH_ENCRIPTION_ALGORITHM} HS256 -${ENTITY_PERMITTED_SCOPE} nfvpolicy:v2:mano_entity_info -${ENTITY_NOT_PERMITTED_SCOPE} nfvpolicy:v2:mano_entity_info:readonly -${PEER_PERMITTED_SCOPE} nfvpolicy:v2:peer_entity_info -${PEER_NOT_PERMITTED_SCOPE} nfvpolicy:v2:peer_entity_info:readonly -${SUBSCRIPTIONS_PERMITTED_SCOPE} nfvpolicy:v2:subscriptions -${CHANGE_STATE_PERMITTED_SCOPE} nfvpolicy:v2:change_state -${CHANGE_STATE_OPS_PERMITTED_SCOPE} nfvpolicy:v2:change_state_ops -${NOT_PERMITTED_SCOPE} nfvpolicy:v2:policies:invalid +${ENTITY_PERMITTED_SCOPE} nfvmanocim:v2:mano_entity_info +${ENTITY_NOT_PERMITTED_SCOPE} nfvmanocim:v2:mano_entity_info:readonly +${PEER_PERMITTED_SCOPE} nfvmanocim:v2:peer_entity_info +${PEER_NOT_PERMITTED_SCOPE} nfvmanocim:v2:peer_entity_info:readonly +${SUBSCRIPTIONS_PERMITTED_SCOPE} nfvmanocim:v2:subscriptions +${CHANGE_STATE_PERMITTED_SCOPE} nfvmanocim:v2:change_state +${CHANGE_STATE_OPS_PERMITTED_SCOPE} nfvmanocim:v2:change_state_ops +${NOT_PERMITTED_SCOPE} nfvmanocim:v2:policies:invalid ${CONTENT_TYPE_JSON} application/json ${ACCEPT_JSON} application/json @@ -78,4 +78,4 @@ ${stateAction} START ${retry} 2 min ${polling} 10 sec -${callbackResp} 127.0.0.1 \ No newline at end of file +${callbackResp} 127.0.0.1 -- GitLab