From 4cbca6b12fd7407d49c62ccdb9af4064e8afd4ec Mon Sep 17 00:00:00 2001 From: Abbas Ahmad Date: Mon, 18 Mar 2019 05:41:28 +0100 Subject: [PATCH] Advancement in SOL005 test for NS LCM --- .../CancelOperationTask.robot | 46 +++ .../ContinueOperationTask.robot | 44 +++ .../FailOperationTask.robot | 45 +++ .../IndividualNSLCMOccurences.robot | 33 ++ .../NSLCMOccurences.robot | 2 - .../NSLCMOperationKeywords.robot | 340 +++++++++++++++++- .../RetryOperationTask.robot | 45 +++ .../RollbackOperationTask.robot | 45 +++ .../Subscriptions.robot | 51 +++ .../environment/variables.txt | 4 +- .../jsons/LccnSubscriptionRequest.json | 10 + .../schemas/subscription.schema.json | 181 ++++++++++ .../schemas/subscriptions.schema.json | 145 ++++++++ 13 files changed, 982 insertions(+), 9 deletions(-) create mode 100644 SOL005/NSLifecycleManagement-API/CancelOperationTask.robot create mode 100644 SOL005/NSLifecycleManagement-API/ContinueOperationTask.robot create mode 100644 SOL005/NSLifecycleManagement-API/FailOperationTask.robot create mode 100644 SOL005/NSLifecycleManagement-API/IndividualNSLCMOccurences.robot create mode 100644 SOL005/NSLifecycleManagement-API/RetryOperationTask.robot create mode 100644 SOL005/NSLifecycleManagement-API/RollbackOperationTask.robot create mode 100644 SOL005/NSLifecycleManagement-API/Subscriptions.robot create mode 100644 SOL005/NSLifecycleManagement-API/jsons/LccnSubscriptionRequest.json create mode 100644 SOL005/NSLifecycleManagement-API/schemas/subscription.schema.json create mode 100644 SOL005/NSLifecycleManagement-API/schemas/subscriptions.schema.json diff --git a/SOL005/NSLifecycleManagement-API/CancelOperationTask.robot b/SOL005/NSLifecycleManagement-API/CancelOperationTask.robot new file mode 100644 index 00000000..6c061315 --- /dev/null +++ b/SOL005/NSLifecycleManagement-API/CancelOperationTask.robot @@ -0,0 +1,46 @@ +*** Settings *** +Resource environment/variables.txt +Resource NSLCMOperationKeywords.robot +Library REST ${NFVO_SCHEMA}://${NFVO_HOST}:${NFVO_PORT} +Library OperatingSystem +Library JSONLibrary +Library JSONSchemaLibrary schemas/ + +*** Test Cases *** +Post Cancel operation task + Depends on test Check resource FAILED_TEMP + Do POST Cancel operation task + Check HTTP Response Status Code Is 202 + +Post Cancel operation task Not Found + [Setup] Check Cancel not supported + Do POST Cancel operation task + Check HTTP Response Status Code Is 404 + Check HTTP Response Body Json Schema Is ProblemDetails.schema.json + +Post Cancel operation task Conflict + Depends on test failure Check resource FAILED_TEMP + Do POST Cancel operation task + Check HTTP Response Status Code Is 409 + Check HTTP Response Body Json Schema Is ProblemDetails.schema.json + +PUT Cancel operation task - Method not implemented + Do PUT Cancel operation task + Check HTTP Response Status Code Is 405 + +PATCH Cancel operation task - Method not implemented + Do PATCH Cancel operation task + Check HTTP Response Status Code Is 405 + +DELETE Cancel operation task - Method not implemented + Do DELETE Cancel operation task + Check HTTP Response Status Code Is 405 + +GET Cancel operation task - Method not implemented + Do GET Cancel operation task + Check HTTP Response Status Code Is 405 + + + + + \ No newline at end of file diff --git a/SOL005/NSLifecycleManagement-API/ContinueOperationTask.robot b/SOL005/NSLifecycleManagement-API/ContinueOperationTask.robot new file mode 100644 index 00000000..1e875314 --- /dev/null +++ b/SOL005/NSLifecycleManagement-API/ContinueOperationTask.robot @@ -0,0 +1,44 @@ +*** Settings *** +Resource environment/variables.txt +Resource NSLCMOperationKeywords.robot +Library REST ${NFVO_SCHEMA}://${NFVO_HOST}:${NFVO_PORT} +Library OperatingSystem +Library JSONLibrary +Library JSONSchemaLibrary schemas/ + +*** Test Cases *** +Post Continue operation task + Depends on test Check resource FAILED_TEMP + Do POST Continue operation task + Check HTTP Response Status Code Is 202 + +Post Continue operation task Not Found + [Setup] Check Continue not supported + Do POST Continue operation task + Check HTTP Response Status Code Is 404 + Check HTTP Response Body Json Schema Is ProblemDetails.schema.json + +Post Continue operation task Conflict + Depends on test failure Check resource FAILED_TEMP + Do POST Continue operation task + Check HTTP Response Status Code Is 409 + Check HTTP Response Body Json Schema Is ProblemDetails.schema.json + +PUT Continue operation task - Method not implemented + Do PUT Continue operation task + Check HTTP Response Status Code Is 405 + +PATCH Continue operation task - Method not implemented + Do PATCH Continue operation task + Check HTTP Response Status Code Is 405 + +DELETE Continue operation task - Method not implemented + Do DELETE Continue operation task + Check HTTP Response Status Code Is 405 + +GET Continue operation task - Method not implemented + Do GET Continue operation task + Check HTTP Response Status Code Is 405 + + + \ No newline at end of file diff --git a/SOL005/NSLifecycleManagement-API/FailOperationTask.robot b/SOL005/NSLifecycleManagement-API/FailOperationTask.robot new file mode 100644 index 00000000..bebe41fd --- /dev/null +++ b/SOL005/NSLifecycleManagement-API/FailOperationTask.robot @@ -0,0 +1,45 @@ +*** Settings *** +Resource environment/variables.txt +Resource NSLCMOperationKeywords.robot +Library REST ${NFVO_SCHEMA}://${NFVO_HOST}:${NFVO_PORT} +Library OperatingSystem +Library JSONLibrary +Library JSONSchemaLibrary schemas/ + +*** Test Cases *** +Post Fail operation task + Depends on test Check resource FAILED_TEMP + Do POST Fail operation task + Check HTTP Response Status Code Is 202 + +Post Fail operation task Not Found + [Setup] Check Fail not supported + Do POST Fail operation task + Check HTTP Response Status Code Is 404 + Check HTTP Response Body Json Schema Is ProblemDetails.schema.json + +Post Fail operation task Conflict + Depends on test failure Check resource FAILED_TEMP + Do POST Fail operation task + Check HTTP Response Status Code Is 409 + Check HTTP Response Body Json Schema Is ProblemDetails.schema.json + +PUT Fail operation task - Method not implemented + Do PUT Fail operation task + Check HTTP Response Status Code Is 405 + +PATCH Fail operation task - Method not implemented + Do PATCH Fail operation task + Check HTTP Response Status Code Is 405 + +DELETE Fail operation task - Method not implemented + Do DELETE Fail operation task + Check HTTP Response Status Code Is 405 + +GET Fail operation task - Method not implemented + Do GET Fail operation task + Check HTTP Response Status Code Is 405 + + + + \ No newline at end of file diff --git a/SOL005/NSLifecycleManagement-API/IndividualNSLCMOccurences.robot b/SOL005/NSLifecycleManagement-API/IndividualNSLCMOccurences.robot new file mode 100644 index 00000000..394dde94 --- /dev/null +++ b/SOL005/NSLifecycleManagement-API/IndividualNSLCMOccurences.robot @@ -0,0 +1,33 @@ +*** Settings *** +Resource environment/variables.txt +Resource NSLCMOperationKeywords.robot +Library REST ${NFVO_SCHEMA}://${NFVO_HOST}:${NFVO_PORT} +Library OperatingSystem +Library JSONLibrary +Library JSONSchemaLibrary schemas/ + +*** Test Cases *** +Post Individual NS LCM occurences - Method not implemented + Do POST Individual NS LCM OP Occurence + Check HTTP Response Status Code Is 405 + +PUT stauts information about Individual NS LCM OP OCC - Method not implemented + Do PUT Individual NS LCM OP Occurence + Check HTTP Response Status Code Is 405 + +PATCH stauts information about Individual NS LCM OP OCC - Method not implemented + Do PATCH Individual NS LCM OP Occurence + Check HTTP Response Status Code Is 405 + +DELETE stauts information about Individual NS LCM OP OCC - Method not implemented + Do DELETE Individual NS LCM OP Occurence + Check HTTP Response Status Code Is 405 + +Get stauts information about Individual NS LCM OP OCC + Do GET Individual NS LCN OP Occurence + Check HTTP Response Status Code Is 200 + Check HTTP Response Header ContentType is ${CONTENT_TYPE} + Check HTTP Response Body Json Schema Is NsLcmOpOcc.schema.json + + + \ No newline at end of file diff --git a/SOL005/NSLifecycleManagement-API/NSLCMOccurences.robot b/SOL005/NSLifecycleManagement-API/NSLCMOccurences.robot index 3edcb9ea..c50b22a8 100644 --- a/SOL005/NSLifecycleManagement-API/NSLCMOccurences.robot +++ b/SOL005/NSLifecycleManagement-API/NSLCMOccurences.robot @@ -23,7 +23,6 @@ DELETE stauts information about multiple NS LCM OP OCC - Method not implemented Do DELETE NS LCM OP Occurences Check HTTP Response Status Code Is 405 - Get stauts information about multiple NS LCM OP OCC Do GET NS LCN OP Occurences Check HTTP Response Status Code Is 200 @@ -35,7 +34,6 @@ Get stauts information about multiple NS LCM OP OCC Bad Request Invalid attribut Check HTTP Response Status Code Is 400 Check HTTP Response Body Json Schema Is ProblemDetails.schema.json - Get stauts information about multiple NS LCM OP OCC Bad Request Invalid attribute selector Do GET NS LCN OP Occurences Invalid attribute selector Check HTTP Response Status Code Is 400 diff --git a/SOL005/NSLifecycleManagement-API/NSLCMOperationKeywords.robot b/SOL005/NSLifecycleManagement-API/NSLCMOperationKeywords.robot index c540d080..b54ba101 100644 --- a/SOL005/NSLifecycleManagement-API/NSLCMOperationKeywords.robot +++ b/SOL005/NSLifecycleManagement-API/NSLCMOperationKeywords.robot @@ -6,6 +6,36 @@ Library JSONSchemaLibrary schemas/ Library OperatingSystem *** Keywords *** +Check Fail not supported + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Get ${apiRoot}/${apiName}/${apiVersion}/ns_lcm_op_occs/${nsLcmOpOccId} + # how to check if Fail is not supported? Also In Sol002 + +Check Cancel not supported + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Get ${apiRoot}/${apiName}/${apiVersion}/ns_lcm_op_occs/${nsLcmOpOccId} + # how to check if Cancel is not supported? Also In Sol002 + +Check Continue not supported + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Get ${apiRoot}/${apiName}/${apiVersion}/ns_lcm_op_occs/${nsLcmOpOccId} + # how to check if Continue is not supported? Also In Sol002 + +Check retry not supported + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Get ${apiRoot}/${apiName}/${apiVersion}/ns_lcm_op_occs/${nsLcmOpOccId} + # how to check if retry is not supported? Also In Sol002 + +Check Rollback not supported + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Get ${apiRoot}/${apiName}/${apiVersion}/ns_lcm_op_occs/${nsLcmOpOccId} + # how to check if rollback is not supported? Also In Sol002 + +Check resource FAILED_TEMP + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Get ${apiRoot}/${apiName}/${apiVersion}/ns_lcm_op_occs/${nsLcmOpOccId} + String response body operationState FAILED_TEMP + Check resource instantiated Set Headers {"Accept":"${ACCEPT}"} Set Headers {"Content-Type": "${CONTENT_TYPE}"} @@ -397,7 +427,7 @@ Do POST NS LCM OP Occurences Set Global Variable @{response} ${outputResponse} Do PUT NS LCM OP Occurences - log Trying to perform a POST. This method should not be implemented + log Trying to perform a PUT. This method should not be implemented Set Headers {"Accept":"${ACCEPT}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} Put ${apiRoot}/${apiName}/${apiVersion}/ns_lcm_op_occs @@ -405,7 +435,7 @@ Do PUT NS LCM OP Occurences Set Global Variable @{response} ${outputResponse} Do PATCH NS LCM OP Occurences - log Trying to perform a POST. This method should not be implemented + log Trying to perform a PATCH. This method should not be implemented Set Headers {"Accept":"${ACCEPT}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} Patch ${apiRoot}/${apiName}/${apiVersion}/ns_lcm_op_occs @@ -413,7 +443,7 @@ Do PATCH NS LCM OP Occurences Set Global Variable @{response} ${outputResponse} Do DELETE NS LCM OP Occurences - log Trying to perform a POST. This method should not be implemented + log Trying to perform a DELETE. This method should not be implemented Set Headers {"Accept":"${ACCEPT}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} Delete ${apiRoot}/${apiName}/${apiVersion}/ns_lcm_op_occs @@ -429,7 +459,7 @@ Do GET NS LCN OP Occurences ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} - Do GET NS LCN OP Occurences Invalid attribute-based filtering parameters +Do GET NS LCN OP Occurences Invalid attribute-based filtering parameters Log Query status information about multiple NS lifecycle management operation occurrences. Set Headers {"Accept":"${ACCEPT}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} @@ -444,4 +474,304 @@ Do GET NS LCN OP Occurences Invalid attribute selector GET ${apiRoot}/${apiName}/${apiVersion}/ns_lcm_op_occs?fields=wrong_field ${outputResponse}= Output response Set Global Variable @{response} ${outputResponse} - \ No newline at end of file + +Do POST Individual NS LCM OP Occurence + log Trying to perform a POST. This method should not be implemented + Set Headers {"Accept":"${ACCEPT}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Post ${apiRoot}/${apiName}/${apiVersion}/ns_lcm_op_occs/${nsLcmOpOccId} + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Do PUT Individual NS LCM OP Occurence + log Trying to perform a PUT. This method should not be implemented + Set Headers {"Accept":"${ACCEPT}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Put ${apiRoot}/${apiName}/${apiVersion}/ns_lcm_op_occs/${nsLcmOpOccId} + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Do PATCH Individual NS LCM OP Occurence + log Trying to perform a PATCH. This method should not be implemented + Set Headers {"Accept":"${ACCEPT}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Patch ${apiRoot}/${apiName}/${apiVersion}/ns_lcm_op_occs/${nsLcmOpOccId} + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Do DELETE Individual NS LCM OP Occurence + log Trying to perform a DELETE. This method should not be implemented + Set Headers {"Accept":"${ACCEPT}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Delete ${apiRoot}/${apiName}/${apiVersion}/ns_lcm_op_occs/${nsLcmOpOccId} + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Do GET Individual NS LCN OP Occurence + Log Query status information about individual NS lifecycle management operation occurrence. + Set Headers {"Accept":"${ACCEPT}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Log Execute Query and validate response + Get ${apiRoot}/${apiName}/${apiVersion}/ns_lcm_op_occs/${nsLcmOpOccId} + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Do GET Retry operation task + log Trying to perform a GET. This method should not be implemented + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Get ${apiRoot}/${apiName}/${apiVersion}/ns_lcm_op_occs/${nsLcmOpOccId}/retry + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Do PUT Retry operation task + log Trying to perform a PUT. This method should not be implemented + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Put ${apiRoot}/${apiName}/${apiVersion}/ns_lcm_op_occs/${nsLcmOpOccId}/retry + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Do PATCH Retry operation task + log Trying to perform a PATCH. This method should not be implemented + Set Headers {"Accept":"${ACCEPT}"} + Patch ${apiRoot}/${apiName}/${apiVersion}/ns_lcm_op_occs/${nsLcmOpOccId}/retry + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Do DELETE Retry operation task + log Trying to perform a DELETE. This method should not be implemented + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Delete ${apiRoot}/${apiName}/${apiVersion}/ns_lcm_op_occs/${nsLcmOpOccId}/retry + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Do POST Retry operation task + Log Retry a NS lifecycle operation if that operation has experienced a temporary failure + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Log Execute Query and validate response + Post ${apiRoot}/${apiName}/${apiVersion}/ns_lcm_op_occs/${nsLcmOpOccId}/retry + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Do GET Rollback operation task + log Trying to perform a GET. This method should not be implemented + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Get ${apiRoot}/${apiName}/${apiVersion}/ns_lcm_op_occs/${nsLcmOpOccId}/rollback + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Do PUT Rollback operation task + log Trying to perform a PUT. This method should not be implemented + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Put ${apiRoot}/${apiName}/${apiVersion}/ns_lcm_op_occs/${nsLcmOpOccId}/rollback + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Do PATCH Rollback operation task + log Trying to perform a PATCH. This method should not be implemented + Set Headers {"Accept":"${ACCEPT}"} + Patch ${apiRoot}/${apiName}/${apiVersion}/ns_lcm_op_occs/${nsLcmOpOccId}/rollback + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Do DELETE Rollback operation task + log Trying to perform a DELETE. This method should not be implemented + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Delete ${apiRoot}/${apiName}/${apiVersion}/ns_lcm_op_occs/${nsLcmOpOccId}/rollback + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Do POST Rollback operation task + Log Rollback a NS lifecycle operation task + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Log Execute Query and validate response + Post ${apiRoot}/${apiName}/${apiVersion}/ns_lcm_op_occs/${nsLcmOpOccId}/rollback + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Do GET Continue operation task + log Trying to perform a GET. This method should not be implemented + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Get ${apiRoot}/${apiName}/${apiVersion}/ns_lcm_op_occs/${nsLcmOpOccId}/continue + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Do PUT Continue operation task + log Trying to perform a PUT. This method should not be implemented + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Put ${apiRoot}/${apiName}/${apiVersion}/ns_lcm_op_occs/${nsLcmOpOccId}/continue + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Do PATCH Continue operation task + log Trying to perform a PATCH. This method should not be implemented + Set Headers {"Accept":"${ACCEPT}"} + Patch ${apiRoot}/${apiName}/${apiVersion}/ns_lcm_op_occs/${nsLcmOpOccId}/continue + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Do DELETE Continue operation task + log Trying to perform a DELETE. This method should not be implemented + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Delete ${apiRoot}/${apiName}/${apiVersion}/ns_lcm_op_occs/${nsLcmOpOccId}/continue + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Do POST Continue operation task + Log Continue a NS lifecycle operation task + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Log Execute Query and validate response + Post ${apiRoot}/${apiName}/${apiVersion}/ns_lcm_op_occs/${nsLcmOpOccId}/continue + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Do GET Fail operation task + log Trying to perform a GET. This method should not be implemented + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Get ${apiRoot}/${apiName}/${apiVersion}/ns_lcm_op_occs/${nsLcmOpOccId}/fail + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Do PUT Fail operation task + log Trying to perform a PUT. This method should not be implemented + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Put ${apiRoot}/${apiName}/${apiVersion}/ns_lcm_op_occs/${nsLcmOpOccId}/fail + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Do PATCH Fail operation task + log Trying to perform a PATCH. This method should not be implemented + Set Headers {"Accept":"${ACCEPT}"} + Patch ${apiRoot}/${apiName}/${apiVersion}/ns_lcm_op_occs/${nsLcmOpOccId}/fail + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Do DELETE Fail operation task + log Trying to perform a DELETE. This method should not be implemented + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Delete ${apiRoot}/${apiName}/${apiVersion}/ns_lcm_op_occs/${nsLcmOpOccId}/fail + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Do POST Fail operation task + Log Fail a NS lifecycle operation task + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Log Execute Query and validate response + Post ${apiRoot}/${apiName}/${apiVersion}/ns_lcm_op_occs/${nsLcmOpOccId}/fail + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Do GET Cancel operation task + log Trying to perform a GET. This method should not be implemented + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Get ${apiRoot}/${apiName}/${apiVersion}/ns_lcm_op_occs/${nsLcmOpOccId}/cancel + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Do PUT Cancel operation task + log Trying to perform a PUT. This method should not be implemented + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Put ${apiRoot}/${apiName}/${apiVersion}/ns_lcm_op_occs/${nsLcmOpOccId}/cancel + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Do PATCH Cancel operation task + Log Trying to perform a PATCH. This method should not be implemented + Set Headers {"Accept":"${ACCEPT}"} + Patch ${apiRoot}/${apiName}/${apiVersion}/ns_lcm_op_occs/${nsLcmOpOccId}/cancel + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Do DELETE Cancel operation task + Log Trying to perform a DELETE. This method should not be implemented + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Delete ${apiRoot}/${apiName}/${apiVersion}/ns_lcm_op_occs/${nsLcmOpOccId}/cancel + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Do POST Cancel operation task + Log Cancel a NS lifecycle operation task + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Log Execute Query and validate response + Post ${apiRoot}/${apiName}/${apiVersion}/ns_lcm_op_occs/${nsLcmOpOccId}/cancel + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Do PUT subscriptions + Log Trying to perform a PUT. This method should not be implemented + Set Headers {"Accept":"${ACCEPT}"} + Set Headers {"Content-Type": "${CONTENT_TYPE}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Put ${apiRoot}/${apiName}/${apiVersion}/subscriptions + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Do PATCH subscriptions + Log Trying to perform a PATCH. This method should not be implemented + Set Headers {"Accept":"${ACCEPT}"} + Set Headers {"Content-Type": "${CONTENT_TYPE}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Patch ${apiRoot}/${apiName}/${apiVersion}/subscriptions + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Do DELETE subscriptions + Log Trying to perform a DELETE. This method should not be implemented + Set Headers {"Accept":"${ACCEPT}"} + Set Headers {"Content-Type": "${CONTENT_TYPE}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Delete ${apiRoot}/${apiName}/${apiVersion}/subscriptions + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Do POST subscriptions + Log Create subscription instance by POST to ${apiRoot}/${apiName}/${apiVersion}/subscriptions + Set Headers {"Accept":"${ACCEPT}"} + Set Headers {"Content-Type": "${CONTENT_TYPE}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + ${body}= Get File jsons/LccnSubscriptionRequest.json + Post ${apiRoot}/${apiName}/${apiVersion}/subscriptions ${body} + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Do POST subscriptions DUPLICATION + Log Trying to create a subscription with an already created content + Pass Execution If ${NFVO_DUPLICATION} == 0 NFVO is not permitting duplication. Skipping the test + Set Headers {"Accept":"${ACCEPT}"} + Set Headers {"Content-Type": "${CONTENT_TYPE}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + ${body}= Get File jsons/LccnSubscriptionRequest.json + Post ${apiRoot}/${apiName}/${apiVersion}/subscriptions ${body} + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Do POST subscriptions NO DUPLICATION + Log Trying to create a subscription with an already created content + Pass Execution If ${NFVO_DUPLICATION} == 1 NFVO is permitting duplication. + Set Headers {"Accept":"${ACCEPT}"} + Set Headers {"Content-Type": "${CONTENT_TYPE}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + ${body}= Get File jsons/LccnSubscriptionRequest.json + Post ${apiRoot}/${apiName}/${apiVersion}/subscriptions ${body} + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + + +Do GET Subscriptions + Log Get the list of active subscriptions + Set Headers {"Accept":"${ACCEPT}"} + Set Headers {"Content-Type": "${CONTENT_TYPE}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} + Log Execute Query and validate response + Get ${apiRoot}/${apiName}/${apiVersion}/subscriptions + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + +Do GET Subscriptions with filter + Log Get the list of active subscriptions using a filter + Set Headers {"Accept": "${ACCEPT}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} + GET ${apiRoot}/${apiName}/${apiVersion}/subscriptions?${sub_filter} + ${outputResponse}= Output response + Set Global Variable @{response} ${outputResponse} + + diff --git a/SOL005/NSLifecycleManagement-API/RetryOperationTask.robot b/SOL005/NSLifecycleManagement-API/RetryOperationTask.robot new file mode 100644 index 00000000..9dd269cb --- /dev/null +++ b/SOL005/NSLifecycleManagement-API/RetryOperationTask.robot @@ -0,0 +1,45 @@ +*** Settings *** +Resource environment/variables.txt +Resource NSLCMOperationKeywords.robot +Library REST ${NFVO_SCHEMA}://${NFVO_HOST}:${NFVO_PORT} +Library OperatingSystem +Library JSONLibrary +Library JSONSchemaLibrary schemas/ + +*** Test Cases *** +Post Retry operation task + Depends on test Check resource FAILED_TEMP + Do POST Retry operation task + Check HTTP Response Status Code Is 202 + Check HTTP Response Header Contains Location + +Post Retry operation task Not Found + [Setup] Check retry not supported + Do POST Retry operation task + Check HTTP Response Status Code Is 404 + Check HTTP Response Body Json Schema Is ProblemDetails.schema.json + +Post Retry operation task Conflict + Depends on test failure Check resource FAILED_TEMP + Do POST Retry operation task + Check HTTP Response Status Code Is 409 + Check HTTP Response Body Json Schema Is ProblemDetails.schema.json + +PUT Retry operation task - Method not implemented + Do PUT Retry operation task + Check HTTP Response Status Code Is 405 + +PATCH Retry operation task - Method not implemented + Do PATCH Retry operation task + Check HTTP Response Status Code Is 405 + +DELETE Retry operation task - Method not implemented + Do DELETE Retry operation task + Check HTTP Response Status Code Is 405 + +GET Retry operation task - Method not implemented + Do GET Retry operation task + Check HTTP Response Status Code Is 405 + + + \ No newline at end of file diff --git a/SOL005/NSLifecycleManagement-API/RollbackOperationTask.robot b/SOL005/NSLifecycleManagement-API/RollbackOperationTask.robot new file mode 100644 index 00000000..2b46c58c --- /dev/null +++ b/SOL005/NSLifecycleManagement-API/RollbackOperationTask.robot @@ -0,0 +1,45 @@ +*** Settings *** +Resource environment/variables.txt +Resource NSLCMOperationKeywords.robot +Library REST ${NFVO_SCHEMA}://${NFVO_HOST}:${NFVO_PORT} +Library OperatingSystem +Library JSONLibrary +Library JSONSchemaLibrary schemas/ + +*** Test Cases *** +Post Rollback operation task + Depends on test Check resource FAILED_TEMP + Do POST Rollback operation task + Check HTTP Response Status Code Is 202 + + +Post Rollback operation task Not Found + [Setup] Check Rollback not supported + Do POST Rollback operation task + Check HTTP Response Status Code Is 404 + Check HTTP Response Body Json Schema Is ProblemDetails.schema.json + +Post Rollback operation task Conflict + Depends on test failure Check resource FAILED_TEMP + Do POST Rollback operation task + Check HTTP Response Status Code Is 409 + Check HTTP Response Body Json Schema Is ProblemDetails.schema.json + +PUT Rollback operation task - Method not implemented + Do PUT Rollback operation task + Check HTTP Response Status Code Is 405 + +PATCH Rollback operation task - Method not implemented + Do PATCH Rollback operation task + Check HTTP Response Status Code Is 405 + +DELETE Rollback operation task - Method not implemented + Do DELETE Rollback operation task + Check HTTP Response Status Code Is 405 + +GET Rollback operation task - Method not implemented + Do GET Rollback operation task + Check HTTP Response Status Code Is 405 + + + \ No newline at end of file diff --git a/SOL005/NSLifecycleManagement-API/Subscriptions.robot b/SOL005/NSLifecycleManagement-API/Subscriptions.robot new file mode 100644 index 00000000..508cb390 --- /dev/null +++ b/SOL005/NSLifecycleManagement-API/Subscriptions.robot @@ -0,0 +1,51 @@ +*** Settings *** +Resource environment/variables.txt +Resource NSLCMOperationKeywords.robot +Library REST ${NFVO_SCHEMA}://${NFVO_HOST}:${NFVO_PORT} +Library OperatingSystem +Library JSONLibrary +Library JSONSchemaLibrary schemas/ + +*** Test Cases *** +Create a new subscription + Do POST subscriptions + Check HTTP Response Status Code Is 201 + Check HTTP Response Header Contains Location + Check HTTP Response Header ContentType is ${CONTENT_TYPE} + Check HTTP Response Body Json Schema Is subscription.schema.json + + +Create a new Subscription - DUPLICATION + Do POST subscriptions DUPLICATION + Check HTTP Response Status Code Is 201 + Check HTTP Response Header Contains Location + Check HTTP Response Header ContentType is ${CONTENT_TYPE} + Check HTTP Response Body Json Schema Is subscription.schema.json + +Create a new Subscription - NO-DUPLICATION + Do POST subscriptions NO DUPLICATION + Check HTTP Response Status Code Is 201 + Check HTTP Response Header Contains Location + Check HTTP Response Header ContentType is ${CONTENT_TYPE} + +GET Subscriptions + Do GET Subscriptions + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is subscriptions.schema.json + +GET Subscription - Filter + Do GET Subscriptions with filter + Check HTTP Response Status Code Is 200 + Check HTTP Response Body Json Schema Is subscriptions.schema.json + +PUT subscriptions - Method not implemented + Do PUT subscriptions + Check HTTP Response Status Code Is 405 + +PATCH subscriptions - Method not implemented + Do PATCH subscriptions + Check HTTP Response Status Code Is 405 + +DELETE subscriptions - Method not implemented + Do DELETE subscriptions + Check HTTP Response Status Code Is 405 \ No newline at end of file diff --git a/SOL005/NSLifecycleManagement-API/environment/variables.txt b/SOL005/NSLifecycleManagement-API/environment/variables.txt index 885d99c9..fe17ec71 100644 --- a/SOL005/NSLifecycleManagement-API/environment/variables.txt +++ b/SOL005/NSLifecycleManagement-API/environment/variables.txt @@ -26,9 +26,9 @@ ${nsPkgId_processing} 007c111c-38a1-42c0-a666-7475ecb1567c ${ARTIFACT_TYPE} application/octet-stream ${ARTIFACT_ID} artifactId ${WRONG_ACCEPT} application/json -${vnfLcmOpOccId} 6fc3539c-e602-4afa-8e13-962fb5a7d81d +${nsLcmOpOccId} 6fc3539c-e602-4afa-8e13-962fb5a7d81d ${CancelMode} GRACEFUL -${VNFM_DUPLICATION} 0 +${NFVO_DUPLICATION} 0 ${sub_filter} filter ${sub_filter_invalid} filter_invalid ${subscriptionId} 6fc3539c-e602-4afa-8e13-962fb5a7d81f diff --git a/SOL005/NSLifecycleManagement-API/jsons/LccnSubscriptionRequest.json b/SOL005/NSLifecycleManagement-API/jsons/LccnSubscriptionRequest.json new file mode 100644 index 00000000..82e84e1f --- /dev/null +++ b/SOL005/NSLifecycleManagement-API/jsons/LccnSubscriptionRequest.json @@ -0,0 +1,10 @@ +{ + "filter": { + "nsInstanceSubscriptionFilter": { + "nsdIds": [ + "6fc3539c-e602-4afa-8e13-962fb5a7d81f" + ] + } + }, + "callbackUri": "http://127.0.0.1/subscribe" +} \ No newline at end of file diff --git a/SOL005/NSLifecycleManagement-API/schemas/subscription.schema.json b/SOL005/NSLifecycleManagement-API/schemas/subscription.schema.json new file mode 100644 index 00000000..952a0734 --- /dev/null +++ b/SOL005/NSLifecycleManagement-API/schemas/subscription.schema.json @@ -0,0 +1,181 @@ +{ + "type": "object", + "description": "This type represents a subscription related to notifications about VNF lifecycle changes.\n", + "required": [ + "id", + "callbackUri", + "_links" + ], + "properties": { + "id": { + "type": "string", + "description": "An identifier with the intention of being globally unique.\n" + }, + "filter": { + "type": "object", + "description": "This type represents a subscription filter related to notifications about VNF lifecycle changes. At a particular nesting level in the filter structure, the following applies: All attributes shall match in order for the filter to match (logical \"and\" between different filter attributes). If an attribute is an array, the attribute shall match if at least one of the values in the array matches (logical \"or\" between the values of one filter attribute).\n", + "properties": { + "vnfInstanceSubscriptionFilter": { + "type": "object", + "description": "This type represents subscription filter criteria to match VNF instances.\n", + "properties": { + "vnfdIds": { + "type": "array", + "description": "If present, match VNF instances that were created based on a VNFD identified by one of the vnfdId values listed in this attribute. The attributes \"vnfdIds\" and \"vnfProductsFromProviders\" are alternatives to reference to VNF instances that are based on certain VNFDs in a filter. They should not be used both in the same filter instance, but one alternative should be chosen.\n", + "items": { + "type": "string", + "description": "An identifier with the intention of being globally unique.\n" + } + }, + "vnfProductsFromProviders": { + "type": "array", + "description": "If present, match VNF instances that belong to VNF products from certain providers. The attributes \"vnfdIds\" and \"vnfProductsFromProviders\" are alternatives to reference to VNF instances that are based on certain VNFDs in a filter. They should not be used both in the same filter instance, but one alternative should be chosen.\n", + "items": { + "type": "object", + "required": [ + "vnfProvider" + ], + "properties": { + "vnfProvider": { + "type": "string", + "description": "Name of the VNF provider to match.\n" + }, + "vnfProducts": { + "type": "array", + "description": "If present, match VNF instances that belong to VNF products with certain product names, from one particular provider.\n", + "items": { + "type": "object", + "required": [ + "vnfProductName" + ], + "properties": { + "vnfProductName": { + "type": "string", + "description": "Name of the VNF product to match.\n" + }, + "versions": { + "type": "array", + "description": "If present, match VNF instances that belong to VNF products with certain versions and a certain product name, from one particular provider.\n", + "items": { + "type": "object", + "required": [ + "vnfSoftwareVersion" + ], + "properties": { + "vnfSoftwareVersion": { + "type": "string", + "description": "A version.\n" + }, + "vnfdVersions": { + "type": "array", + "description": "If present, match VNF instances that belong to VNF products with certain VNFD versions, a certain software version and a certain product name, from one particular provider.\n", + "items": { + "type": "string", + "description": "A version.\n" + } + } + } + } + } + } + } + } + } + } + }, + "vnfInstanceIds": { + "type": "array", + "description": "If present, match VNF instances with an instance identifier listed in this attribute. The attributes \"vnfInstanceIds\" and \"vnfInstanceNames\" are alternatives to reference to particular VNF Instances in a filter. They should not be used both in the same filter instance, but one alternative should be chosen.\n", + "items": { + "type": "string", + "description": "An identifier with the intention of being globally unique.\n" + } + }, + "vnfInstanceNames": { + "type": "array", + "description": "If present, match VNF instances with a VNF Instance Name listed in this attribute. The attributes \"vnfInstanceIds\" and \"vnfInstanceNames\" are alternatives to reference to particular VNF Instances in a filter. They should not be used both in the same filter instance, but one alternative should be chosen.\n", + "items": { + "type": "string" + } + } + } + }, + "notificationTypes": { + "type": "array", + "description": "Match particular notification types. Permitted values: * VnfLcmOperationOccurrenceNotification * VnfIdentifierCreationNotification * VnfIdentifierDeletionNotification The permitted values of the \"notificationTypes\" attribute are spelled exactly as the names of the notification types to facilitate automated code generation systems.\n", + "items": { + "type": "string", + "enum": [ + "VnfLcmOperationOccurrenceNotification", + "VnfIdentifierCreationNotification", + "VnfIdentifierDeletionNotification" + ] + } + }, + "operationTypes": { + "type": "array", + "description": "Match particular VNF lifecycle operation types for the notification of type VnfLcmOperationOccurrenceNotification. May be present if the \"notificationTypes\" attribute contains the value \"VnfLcmOperationOccurrenceNotification\", and shall be absent otherwise.\n", + "items": { + "type": "string", + "enum": [ + "INSTANTIATE", + "SCALE", + "SCALE_TO_LEVEL", + "CHANGE_FLAVOUR", + "TERMINATE", + "HEAL", + "OPERATE", + "CHANGE_EXT_CONN", + "MODIFY_INFO" + ], + "description": "Value | Description ------|------------ INSTANTIATE | Represents the \"Instantiate VNF\" LCM operation. SCALE | Represents the \"Scale VNF\" LCM operation. SCALE_TO_LEVEL | Represents the \"Scale VNF to Level\" LCM operation. CHANGE_FLAVOUR | Represents the \"Change VNF Flavour\" LCM operation. TERMINATE | Represents the \"Terminate VNF\" LCM operation. HEAL | Represents the \"Heal VNF\" LCM operation. OPERATE | Represents the \"Operate VNF\" LCM operation. CHANGE_EXT_CONN | Represents the \"Change external VNF connectivity\" LCM operation. MODIFY_INFO | Represents the \"Modify VNF Information\" LCM operation. \n" + } + }, + "operationStates": { + "type": "array", + "description": "Match particular LCM operation state values as reported in notifications of type VnfLcmOperationOccurrenceNotification. May be present if the \"notificationTypes\" attribute contains the value \"VnfLcmOperationOccurrenceNotification\", and shall be absent otherwise.\n", + "items": { + "type": "string", + "enum": [ + "STARTING", + "PROCESSING", + "COMPLETED", + "FAILED_TEMP", + "FAILED", + "ROLLING_BACK", + "ROLLED_BACK" + ], + "description": "Value | Description ------|------------ STARTING | The LCM operation is starting. PROCESSING | The LCM operation is currently in execution. COMPLETED | he LCM operation has been completed successfully. FAILED_TEMP | The LCM operation has failed and execution has stopped, but the execution of the operation is not considered to be closed. FAILED | The LCM operation has failed and it cannot be retried or rolled back, as it is determined that such action won't succeed. ROLLING_BACK | The LCM operation is currently being rolled back. ROLLED_BACK | The LCM operation has been successfully rolled back, i.e. The state of the VNF prior to the original operation invocation has been restored as closely as possible.\n" + } + } + } + }, + "callbackUri": { + "type": "string", + "description": "String formatted according to IETF RFC 3986.\n" + }, + "_links": { + "type": "object", + "description": "Links to resources related to this resource.\n", + "required": [ + "self" + ], + "properties": { + "self": { + "type": "object", + "description": "This type represents a link to a resource.\n", + "required": [ + "href" + ], + "properties": { + "href": { + "type": "string", + "description": "URI of the referenced resource.\n", + "format": "url" + } + } + } + } + } + } +} \ No newline at end of file diff --git a/SOL005/NSLifecycleManagement-API/schemas/subscriptions.schema.json b/SOL005/NSLifecycleManagement-API/schemas/subscriptions.schema.json new file mode 100644 index 00000000..9a57c533 --- /dev/null +++ b/SOL005/NSLifecycleManagement-API/schemas/subscriptions.schema.json @@ -0,0 +1,145 @@ +{ + "type": "array", + "items": { + "description": "This type represents a subscription.", + "type": "object", + "required": [ + "id", + "callbackUri", + "_links" + ], + "properties": { + "id": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + }, + "filter": { + "description": "This type represents a filter that can be used to subscribe for notifications related to performance management events.\n", + "type": "object", + "properties": { + "vnfInstanceSubscriptionFilter": { + "description": "This type represents subscription filter criteria to match VNF instances.\n", + "type": "object", + "properties": { + "vnfdIds": { + "description": "If present, match VNF instances that were created based on a VNFD identified by one of the vnfdId values listed in this attribute. The attributes \"vnfdIds\" and \"vnfProductsFromProviders\" are alternatives to reference to VNF instances that are based on certain VNFDs in a filter. They should not be used both in the same filter instance, but one alternative should be chosen.\n", + "type": "array", + "items": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + } + }, + "vnfProductsFromProviders": { + "description": "If present, match VNF instances that belong to VNF products from certain providers. The attributes \"vnfdIds\" and \"vnfProductsFromProviders\" are alternatives to reference to VNF instances that are based on certain VNFDs in a filter. They should not be used both in the same filter instance, but one alternative should be chosen.\n", + "type": "array", + "items": { + "type": "object", + "required": [ + "vnfProvider" + ], + "properties": { + "vnfProvider": { + "description": "Name of the VNF provider to match.\n", + "type": "string" + }, + "vnfProducts": { + "description": "If present, match VNF instances that belong to VNF products with certain product names, from one particular provider.\n", + "type": "array", + "items": { + "type": "object", + "required": [ + "vnfProductName" + ], + "properties": { + "vnfProductName": { + "description": "Name of the VNF product to match.\n", + "type": "string" + }, + "versions": { + "description": "If present, match VNF instances that belong to VNF products with certain versions and a certain product name, from one particular provider.\n", + "type": "array", + "items": { + "type": "object", + "required": [ + "vnfSoftwareVersion" + ], + "properties": { + "vnfSoftwareVersion": { + "description": "A version.\n", + "type": "string" + }, + "vnfdVersions": { + "description": "If present, match VNF instances that belong to VNF products with certain VNFD versions, a certain software version and a certain product name, from one particular provider.\n", + "type": "array", + "items": { + "description": "A version.\n", + "type": "string" + } + } + } + } + } + } + } + } + } + } + }, + "vnfInstanceIds": { + "description": "If present, match VNF instances with an instance identifier listed in this attribute. The attributes \"vnfInstanceIds\" and \"vnfInstanceNames\" are alternatives to reference to particular VNF Instances in a filter. They should not be used both in the same filter instance, but one alternative should be chosen.\n", + "type": "array", + "items": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + } + }, + "vnfInstanceNames": { + "description": "If present, match VNF instances with a VNF Instance Name listed in this attribute. The attributes \"vnfInstanceIds\" and \"vnfInstanceNames\" are alternatives to reference to particular VNF Instances in a filter. They should not be used both in the same filter instance, but one alternative should be chosen.\n", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "notificationTypes": { + "description": "Match particular notification types. Permitted values: * ThresholdCrossedNotification * PerformanceInformationAvailableNotification The permitted values of the \"notificationTypes\" attribute are spelled exactly as the names of the notification types to facilitate automated code generation systems.\n", + "type": "string", + "enum": [ + "ThresholdCrossedNotification", + "PerformanceInformationAvailableNotification" + ] + } + } + }, + "callbackUri": { + "description": "The URI of the endpoint to send the notification to.\n", + "type": "string", + "format": "url" + }, + "_links": { + "description": "Links to resources related to this resource.\n", + "type": "object", + "required": [ + "self" + ], + "properties": { + "self": { + "description": "This type represents a link to a resource.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "URI of the referenced resource.\n", + "type": "string", + "format": "url" + } + } + } + } + } + } + } +} \ No newline at end of file -- GitLab